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