2012-07-15 8 views

답변

33

먼저 개체의 행렬이 업데이트되었는지 확인하십시오.

object.updateMatrixWorld(); 

일반적으로 렌더 루프는 이것을 호출합니다. 세계 좌표에

var vector = object.geometry.vertices[i].clone(); 

vector.applyMatrix4(object.matrixWorld); 

벡터 지금 위치가 포함됩니다 : 다음

는이 작업을 수행.

일부 CG 참조 서적을 읽을 수도 있습니다. 프로그래머의 가이드 제임스 M. 반 Verth와 라스 M. 주교

: 그래픽 및 게임 개발을위한

  1. 3D 수학 프라이머/플레처 던과 게임에 대한

  2. 필수 수학 이안 Parberry와 상호 작용하는 응용 프로그램에 의해

three.js를이 기능 부이을 제공 Three.js를 (V50의 +)의

21

최신 버전을 R69 lt에 the THREE.Object3D class. 특히, vector라는 로컬 THREE.Vector3 인스턴스의 세계 좌표를 얻을 the localToWorld method를 사용하는 : 세계를 변환하는 것은 수학적으로 말하면, 조금 더 복잡 로컬 좌표로 좌표에 대한

object.localToWorld(vector); 

마찬가지로, a worldToLocal method있다. 세계 vector을 객체 로컬 좌표 공간으로 변환하려면

object.worldToLocal(vector); 
+0

... 그리고 object.updateMatrixWorld()를 실행하는 것을 잊지 마십시오. 나는 그것을 시도하기 전에 잠시 머리를 긁적 거렸다. – arpo

+0

시도 해보니 ... 여전히 0, 0, 0 :( –

관련 문제