2012-12-27 41 views
2

我在頁面上提供了兩個攝像頭(透視和正交)的下拉列表。現在我的三場景正在使用透視相機。但根據下拉列表中的選擇,我的相機應更改爲「Orthographic」並轉爲透視如果我在下拉列表中選擇了Perspective。我怎麼能做到這一點?請幫幫我。如何更改Three.js中的相機類型?

對於細節的代碼,這是的jsfiddle鏈接:http://jsfiddle.net/sagh0900/7Anag/9/

camera = new THREE.PerspectiveCamera(45, width/height, 0.1, 1000); 
camera.position.y = 0; 
camera.position.z = 40; 
camera.lookAt(new THREE.Vector3(0, 0, 0)); 
scene = new THREE.Scene(); 
scene.add(camera); 
mesh = new THREE.Mesh(new THREE.Geometry()); 
scene.add(mesh); 

在此先感謝

+0

請您更新與[email protected] – Valay

+0

建議的修改這是整點在這裏,我能更新我的Eclipse環境的變化的jsfiddle。但Jsfiddle的工作方式不同。我還補充說:「CombinedCamera.js」額外資源,但仍然沒有工作:(,的jsfiddle鏈接:jsfiddle.net/sagh0900/7Anag/24 –

回答

6

怎麼看待這個例子中,

combo camera example

使用CombinedCamera。使用camera.toOrthographic()或camera.toPerspective()調用來更改投影。

+0

感謝您的回覆,我能看到我的Eclipse環境的變化,但在哪裏的jsfiddle環境不工作。我已經添加CombinedCamera.js在的jsfiddle「其他資源」,但還是沒能看到輸出能否請您與檢查 我的jsfiddle鏈接:。http://jsfiddle.net/sagh0900/7Anag/24/ –

3

我不認爲你可以更改攝像頭實例的相機類型上的蒼蠅,因爲它們是單獨的類並需要分別實例化。

但是,您可以創建兩個攝像頭的情況下,一個Ortographic和一個透視相機,並指定在渲染()調用當前激活攝像機。你需要在UI事件處理器上更新兩個攝像頭的位置等,或者在渲染函數中克隆位置等。

在three.js所源看,雖然,它看起來不會太硬砍一起支持克里斯蒂安/透視模式切換自定義相機類......那將是怎樣的一個黑客攻擊,但。

+0

感謝您的回覆,Mr.ditkin解決方案在幫助我,但你可以放置一個的jsfiddle鏈接。你的思想,因爲我無法理解你的意思究竟是什麼。 –