내가 맞다면 Object3D
은 한쪽에 속성 집합이 (position, scale, rotation)
[*]이고 다른 쪽이 matrix
입니다.이 정보는 나중에 동일한 정보를 포함하고 있습니다. 다른 정보는 Object3D.updateMatrix()
에 있으며 실제로는 하나입니다. 렌더러 계산에 의해 내부적으로 사용된다. 대신, 세트 (position, scale, rotation)
은 프로그래머가 보통 조작하는 것입니다 (번역, 회전 ...).Three.js에서 Object3D.updateMatrix()의 반전?
때때로, 그러나, 하나 대신 matrixAutoUpdate=false
을 설정하고 약 (position, scale, rotation)
를 잊어의 추가, 직접 matrix
조작하고, 하나는, 즉 동기화 특성을 유지 Object3D.updateMatrix()
가 무엇을 할 수 있지만 다른 방향으로 싶어한다. 일부 구현/효율적/권장 절차를 수행 할 수 있습니까?
[*]주의 사항 : 1) useQuaternion=true
경우에서, quaternion
가 rotation
내가이 그림에서 up
을 역할이 무엇 확실하지 않다) eulerOrder
3에 의해 보완됩니다) 대신 rotation
이 사용됩니다, 나는 그것이없는 것 같아요 여기서 중요합니다.
감사합니다. 쿼터니언 대안이 선호되는 것은 이상하다. dev 브랜치를 보면,'Object3D.applyMatrix()'가 이것을 사용해야한다고 말하겠습니까? 나는 또한 그 방법 (그리고 행렬을 조작하는 다른 유사한 방법)이 (어떤 플래그, 메소드 인수 또는 객체 자체를 통해) sync를 _ 옵션으로해야한다고 제안 할 것이다. 나는이 종류 (devel) 제안을하는 장소가 정확히 어느 것이 아닌지 궁금합니다. – leonbloy
'Object3D.applyMatrix()'는 dev57에서 쿼터니온을 지원합니다. 그리고, 아니, 귀하의 제안은 잘못된 가정에 근거하기 때문에 적절하지 않습니다. 'matrixAutoUpdate = false'는 객체가 정적 일 때 사용됩니다 - CPU주기를 저장합니다. 'position','rotation' 또는'scale'을 업데이트하는 대신 사용자가 행렬을 업데이트 할 수 있도록하기위한 것이 아닙니다. – WestLangley