傳統上,在3D投影中,Y軸是表示「上下」的軸。我學會了用其他引擎思考它,因爲該軸是Z軸。我想知道的是在Three.JS中有沒有辦法讓Z軸成爲「上/下」軸。如果是這樣,是否會有任何後果?Three.JS旋轉投影使y軸成爲z軸
這裏是我想要什麼圖:
傳統上,在3D投影中,Y軸是表示「上下」的軸。我學會了用其他引擎思考它,因爲該軸是Z軸。我想知道的是在Three.JS中有沒有辦法讓Z軸成爲「上/下」軸。如果是這樣,是否會有任何後果?Three.JS旋轉投影使y軸成爲z軸
這裏是我想要什麼圖:
您可以更改攝像頭而不是整個座標系。例如:
var WIDTH = 1024;
var HEIGHT = 768;
var VIEW_ANGLE = 45;
var ASPECT = WIDTH/HEIGHT;
var NEAR = 0.1;
var FAR = 10000;
camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR);
camera.position.z = 300;
camera.up = new THREE.Vector3(0, 0, 1);
scene.add(camera);
這改變了up
矢量相機使用Z-UP。
編輯:
一個例子來說明,這裏就是你創建稍加修改設置up
矢量之後調用lookAt
的的jsfiddle:http://jsfiddle.net/NycWc/1/
感謝您的回答!我現在沒有時間測試它,但很快就會嘗試。這對其他相機方法有什麼影響嗎?我仍然能夠正常使用'lookAt'嗎? –
嗯,我會認爲lookAt仍然有效,因爲它使用了相機的向上矢量:https://github.com/mrdoob/three.js/blob/master/src/cameras/Camera.js#L32 – jterrace
也許我我做錯了什麼,但我期望相機升高,而不是它似乎離開http://jsfiddle.net/NycWc/ –
我有這個問題與對象。這是我如何修復它。
object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;
這改變了它的方向,就像你問的那樣。
我正在尋找一種方法來改變整個座標系,以便改變位置y和z將使我所描述的改變。 –
的XYZ座標系應始終設置與右手的規則。創建自己的約定並不是一個很好的計劃,會造成很多混亂。您可以隨意旋轉座標系,但不要更改軸的方向。如果你真的想做你顯示的內容,你可以製作一個x,y,-z座標系。
對我來說,右邊的圖片在錯誤的位置上有「x」和「y」。他們不應該交換? – aarman
你能指點我到哪裏我可以閱讀更多關於這個公約?我從來沒有遇到過: -/ – Kuba