轨道摄像机重定向在threejs

时间:2015-07-29 01:15:42

标签: camera three.js

我有关于相机重定向的问题,很长一段时间未解决。简而言之,我有一个摄像头,其向上矢量始终为(0,1,0)。我想移动相机的位置,同时保持某个3D点出现在屏幕的同一位置。

例如,让P成为相机的位置,T是相机的外观,F(x,y)中出现的点的屏幕。现在P已更改为P'(相机的新职位);为了使F仍显示在屏幕的(x,y)中,必须更改T

问题是,T的新值是什么?

我认为这个问题需要很多数学。如果您有任何想法,请告诉我。非常感谢!

1 个答案:

答案 0 :(得分:0)

考虑使用对象层次结构,而不是将数学应用于相机。

var cNull = new THREE.Object3D();
var camera == new THREE.PerspectiveCamera();
cNull.add(camera);
scene.add(cNull);

如果你这样做,那么你可以将相机转到一个角度,只需使用你的点F(x,y,z)作为.lookAt()的{​​{1}}点。 cNull会将其中心对准cNull,并且F坐标系内相机的角度偏移将使cNull点保持在恒定的屏幕位置。