Three.js光線(一)

1、Three.js中的光源類

  在Threejs中,光源用Light表示,它是全部光源的基類。它的構造函數是:函數

THREE.Light ( hex )

  它有一個參數hex,接受一個16進制的顏色值。例如要定義一種紅色的光源,咱們能夠這樣來定義:spa

Var redLight = new THREE.Light(0xFF0000);

  THREE.Light只是其餘全部光源的基類,要讓光源除了具備顏色的特性以外,咱們須要其餘光源。看看,下面的類圖,是目前光源的繼承結構。code

2、環境光

  環境光是通過屢次反射而來的光,沒法肯定其最初的方向。環境光是一種無處不在的光。環境光源放出的光線被認爲來自任何方向。所以,當你僅爲場景指定環境光時,全部的物體不管法向量如何,都將表現爲一樣的明暗程度。 (這是由於,反射光能夠從各個方向進入您的眼睛)blog

環境光用THREE.AmbientLight來表示,它的構造函數以下所示:繼承

THREE.AmbientLight( hex )

  它仍然接受一個16進制的顏色值,做爲光源的顏色。環境光將照射場景中的全部物體,讓物體顯示出某種顏色。環境光的使用例子以下所示:it

var light = new THREE.AmbientLight( 0xff0000 );
scene.add( light );

  只須要將光源加入場景,場景就可以經過光源渲染出好的效果來了。class

3、點光源

點光源:由這種光源放出的光線來自同一點,且方向輻射自四面八方。例如蠟燭放出的光,螢火蟲放出的光。ejs

點光源用PointLight來表示,它的構造函數以下所示:渲染

PointLight( color, intensity, distance )

這個類的參數稍微複雜一些:構造函數

  • Color:光的顏色
  • Intensity:光的強度,默認是1.0,就是說是100%強度的燈光,
  • distance:光的距離,從光源所在的位置,通過distance這段距離以後,光的強度將從Intensity衰減爲0。 默認狀況下,這個值爲0.0,表示光源強度不衰減。

4、聚光燈

聚光燈:這種光源的光線從一個錐體中射出,在被照射的物體上產生聚光的效果。使用這種光源須要指定光的射出方向以及錐體的頂角α。

聚光燈的構造函數是:

THREE.SpotLight( hex, intensity, distance, angle, exponent )

函數的參數以下所示:

  • Hex:聚光燈發出的顏色,如0xFFFFFF
  • Intensity:光源的強度,默認是1.0,若是爲0.5,則強度是一半,意思是顏色會淡一些。和上面點光源同樣。
  • Distance:光線的強度,從最大值衰減到0,須要的距離。 默認爲0,表示光不衰減,若是非0,則表示從光源的位置到Distance的距離,光都在線性衰減。到離光源距離Distance時,光源強度爲0.
  • Angle:聚光燈着色的角度,用弧度做爲單位,這個角度是和光源的方向造成的角度。
  • exponent:光源模型中,衰減的一個參數,越大衰減約快。
相關文章
相關標籤/搜索