如何防止OrbitControls的自动旋转采用椭圆路径?

时间:2016-06-06 09:01:18

标签: three.js

我正在使用来自mrdoob的repo的OrbitControls.js的Three.js。在场景的初始渲染过程中,我将PerspectiveCamera的位置设置为camera.position.set(500, 1500, 2000);。然后,当我完成所有网格渲染后,我通过调用controls.autoRotate开始旋转相机。 controls定义为controls = new THREE.OrbitControls(camera, renderer.domElement);。现在,我的相机沿着z轴和x轴以相当极端的省略号移动。它也在不断地关注中心点:camera.lookAt(new THREE.Vector3(0, 0, 1000));。如何让我的相机在我的中点(0, 0, 1000)周围转动整齐的圆圈?

1 个答案:

答案 0 :(得分:0)

如果你想修复以某个位置为中心的轨道控制:

`controls.center.set(0,0,0);` // to fixed pos / vector

控制自动旋转将绕零轴Y轴上的controls.center/target进行轨道运行。旋转半径是相机到控制器的距离。中心。

如果Y轴(updown)上的半径不为零,请检查控件父对象的旋转(场景或其他)。

当您使用控件控制相机时,每帧中都会设置相机位置和旋转,您无法通过代码进行更改。将在下一帧立即被覆盖。

如果你想从轨道控制中心更改摄像机视图,请尝试创建第二个摄像机并切换渲染。