相机在 ThreeJS 中有奇怪的行为

Zso*_*olt 0 javascript 3d webgl three.js

我在 ThreeJS 中设置了一个包含两个立方体、一个相机、一个灯和一个平面的场景。立方体在飞机上,相机围绕绿色立方体绕圈飞行。

我的问题是摄像机角度有一个奇怪的行为。当相机飞行时,它会自行旋转并进入倒置位置,然后回到正常位置,然后继续下去。我正在使用 lookAt() 方法。我不知道出了什么问题。我查看了 ThreeJS 的其他一些示例,我得出的结论是这段代码应该可以工作。你能告诉我我做错了什么吗?我希望相机在绿色立方体周围飞行而不会倒置。所以我希望它直接观察立方体,在它飞行时只改变 z 轴。

这是我的渲染循环:

function render() {            
    requestAnimationFrame(render);
    var timer = -0.0002 * Date.now();

    camera.position.x =  5 * Math.cos( timer );
    camera.position.y =  5 * Math.sin( timer );

    camera.lookAt( cube.position );

    renderer.render(scene, camera)
}
Run Code Online (Sandbox Code Playgroud)

这是整个示例:http : //jsfiddle.net/szivak009/8S5hq/6/

Wes*_*ley 5

你的代码没问题。请参阅我上面的评论和小提琴http://jsfiddle.net/8S5hq/9/

您可以up像这样更改相机的方向:

camera.up.set( 0, 0, 1 );
Run Code Online (Sandbox Code Playgroud)