three.js 相機camera位置屬性設置詳解

開始很懵逼,徹底不能理解,有個position,還要up和lookAt幹嗎。javascript

[黑人問號臉❓❓❓]java

既然是位置屬性不明白,那默認其它屬性都懂了。spa

上座標軸:3d

先來第一個position屬性,能夠設置xyz。blog

假設設置y爲 1000ip

position(0,1000,0);it

相機的位置是下圖:io

單獨設置xz軸都和以上相似,位置z或者x軸某個位置。class

那lookAt,字面上的意思就是,看向哪裏。im

相機默認是由正z軸看像-z軸(相機鏡頭對着-z軸方向拍),就是咱們由屏幕外向屏幕內看同樣。

camera.lookAt({//相機看向哪一個座標
                    x : 0,
                    y : 0,
                    z : 0
                });

如下爲實例爲 相機看向原點0,0,0。(相機位置position(500,500,1000))

如下爲不設置lookAt

由於相機的位置在x軸500上,y軸500,z軸1000。默認是看向-z軸,因此只能看到y軸500位置的線條了。

那up屬性又是什麼鬼,相機位置代碼以下設置狀況下:

camera = new THREE.PerspectiveCamera(45, width / height, 1, 10000);
                camera.position.x = 500;//相機的位置
                camera.position.y = 500;
                camera.position.z = 1000;
//                camera.up.x = 0;//相機以哪一個方向爲上方
//                camera.up.y = 1;
//                camera.up.z = 0;
                camera.lookAt({//相機看向哪一個座標
                    x : 0,
                    y : 0,
                    z : 0
                });

 

一切正常。

加個up屬性試試:

camera = new THREE.PerspectiveCamera(45, width / height, 1, 10000);
                camera.position.x = 500;//相機的位置
                camera.position.y = 500;
                camera.position.z = 1000;
                camera.up.x = 0;//相機以哪一個方向爲上方
                camera.up.y = 0;
                camera.up.z = 1;
                camera.lookAt({//相機看向哪一個座標
                    x : 0,
                    y : 0,
                    z : 0
                });

代碼設置z軸爲1,表示以z軸爲相機的上方。(默認y軸爲上方)

就是躺着看,趴着看,側着看的區別(我是這麼認爲的)

還不明白就是,手機正着拍,倒着拍,旋轉拍~~~

相關文章
相關標籤/搜索