Sto cercando di tradurre la fotocamera lungo il suo aspetto in vettoriale. Una volta ottenuto questo vettore, posso eseguire la conversione scalare, utilizzare quel punto per spostare la posizione della telecamera in coordinate globali e ri-renderizzare. Il trucco sta ottenendo l'aspetto arbitrario del vettore? Ho esaminato molte altre domande e soluzioni, ma non sembrano funzionare per me.Three.js Get Camera lookAt Vector
risposta
Non è possibile ottenere lookAtVector
dalla fotocamera stessa, tuttavia è possibile creare un nuovo vettore e applicare la rotazione della fotocamera a tale.
var lookAtVector = new THREE.Vector3(0,0, -1);
lookAtVector.applyQuaternion(camera.quaternion);
Questa risposta non è corretta. Vedi http://stackoverflow.com/questions/15696963/three-js-set-and-read-camera-look-vector/15697227#15697227 – WestLangley
quindi qual è esattamente la differenza? :) –
La prima scelta dovrebbe essere cam.translateZ();
V'è una seconda opzione. È possibile estrarre il vettore lookAt dalla proprietà matrix
dell'oggetto camera. Hai solo bisogno di prendere gli elementi corrispondenti all'asse z locale.
var lookAtVector = new THREE.Vector3(cam.matrix[8], cam.matrix[9], cam.matrix[10]);
Vedere http://stackoverflow.com/questions/15696963/three-js-set-and-read-camera-look-vector/. Inoltre, è "camera.translateZ (-1)" cosa intendi? – WestLangley