Three.js将物体放在旋转相机的fov中

时间:2014-11-13 13:33:03

标签: three.js

我有一个固定位置的透视摄像头,可通过键盘输入绕所有3个轴旋转。在随机的时间间隔内,无论用户输入如何,无论相机在哪个方向看,我都需要将物体放置在相机的视野范围内。物体还需要偏离相机中心的特定x和y距离,并偏离相机位置的特定z距离。我不能使用camera.addChild,因为一旦添加了对象,我需要通过补间移动对象,而不依赖于摄像机的移动。

如何做到这一点?

1 个答案:

答案 0 :(得分:3)

您想要将一个点从相机空间转换为世界空间。

在相机的坐标系中,相机位于原点,并向下看其负z轴。

将物体放在相机前面(在相机的坐标系中)。

object.position.set( x, y, - z ); // z is the distance in front of the camera, and is positive

现在,将对象的位置从相机空间转换为世界空间:

object.position.applyMatrix4( camera.matrixWorld );

three.js r.69