我希望将相机沿着它的lookAt矢量转换。一旦我有了这个矢量,我就可以沿着它进行标量平移,使用该点在全局坐标中移动摄像机位置并重新渲染。诀窍是获取任意lookAt向量?我看了几个其他的问题和解决方案,但它们似乎对我不起作用。
答案 0 :(得分:7)
您无法从相机本身获取lookAtVector
,但您可以创建新的矢量并将相机旋转应用于此。
var lookAtVector = new THREE.Vector3(0,0, -1);
lookAtVector.applyQuaternion(camera.quaternion);
答案 1 :(得分:0)
首选应为cam.translateZ();
还有第二种选择。您可以从摄像机对象的matrix
属性中提取lookAt向量。您只需要获取与本地z轴对应的元素。
var lookAtVector = new THREE.Vector3(cam.matrix[8], cam.matrix[9], cam.matrix[10]);