2014-05-21 2 views
-1

좋아, 여기에 문제가있다 : PerspectiveCamera를 Object3d의 자식으로 사용하여 추적하고있다. Object3d 자식의 방향 가져 오기

... 
player.add(backCamera); 
backCamera.position.set(0, 10, -80); 
backCamera.lookAt(player.position); 
... 

지금 나는 카메라와 플레이어와 그들에게 보이지 않게 사이의 개체를 찾기 위해 Raycaster를 사용하는 것을 시도하고있다,하지만 난 카메라의 위치와 카메라 방향이 필요합니다. 이 question

덕분에 나는 그 같은 "true"로 카메라 위치 찾을 수 있었다 :

... 
player.updateMatrixWorld(); 
var vector = new THREE.Vector3(); 
var temp = vector.setFromMatrixPosition(backCamera.matrixWorld); 
... 

을하지만 난 여전히 "true"로 카메라 방향을 찾아야합니다. 나는 this approach을 따르려고 노력했고 그 접근법도 그 질문에 링크되어있다.

... 
var pLocal = new THREE.Vector3(0, 0, -1); 
var pWorld = pLocal.applyMatrix4(backCamera.matrixWorld); 
var direction = pWorld.sub(backCamera.position).normalize(); 

raycaster.set(temp, direction); 
... 

광선이 올바른 방향으로 보이지 않는 것처럼 보입니다. 아마도 방향이 부모 개체와 관련되기 때문일 수 있습니다. 목표 위치를 알고

+0

카메라가 다른 객체의 자식이므로 'camera.position'이 아닌 카메라의 세계 위치를 빼야합니다. – WestLangley

+0

hmm @WestLangley 왜 .setFromMatrixRotation이 없습니까? 나는 그가 그걸 사용할 수있을 거라 생각했지만, 실종되었다. – Doidel

+0

아하 : https://github.com/mrdoob/three.js/issues/4585 – Doidel

답변

1

(예를 들어, TP, 대상 위치) 카메라에서 찾고, 당신은 (예를 들어, VRP가보기 참조 점)가, 카메라 방향이 단순히으로 제공되는 카메라 위치를 알고 :

TP-VRP 

정상화 할 수도 있습니다.