Unity3D-光照貼圖技術


概念

Lightmapping光照貼圖技術是一種增強靜態場景光照效果的技術,其優點是可以通過較少的性能消耗使靜態場景看上去更加真實,豐富,更加具有立體感;缺點是不能用來實時地處理動態光照。當游戲場景包含了大量的多邊形時,實時光源和陰影對游戲的性能的影響會很大。這時使用Lightmapping技術,將光線效果預渲染成貼圖使用到多邊形上模擬光影效果。

烘焙參數

Object選項卡

“All”組中的參數

 

Lightmap Static:選中則表示該物體將參與烘焙。

Scale In Lightmap:分辨率縮放,可以使不同的物體具有不同的光照精度。這樣可以根據實際場景,令遠景中的物體采用較低的分辨率,節省光照貼圖的存儲空間。而較近的物體采用較高的分辨率,使貼圖更加逼真。

Lightmap Index:渲染時所使用的光照貼圖索引。值為0,表示渲染時使用烘焙出來的第一張光照圖;值為255,表示渲染時不使用光照圖。

Tiling X/Y和Offset X/Y共同決定了一個游戲對象的光照信息在整張光照圖中的位置,區域。

“Lights”中的參數

Lightmapping:有3種類型可選

  1)RelatimeOnly:光源不參與烘焙,只作用於實時光照。

  2)Auto:表示光源在不同的情況下作不同的響應。在烘焙時 ,該光源會作用於所有參與烘焙的物體;在實際游戲運行中,該光源會作為實時光源作用於那些動態的或者沒有參與過烘焙的物體 ,而不作用於烘焙過的靜態物體。在使用Dual Lightmaps的情況下,對於小於陰影距離 (shadow Distance,Unity中用於實時生成陰影的范圍,范圍之外將不進行實時生成陰影)的物體 ,該光源將作為實時光源作用於這些物體 ,不管是靜態還是動態 。

  3)表示光源只在烘焙時使用,其他時間將不作用於任何物體。

Color:光源顏色。

Intensity:光線強度。

Bounce Intensity:光線反射強度。

Baked Shadows:烘焙陰影。有三種類型可以選擇

  1)Off:光源對象不產生陰影。

  2)On(Realtime:Hard Shadows):產生輪廓生硬的陰影。

  3)On(Realtime:Soft Shadows):產生平滑的陰影。

Shadow Samples:陰影采樣數,采樣數越多生成陰影的質量越好。

Shadow Angle:光線衍射范圍角度。

Bake選項卡

 

Mode:映射方法。

  1)Single Lightmaps:最簡單直接的方法,對性能及空間的消耗相對較小。可以很好地表現大多數靜態場景的光影效果。

  2)Dual Lightmaps:在近處使用實時光照和部分Lightmap光照,在遠處則使用Lightmap光照,同時在實時光影和靜態光影之間做平滑過渡,使得動態光照和靜態光照可以很好的融合。

  3)Directional Lightmaps:一方面將光影信息保存在光照貼圖上,同時還將收集到的光源方向信息保存在另一張貼圖中,從而可以在沒有實時光源的情況下完成Bump/Spec映射,同時也還原了普通光照圖的光影效果。

Quality:生成光照貼圖的質量。

Bounces:光線反射次數,次數越多,反射越均勻。

Sky Light Color:天空光顏色。

Sky Light Intensity:天空光強度,值為0時,天空色無效。

Bounces Boost:加強間接光照,用來增加間接反射的光照量,從而延續一些反射光照的范圍。

Bounces Intensity:反射光線強度的倍增值。

Final Gather Rays:光照圖中每一個單元采光點用來采集光線時所發出的射線數量,數量越多,采光質量越好。

Interpolation:控制采光點顏色的插值方式,0為線性插值,1為梯度插值。

Interpolation Points:用於插值的采光點個數。個數越多,結果越平滑,但是過多的數量也可能會把一些細節模糊掉。所以說采光點並不是越多越來,這容易導致過度平滑。

Ambient Occlusion:環境光遮蔽效果。

LOD Surface Distance:用於從高模到低模計算光照貼圖的最大世界空間距離。類似於從高模到低模來生成發現貼圖的過程。

Lock Atlas:選中,則會將所有的光照圖區域鎖定,即將物體使用光照圖相關的Tiling X/Y和Offset X/Y屬性鎖定,同時也將不可以再調整光照貼圖的分辨率屬性以及添加新的烘焙物體到光照圖。

Resolution:光照貼圖分辨率。勾選視圖窗口右下角Lightmap Display面板的ShowResolution選項,即可顯示單元大小。假設Resolution為50,那么在10*10個單位面積的平面網格上將占用光照貼圖上500*500個像素的空間。

Padding:不同物體的烘焙圖的間距。

Maps選項卡

Light Probes:用於設置當前使用的Light Probes Group的引用。

Array Size:設置光照貼圖個數。

Compressed:啟用使用壓縮紋理格式。

烘焙

Bake Scene有三個選項:

1)Bake Scene:烘培整個場景,如果場景中有編輯好的Light Probes,那么也同時烘焙Light Probes。

2)Bake Selecte:只烘焙選擇的部分。采用Bake Selected功能在原有基礎上進行添加或者更新,同時系統會保留之前的光照圖。這樣不會因為部分改動而需要重新烘焙整個場景,只需要烘焙改動的部分,大大提高了烘焙效率。

3)Bake Probes:只烘焙Light Probes。

示例

1 創建一個項目,在場景中繪制如下:

 

選中Cube,在Inspector面板中勾選Static,這樣可以使得Cube參與烘焙。

2 打開菜單欄中Window->Lightmapping選項,會彈出Lightmapping視圖。此時選中場景中的Directional Light,在Lightmapping視圖中的Object標簽頁中會出現對光源的設置。參數設置如下:

3 Bake標簽頁下參數設置:

                                                          

4 在Scene視圖右下角的Lightmap Display對話框中勾選Show Resolution復選框,就可以看到光照圖在模型上的分辨率。

5 單擊Lightmapping視圖右下角的Bake Scene,選中Bake Scene映射模式,就開始生成Lightmaps。

前后對比效果如下:

1)烘焙后:

2)烘焙前:

 

注:必須將plane的屬性設置為Static,否則Cube將不會有陰影顯示。

沒有將plane的屬性設置為Static,效果圖如下所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM