1、Unity引擎中提供的光照系統叫EnLighten,作為引擎渲染的一部分,負責構建場景中的燈光。
(1)Light組件簡介
Unity的燈光組件大致分為:光源組件和烘焙組件
光源:自己能發光,分為Directional Light,Point Lignt,Spot Light。
(2)常見光源類型
a、Directional Light
平行光,模仿太陽光,沒有真正的“源”,整個場景中任何一個角落的光照強度是相等的。
b、Point Lignt
點光源,從中心呈球形向四周擴散,例如火把,室內燈具。Point Light的效果受到范圍(Range)和強度(Intensity)的影響。和Directional Light不同,點光源的效果受到位置的影響。
c、Spot Light
聚光燈,從中心呈扇形向某一個方向發出,受扇形角度(Angle)和范圍(Range)的影響。一般模擬手電筒和車燈。
d、Area Light
區域光,與上面3個最大的不同在於只能在烘焙的情況下使用。而Directional Light,Point Lignt,Spot Light能在實時(RealTime)和烘焙(Bake)兩種情況下使用。
2、全局光照
實際開發中,大多數情況下燈光都是相互作用的,如燈光照射到物體A上,A反射的光會照射到物體B,這種關聯關系是通過全局光照(Global Illumination,GI)系統來進行處理的。
全局光照簡介:
全局光照極大提升了場景中光照的真實性,但是這種程度的實時計算是非常消耗資源的。但從另外一個方面說,我們只需要對場景中的動態物體進行實時計算,保證光照效果,但是對於固定的物體,不應該浪費太多資源。
這種技術在Unity中稱為烘焙。當對場景進行燈光烘焙后,場景中的光照信息就會存儲在Lightmap中,當場景運行時,Unity就會讀取Lightmap中的數據,無需再次進行計算,避免了不必要的性能消耗。