Pergunta

I'm looking to translate the camera along its lookAt vector. Once I have this vector, I can do scalar translation along it, use that point to move the camera position in global coordinates and re-render. The trick is getting the arbitrary lookAt vector? I've looked at several other questions and solutions but they don't seem to work for me.

Foi útil?

Solução

You can't get the lookAtVector from the camera itself, you can however create a new vector and apply the camera rotation to that.

var lookAtVector = new THREE.Vector3(0,0, -1);
lookAtVector.applyQuaternion(camera.quaternion);

Outras dicas

The first choice should be cam.translateZ();

There is a second option as well. You can extract the lookAt vector from the matrix property of the camera object. You just need to take the elements corresponding to the local z-axis.

var lookAtVector = new THREE.Vector3(cam.matrix[8], cam.matrix[9], cam.matrix[10]);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top