我正在Three.js中构建一个带有底座,支架,动臂和倾斜头的摄影机。除了能够使相机绕其本地Z轴“滚动”以外,其他所有功能都正常运行。我不确定相机对象的旋转,向上矢量和lookAt如何相互作用。 这是我当前的滚动代码:
// rotate camera up vector away from default ([0, 1, 0]) around camera's local Z
this.camera.up.copy(Object3D.DefaultUp)
tmpVector3.set(0, 0, 1)
this.camera.up.applyAxisAngle(tmpVector3, params.cameraRoll)
this.camera.lookAt(this.cameraLookAt)
发生的事情是,即使在参数cameraRoll
不变的情况下,当我为原点周围的圆周设置位置动画时,照相机也会疯狂地倾斜。基本上,我想围绕本地Z 旋转相机,并使用lookAt
,但是从源头看,object3d.lookAt似乎取代了对象的旋转矩阵(并且实际上设置了{ {1}}无效)。我假设this.camera.rotation.z
向量在相机的本地坐标系中,但这也许不是真的吗?