在Threejs中,光源用Light表示,它是全部光源的基類。它的構造函數是:函數
THREE.Light ( hex )
它有一個參數hex,接受一個16進制的顏色值。例如要定義一種紅色的光源,咱們能夠這樣來定義:spa
Var redLight = new THREE.Light(0xFF0000);
THREE.Light只是其餘全部光源的基類,要讓光源除了具備顏色的特性以外,咱們須要其餘光源。看看,下面的類圖,是目前光源的繼承結構。code
環境光是通過屢次反射而來的光,沒法肯定其最初的方向。環境光是一種無處不在的光。環境光源放出的光線被認爲來自任何方向。所以,當你僅爲場景指定環境光時,全部的物體不管法向量如何,都將表現爲一樣的明暗程度。 (這是由於,反射光能夠從各個方向進入您的眼睛)blog
環境光用THREE.AmbientLight來表示,它的構造函數以下所示:繼承
THREE.AmbientLight( hex )
它仍然接受一個16進制的顏色值,做爲光源的顏色。環境光將照射場景中的全部物體,讓物體顯示出某種顏色。環境光的使用例子以下所示:it
var light = new THREE.AmbientLight( 0xff0000 ); scene.add( light );
只須要將光源加入場景,場景就可以經過光源渲染出好的效果來了。class
點光源:由這種光源放出的光線來自同一點,且方向輻射自四面八方。例如蠟燭放出的光,螢火蟲放出的光。ejs
點光源用PointLight來表示,它的構造函數以下所示:渲染
PointLight( color, intensity, distance )
這個類的參數稍微複雜一些:構造函數
聚光燈:這種光源的光線從一個錐體中射出,在被照射的物體上產生聚光的效果。使用這種光源須要指定光的射出方向以及錐體的頂角α。
聚光燈的構造函數是:
THREE.SpotLight( hex, intensity, distance, angle, exponent )
函數的參數以下所示: