使用three.js应用摄像机位置和旋转

时间:2018-04-05 21:51:35

标签: javascript three.js camera rotation

在一个场景中,我有一个我正在用PerspectiveCamera查看的对象。 使用OrbitControls我可以在对象周围移动,旋转它,平移等等。

我想要做的是将物体移动到某个角度的某个位置,然后获取相机位置和旋转。我稍后会用这些值更新相机。问题是three.js不会应用其中的一些值。这就是我正在做的事情,以获取相机位置,旋转和lookAt矢量

console.log("Position", camera.position)
console.log("Rotation", camera.rotation)
console.log("World Direction", camera.getWorldDirection())

一旦我得到了向量,将它们写下来并像这样应用它们:

camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 2000);
camera.rotation.set(-3.14, -0.44, -3.14);
camera.position.set(-1067.29, 34.23, 205.82);
camera.lookAt(0.43, -7.10, 0.90)

但问题是如果我使用pan和OrbitControls

,旋转和位置会变为其他值

1 个答案:

答案 0 :(得分:0)

在Orbitcontrols上,您需要在更改相机的变换后调用“ controls.update()”。

请参见OrbitControlDokumentation上的代码示例

更新: 注意:orbitcontrols seem to overwrite camera transforms