摘要:而針對(duì)投影方式的不同,照相機(jī)又分為正交投影照相機(jī)與透視投影照相機(jī)。我們需要為自己的程序選擇合適的照相機(jī)。相機(jī)視椎體右面。
相機(jī)API
照相機(jī)就是這樣一個(gè)抽象,它定義了三維空間到二維屏幕的投影方式,用“照相機(jī)”這樣一個(gè)類比,可以使我們直觀地理解這一投影方式。
而針對(duì)投影方式的不同,照相機(jī)又分為正交投影照相機(jī)與透視投影照相機(jī)。我們需要為自己的程序選擇合適的照相機(jī)。
THREE.OrthographicCamera(left, right, top, bottom, near, far)
left: 相機(jī)視椎體(Camera frustum)左面。
right: 相機(jī)視椎體(Camera frustum)右面。
top: 相機(jī)視椎體(Camera frustum)上面。
bottom:相機(jī)視椎體(Camera frustum)下面。
near: 相機(jī)視椎體(Camera frustum)前面(靠近相機(jī)的這一面)。
far: 相機(jī)視椎體(Camera frustum)后面(遠(yuǎn)離相機(jī)的這一面)。
設(shè)置照相機(jī)var camera = new THREE.OrthographicCamera(-2, 2, 1.5, -1.5, 1, 10); camera.position.set(0, 0, 5); scene.add(camera);相機(jī)位置
camera.position.set(2, -2, 5);相機(jī)朝向
鏡頭默認(rèn)的方向是朝著z軸的負(fù)方向
camera.lookAt(new THREE.Vector3(0,0,0));
lookAt函數(shù)接受的是一個(gè)THREE.Vector3的實(shí)例,因此千萬(wàn)別寫成camera.lookAt(0, 0, 0),否則非但不能得到理想的效果,而且不會(huì)報(bào)錯(cuò),使你很難找到問題所在。
相機(jī)快門方向相機(jī)快門默認(rèn)向上,以相機(jī)自身為中心畫坐標(biāo)軸(本地坐標(biāo)軸)默認(rèn)為(0,0,0);
camera.up.z= 1; camera.up.x =1; camera.up.y =-1;更新相機(jī)投影矩陣
camera.fov = fov; camera.updateProjectionMatrix();
更新相機(jī)投影矩陣,必須在參數(shù)發(fā)生變化后調(diào)用。
透視投影照相機(jī)THREE.PerspectiveCamera(fov, aspect, near, far)
視角fov:這個(gè)最難理解,我的理解是,眼睛睜開的角度,即,視角的大小,如果設(shè)置為0,相當(dāng)你閉上眼睛了,所以什么也看不到,如果為180,那么可以認(rèn)為你的視界很廣闊,但是在180度的時(shí)候,往往物體很小,因?yàn)樗谀愕恼麄€(gè)可視區(qū)域中的比例變小了。
近平面near:這個(gè)呢,表示你近處的裁面的距離。補(bǔ)充一下,也可以認(rèn)為是眼睛距離近處的距離,假設(shè)為10米遠(yuǎn),請(qǐng)不要設(shè)置為負(fù)值,Three.js就傻了,不知道怎么算了,
遠(yuǎn)平面far:這個(gè)呢,表示你遠(yuǎn)處的裁面,
4、縱橫比aspect:實(shí)際窗口的縱橫比,即寬度除以高度。這個(gè)值越大,說(shuō)明你寬度越大,那么你可能看的是寬銀幕電影了,如果這個(gè)值小于1,則為豎屏。
設(shè)置照相機(jī)var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/94017.html
摘要:和使用的坐標(biāo)系是右手坐標(biāo)系。與都是指到照相機(jī)位置在深度平面的位置,而照相機(jī)不應(yīng)該拍攝到其后方的物體,因此這兩個(gè)值應(yīng)該均為正值。 Three.js是一個(gè)3D JavaScript庫(kù)。Three.js封裝了底層的圖形接口,使得程序員能夠在無(wú)需掌握繁冗的圖形學(xué)知識(shí)的情況下,也能用簡(jiǎn)單的代碼實(shí)現(xiàn)三維場(chǎng)景的渲染。 一個(gè)典型的Three.js程序至少要包括渲染器(Renderer)、場(chǎng)景(Sc...
摘要:學(xué)習(xí)筆記使用粒子系統(tǒng)模擬時(shí)空隧道本例的運(yùn)行結(jié)果如圖時(shí)空隧道演示地址的粒子系統(tǒng)的粒子系統(tǒng)主要是依靠精靈體來(lái)創(chuàng)建的,要實(shí)現(xiàn)中的粒子系統(tǒng)創(chuàng)建,一般有兩種方式。 WebGL three.js學(xué)習(xí)筆記 使用粒子系統(tǒng)模擬時(shí)空隧道 本例的運(yùn)行結(jié)果如圖:showImg(https://img-blog.csdnimg.cn/20190426222855492.png?x-oss-process=ima...
摘要:對(duì)象是所有不同對(duì)象的容器,也就是說(shuō)該對(duì)象保存所有物體光源攝像機(jī)以及渲染所需的其他對(duì)象。對(duì)象又是被稱為場(chǎng)景圖,它不僅僅是一個(gè)對(duì)象數(shù)組,還包含了整個(gè)場(chǎng)景圖樹形結(jié)構(gòu)中的所有節(jié)點(diǎn)每個(gè)添加到場(chǎng)景的對(duì)象,甚至包括本身都是繼承自一個(gè)名為的對(duì)象。 THREE.Scene THREE.Scene 對(duì)象是所有不同對(duì)象的容器,也就是說(shuō)該對(duì)象保存所有物體、光源、攝像機(jī)以及渲染所需的其他對(duì)象。 THREE.S...
閱讀 2298·2021-11-24 11:15
閱讀 3183·2021-11-24 10:46
閱讀 1480·2021-11-24 09:39
閱讀 3988·2021-08-18 10:21
閱讀 1538·2019-08-30 15:53
閱讀 1459·2019-08-30 11:19
閱讀 3388·2019-08-29 18:42
閱讀 2423·2019-08-29 16:58