Question

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.

Was it helpful?

Solution

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);

OTHER TIPS

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]);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top