unity5.6是今年發布,作為5.x的最后一個版本,有很多烘焙優勢,在此總結一些作為5.x系列完結的筆記
這個版本在烘焙上的特點就是增加了漸進光照貼圖(Progressive Lightmapper),這個功能可以說極大地改善場景光照烘焙的工作流程,可以加快場景烘焙效率,再也不怕烘焙一晚上發現有燈光有問題了
當然它不是用來替代Enlighten的,很多地方還是略有不同的,但是感覺這個速度更快。雖然有的新增的燈光混合模式不受支持,但是它在模型迭代中能發揮更大的優勢。
Progressive 光照優勢就是能很快看到一個區域的光照效果,而且在高參數下烘焙非常快,可以隨時停止,效果依然保留,這個功能好多了
缺點也挺多的,比如只支持兩個模式(看下面,有些效果會缺失),參數高的時候內存占用非常大,如果內存小的機器很容易崩潰
enlighten比較還是比較傳統,內存消耗不多,比較不容易崩潰,支持所有模式,所以需要高端效果的時候還是這種支持的多
但是缺點是不到渲染結束看不到效果,相同參數下烘焙時間感覺長了不只好幾倍
下面是兩個白模渲染效果對比
可以看到其實漸進式的效果范圍ao效果范圍更廣更暗一些
關於新版本還有4種光照模式,有些理解起來還都是挺糾結的
而且官方和其他教程解釋得都比較抽象,所以下面以質量為主進行一些說明
表面上這些設置和mixed燈光有關,屬於混合燈光方面的內容
lightmode具體可以看這里
https://docs.unity3d.com/Manual/LightModes.html
關於混合燈光四種模式區別具體看下面的
https://docs.unity3d.com/Manual/LightMode-Mixed.html
但這些與烘焙質量也有很大關系,我測試了以陰影質量為主列下面的表
下面討論的項目是在bake light下,directional模式下
enlighten 燈光設置 |
progressive 燈光設置 |
|
---|---|---|
Baked Indirect 內存占用少,動態質量一般,消耗一般 |
mixed 近處硬 遠處消失 動態投影 baked 軟陰影 | baked mixed 軟陰影 |
Distance Shadowmask 內存占用高,動態質量高,消耗高 |
mixed 近處硬 遠處軟 動態投影 baked 軟陰影 | 不支持 如果強行使用效果同上 |
Shadowmask 內存占用低,動態質量差,靜態質量高,消耗低 |
mixed 軟 靜態物體無動態投影 baked 軟陰影 | 不支持 如果強行使用效果同上 |
Subtractive 內存占用低,質量低,消耗低 |
mixed 軟 靜態物體無動態投影 baked 軟陰影 | baked mixed 軟陰影 |
混合燈光模式:
說一下下面的模式主要針對的都是混合燈光也就是mixed方式,動態和靜態雖然有的模式能相互投影但是影子依然會非常銳利,具體如何使用實時陰影取決於ShadowDistance的值和光照模式。
shadow map就是普通的即使陰影,就是比較銳利的陰影
有一個不可能,就是不能實時動態物體投下很軟的陰影
性能消耗
大型,戶外 標准,室內 室內,小型靜態,手游 小型,手游
Distance Shadowmask > Baked Indirect > Shadowmask > Subtractive
下面是具體說明,官網內有更詳細解釋
我的主要是關注陰影質量
Baked Indirect mode
性能消耗一般,適合有動態光源物體的室內項目,中低端pc游戲或者高端移動端游戲
baked燈光會烘焙下所有靜態物體並產生軟陰影,baked燈光會穿透動態物體(動態物體不會被baked燈光照亮)
realtime和mixed燈光會在陰影距離內產生比較銳利的影子。距離外不投影忽視物體。
mixed和baked燈光能烘焙出靜態物體的反射光
realtime lighting下 realtime燈光也能烘焙出靜態物體的反射光
https://docs.unity3d.com/Manual/LightMode-Mixed-BakedIndirect.html
Distance Shadowmask (只支持enlighten)
性能消耗高,適合任何有大量動態物體的大場景游戲,適合高端pc
baked燈光會烘焙下所有靜態物體並產生軟陰影,baked燈光會穿透動態物體(動態物體不會被baked燈光照亮)
mixed燈光會烘焙下所有靜態物體並在超出陰影距離的時候使用軟陰影,不超出的時候使用實時硬陰影
realtime燈光會在陰影距離內產生比較銳利的影子。距離外不投影忽視物體。
mixed和baked燈光能烘焙出靜態物體的反射光
realtime lighting下 realtime燈光也能烘焙出靜態物體的反射光
烘焙的shadowmask上的顏色不是燈光顏色,而是靜態光的顏色,只能有四盞燈,分為rgba
mixed燈光產生的陰影將被分離到新的烘焙貼圖中,所以這個模式下mixed燈光顏色和位置可以在烘焙后改,還是軟陰影
https://docs.unity3d.com/Manual/LightMode-Mixed-DistanceShadowmask.html
Shadowmask (只支持enlighten)
性能消耗比較低,適合室內小型無多少動態物體的項目,適合中低端pc和移動端游戲
baked和mixed燈光會烘焙下所有靜態物體並產生軟陰影,baked和mixed燈光會穿透動態物體(動態物體不會被baked燈光照亮)
realtime燈光會在陰影距離內對動態物體產生比較銳利的影子。靜態物體不會在動態燈光下產生投影,距離外不投影忽視物體。
mixed和baked燈光能烘焙出靜態物體的反射光
realtime lighting下 realtime燈光也能烘焙出靜態物體的反射光
烘焙的shadowmask上的顏色不是燈光顏色,而是靜態光的顏色,只能有四盞燈,分為rgba
mixed燈光產生的陰影將被分離到新的烘焙貼圖中,所以這個模式下mixed燈光顏色和位置可以在烘焙后改,還是軟陰影
https://docs.unity3d.com/Manual/LightMode-Mixed-Shadowmask.html
Subtractive
性能消耗很低,適合小型無多少動態物體的項目,適合中低端pc和移動端游戲
baked和mixed燈光會烘焙下所有靜態物體並產生軟陰影,baked和mixed燈光會穿透動態物體(動態物體不會被baked燈光照亮)
realtime燈光會在陰影距離內對動態物體產生比較銳利的影子。靜態物體不會在動態燈光下產生投影,距離外不投影忽視物體。
mixed和baked燈光能烘焙出靜態物體的反射光
realtime lighting下 realtime燈光也能烘焙出靜態物體的反射光
是以前的老模式,是用於低性能設備,光照被烘焙到貼圖中。
https://docs.unity3d.com/Manual/LightMode-Mixed-Subtractive.html
基本材質烘焙的對比
反射狀態final gather效果
關於Directional Specular
由於在前面的版本里就已經標記成將要廢棄的選項,這個版本就沒有了
但是以前用這個可以表現出高光細節(就是法線貼圖下的高光效果),現在要怎么表現呢
這個就只能借助enlighten了,需要將光照模式改成Shadow Mask或者 Distance Shadow Mask,使用directional,而且光照也必須改成mixed模式
參考https://answer.uwa4d.com/question/5902db1da7fbeb4a58bf64a3/unity5.6%E7%89%88%E6%9C%AC%E4%B8%AD%E5%85%89%E7%85%A7%E9%A2%84%E6%B8%B2%E6%9F%93Directional-Mode%E9%80%89%E9%A1%B9%E4%B8%AD%E5%B0%91%E4%BA%86Directional-Specular%E9%80%89%E9%A1%B9
對后面期望當然是渲染最好能分層
比如現在還是烘焙無視layer設置,包括燈光的