0

我在 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)
}

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

4

1 回答 1

5

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

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

camera.up.set( 0, 0, 1 );
于 2012-12-04T12:27:02.040 回答