2011-10-11 1 views
2

3D 모델을 볼 때 약간의 장면을 만들려고합니다.GLGE API setRot/setRotX가 작동하지 않습니다.

GLGE Collada 예제를 수정하여 코드에서 .dae 모델을 추가했습니다.

http://goleztrol.nl/SO/GLGE/01/

내가 지금까지 작동
있어 무엇. 애니메이션을 사용하여 카메라를 회전합니다. 이 모델은 다음과 같은 코드를 사용하여, 현장에서 추가 및 제거 '추가'및 '제거'버튼을 사용하여

('오리'신경 쓰지 마. 그것은 원래의 예에 오리이었다.)

var duck = null; 
function addDuck() 
{ 
    if (duck) return; 
    duck = new GLGE.Collada(); 

    doc.getElement("mainscene").addCollada(duck); 

    duck.setId("duck"); 
    duck.setDocument("amyrose.dae"); 
    duck.setLocY(-15); 
    duck.setRotX(1); 
    duck.setScale(2); 
} 

function removeDuck() 
{ 
    if (!duck) return; 
    doc.getElement("mainscene").removeChild(duck); 
    duck = null; 
} 

문제
이제는 모델이 눕고 서 있어야합니다. 요소의 다양한 메소드가 작동하는 것 같습니다. 위치가 설정되고 눈금이 설정되지만 setRotX에 대한 호출이 무시 된 것 같습니다. api에서 다양한 다른 메소드를 시도했지만 setRotY, setRot, setQuatX 및 setDRotX가 모두 실패한 것으로 보입니다. 나는 어떤 오류도 발생하지 않는다. 나는 1.57 (약 90도이어야 함) 값을 시도했지만, 1에서 180까지의 다른 값도 시도했다.

내가 뭘 잘못하고 있는지 알 수 없다. 물론 Blender에서 모델 자체를 회전시킬 수는 있지만 GLGE API를 사용하여 모델을 만들고 싶습니다. 업데이트
내가 데모 모델, seymourplane_triangulate.dae을로드

는 회전 작동합니다. 분명히 내 모델은 회전 할 수 없다는 점이 다릅니다. 나는 그 이유를 이해하지 못한다. 모델이 여러 가지 분리 된 메쉬로 만들어 졌기 때문에 그럴 수 있다고 생각했지만 스케일링 및 이동이 작동하는 이유를 알지 못합니다.

이 모델의 문제점을 아는 사람이 있습니까? 그리고 그것을 고치기 위해 내가 할 수있는 일은 무엇입니까?

장면이 포함 된 XML 파일의 초기 회전 설정이 작동합니다. 다른 요소 (예 : 전체 장면)에 회전을 설정하면 효과가 있습니다.

+0

업데이트에 콜백에서이 작업을 수행 할 수 있습니다. 그것은 회전하지만, 이렇게로드 할 때 스킨을로드하지 않습니다. 분명히 AmyRose와 Seymour Plane의 차이는 분명합니다. Blender를 사용하여 문제를 해결하는 방법을 아는 사람이 있습니까? – GolezTrol

답변

2

로드 한 후에 회전해야합니다. 은`시모어 Plane` 모델을로드하는 사이에 시도 다양한 것들 :

당신은 setDocument

duck.setDocument("amyrose.dae", null, function() { 
    duck.setLocY(-15); 
    duck.setScale(2); 
    duck.setRotX(0); 
    duck.setRotY(0); 
    duck.setRotZ(3); 
}); 
+0

Brilliant! : '그것은 작동합니다. 나는 setDocument에 콜백이 있다는 것을 본 적이 없다. 감사! – GolezTrol

+0

나는 소스 코드를보고 콜백에만 주목했다. IDE에 코드 완성 기능이 있다면, GLGE – Petah

+0

의 비 - 축소 버전을 사용해보십시오. 예, 코드를 사용했는데,이 콜백을 간과 한 것 같습니다. 모델을 옮겨서 크기를 조정할 수 있고, 시도한 다른 모델을 회전시킬 수 있기 때문에 문제가 아니라 옆에 놓았습니다. 좀 바보 같아. :/음, 그것은 교훈입니다. :) – GolezTrol

관련 문제