Three.js相机了解

时间:2013-11-23 06:21:23

标签: camera geometry three.js

这是任务:

我们有一个Mesh,位置POS,轮换ROT 我们还有一个相机哪个位置和旋转相对于Mesh例如相机点是CPOS,相机旋转是CROT

如何计算相机的最终角度?我假设它像:

camera.rotation.x = mesh.rotation.x + viewport.rotation.x
camera.rotation.y = mesh.rotation.y + viewport.rotation.y
camera.rotation.z = mesh.rotation.z + viewport.rotation.z

这有点奇怪和错误。

然后我决定在文档上阅读它并完全失望。

有几种旋转结构(Euler,Quaternion)。但是,想要的是不同的东西。

想象一下,就像你在宇宙飞船上一样。它在太空中移动。你坐在右舷炮塔上,看着物体。他们似乎路过...... 然后你想要转过头 - 你的头脑天使是你知道的(在原始的opengl中,我只是在船的旋转矩阵上乘以头部旋转矩阵并获得我的投影矩阵)。

换句话说,我只希望xy轴用于相机旋转,并以矩阵形式组合。然后我想将它与一个对象的位置旋转矩阵相乘。而这个最终矩阵将是我的投影矩阵。

我怎样才能在THREE.js中做同样的事情?

- - - - - - - - EDIT 谢谢你的回答。

我应该给相机哪些电源线?它应该是局部的,网格相对坐标,还是绝对的东西?

我理解,这个问题很明显,但是在THREE.JS文档中没有任何关于相对对象的描述(除了api描述)。答案可能不明确。

1 个答案:

答案 0 :(得分:0)

将相机添加为网格的子项,如下所示:

mesh.add( camera );

当相机是物体的孩子时,相机的位置和方向是相对于父物体指定的。

您可以通过设置相机的quaternion或Euler rotation - 您的选择来设置相机的方向。

请注意,渲染器会为您更新对象的matrixmatrixWorld。您无需手动执行此操作。

three.js r.63