W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
平行光是沿著特定方向發(fā)射的光。這種光的表現(xiàn)像是無限遠(yuǎn),從它發(fā)出的光線都是平行的。常常用平行光來模擬太陽光 的效果; 太陽足夠遠(yuǎn),因此我們可以認(rèn)為太陽的位置是無限遠(yuǎn),所以我們認(rèn)為從太陽發(fā)出的光線也都是平行的。
Three.js 的平行光常見的困惑是設(shè)置旋轉(zhuǎn)沒有效果。這是因?yàn)?three.js 的平行光類似與其他引擎的"目標(biāo)平行光"。
這意味著它的方向是從一個(gè)平行光的位置 position 到 target的位置。 (而不是一個(gè)只有旋轉(zhuǎn)分量的'自由平行光')。
這樣做的原因是為了讓光線投射陰影。shadow攝像機(jī)需要一個(gè)位置來計(jì)算陰影。
// White directional light at half intensity shining from the top.
const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 );
scene.add( directionalLight );
color - (可選參數(shù)) 16進(jìn)制表示光的顏色。 缺省值為 0xffffff (白色)。
intensity - (可選參數(shù)) 光照的強(qiáng)度。缺省值為1。
創(chuàng)建一個(gè)新的 DirectionalLight。
公共屬性請(qǐng)查看基類 Light。
如果設(shè)置為 true 該平行光會(huì)產(chǎn)生動(dòng)態(tài)陰影。 警告: 這樣做的代價(jià)比較高而且需要一直調(diào)整到陰影看起來正確. 查看 DirectionalLightShadow 了解詳細(xì)信息。該屬性默認(rèn)為 false。
只讀標(biāo)志,用于檢查給定對(duì)象是否屬于 DirectionalLight 類型。
假如這個(gè)值設(shè)置等于 Object3D.DefaultUp (0, 1, 0),那么光線將會(huì)從上往下照射。
這個(gè) DirectionalLightShadow 對(duì)象用來計(jì)算該平行光產(chǎn)生的陰影。
平行光的方向是從它的位置到目標(biāo)位置。默認(rèn)的目標(biāo)位置為原點(diǎn) (0,0,0)。注意: 對(duì)于目標(biāo)的位置,要將其更改為除缺省值之外的任何位置,它必須被添加到 scene 場景中去。
scene.add( light.target );
這使得屬性target中的 matrixWorld 會(huì)每幀自動(dòng)更新。
它也可以設(shè)置target為場景中的其他對(duì)象(任意擁有 position 屬性的對(duì)象), 示例如下:
const targetObject = new THREE.Object3D();
scene.add(targetObject);
light.target = targetObject;
完成上述操作后,平行光現(xiàn)在就可以追蹤到目標(biāo)對(duì)像了。
公共方法請(qǐng)查看基類 Light。
復(fù)制 source 的值到這個(gè)平行光源對(duì)象。
src/lights/DirectionalLight.js
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: