您好,登錄后才能下訂單哦!
小編給大家分享一下Unity3D如何實現光照貼圖技術,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Lightmapping光照貼圖技術是一種增強靜態場景光照效果的技術,其優點是可以通過較少的性能消耗使靜態場景看上去更加真實,豐富,更加具有立體感;缺點是不能用來實時地處理動態光照。當游戲場景包含了大量的多邊形時,實時光源和陰影對游戲的性能的影響會很大。這時使用Lightmapping技術,將光線效果預渲染成貼圖使用到多邊形上模擬光影效果。
Lightmap Static:選中則表示該物體將參與烘焙。
Scale In Lightmap:分辨率縮放,可以使不同的物體具有不同的光照精度。這樣可以根據實際場景,令遠景中的物體采用較低的分辨率,節省光照貼圖的存儲空間。而較近的物體采用較高的分辨率,使貼圖更加逼真。
Lightmap Index:渲染時所使用的光照貼圖索引。值為0,表示渲染時使用烘焙出來的第一張光照圖;值為255,表示渲染時不使用光照圖。
Tiling X/Y和Offset X/Y共同決定了一個游戲對象的光照信息在整張光照圖中的位置,區域。
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:光線衍射范圍角度。
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:不同物體的烘焙圖的間距。
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,效果圖如下所示:
以上是“Unity3D如何實現光照貼圖技術”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。