L 시스템 인터프리터에서 작업 중이며 회전의 내부 표현으로 쿼터니언을 사용합니다. 결과를 ThreeJs JavaScript 장면으로 내보내고 싶습니다. 어떻게해야하는지 json 장면을 가장 좋은 방법으로 생각했습니다.Three.js json scene에서 quaternion rotation을 사용하는 방법
장면의 한 예가 https://github.com/mrdoob/three.js/blob/master/examples/scenes/test_scene.js에 있지만 쿼터니언 교체에 관한 내용은 없습니다.
그래서 나는 http://threejs.org/io/s/quaternion에 도움을 사용 는 "회전을이 사원 수 및 useQuaternion 특성을 가지고 있지만 그것은 오류가 아마가 없기 때문에의 (장면 로더가 발생, 작동하지 않는 것 같다 THREE.Object3D 것을 발견 나는 순서 Y 가정 (나는 또한 오일러 각에 쿼터니언으로 변환하려고했습니다
"obj": {
...
"quaternion": [0.38268343236509,0,0,0.923879532511287],
"useQuaternion": true
}
하지만 그것은 습관 때문에 아마 각도의 적용의 다른 순서로, 나를 위해 작동 : "속성은) 마지막에 편집을 참조 Z, X). 위의 예에서 쿼터니온은 Z 축 (피치)을 기준으로 135도 회전을 나타내며 오일러 각 [pi, pi, pi/4]으로 변환되지만 장면에서는 정확하지 않습니다.
다음 그림은 Z 축에 의해 다른 것보다 11 °만큼 회전 된 블록을 보여줍니다. 축은 X (빨강), Y (녹색) 및 Z (파랑)입니다. 유클리드로의 잘못된 변환 쿼터니언 때문에 상반부가 잘못 회전합니다 (구현을 위해이 페이지를 사용했습니다 : http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/).
편집 : 더 검사 후 현장 로더에 의해 제기 된 오류 때문에 개체에없는 "회전"속성이다. 다음 출력에서는 오류가 발생하지 않고 장면이로드되지만 쿼터니언 순환이 무시되므로 잘못 표시됩니다 (표시된 이미지와 같은 방식으로).
"obj": {
...
"rotation": [3.14159265358979,3.14159265358979,0.785398163397449],
"quaternion": [0.38268343236509,0,0,0.923879532511287],
"useQuaternion": true
}
장면 로더가 제기 한 오류 메시지에 더 많은 것이 있습니까? 특히 쿼터니언 사용에 대해 마음에 들지 않는 점이 무엇입니까? –
좋아, "회전"속성이 누락되어 오류가 발생합니다. 장면 로더는 아마도 쿼터니언 회전을 전혀로드하지 않습니다. – NightElfik