2012-12-03 42 views
0

我已经在ThreeJS中用两个立方体,一个相机,一个光源和一个平面设置了一个场景。立方体在飞机上,相机在绿色立方体周围环绕飞行。相机在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/

+3

Y轴是“向上”的默认。演示中没有什么不寻常的。相机不颠倒。我添加了参考轴。 http://jsfiddle.net/8S5hq/9/ – WestLangley

+0

我自己并没有意识到这一点,但你指出了这一点。谢谢!有没有办法改变“默认向上”轴? – Zsolt

回答

3

你的代码是正确的。看到我上面的评论,和小提琴http://jsfiddle.net/8S5hq/9/

您可以更改摄像头的方向up像这样:

camera.up.set(0, 0, 1); 
+0

谢谢你清除这个给我! – Zsolt