2012-12-03 91 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