Three.js获取相机lookAt向量

11

我想要沿着相机的lookAt向量进行翻译。一旦我有了这个向量,我就可以沿着它进行标量平移,使用该点将相机位置在全局坐标系中移动并重新渲染。关键是获取任意的lookAt向量?我查看了几个其他问题和解决方案,但它们似乎对我不起作用。


2
请查看https://dev59.com/nGUo5IYBdhLWcg3w3yqi。此外,您的意思是`camera.translateZ(-1)`吗? - WestLangley
2个回答

12

你不能直接从相机本身获取lookAtVector,但是你可以创建一个新的向量并将相机旋转应用于它。

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

1
这个答案是不正确的。请参考https://dev59.com/nGUo5IYBdhLWcg3w3yqi#15697227。 - WestLangley
7
那么,究竟有什么不同呢? :) - Kevin Kuyl
1
区别在于负查找向量,答案已被编辑。 - Sjeiti

1
第一个选择应该是cam.translateZ(); 还有第二个选项。您也可以从相机对象的matrix属性中提取lookAt向量。您只需要获取对应于本地z轴的元素即可。
var lookAtVector = new THREE.Vector3(cam.matrix[8], cam.matrix[9], cam.matrix[10]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接