在Unity場景中,Lightmap烘焙主要考慮二點:時間消耗與烘焙質量。我們曾給大家講解過如何提高烘焙速度(Unity干貨:加速Lightmap烘焙速度的一些小技巧)。
我們把烘焙的時間流程縮短后,可能會發現某些地方的烘焙質量不夠,這時候該怎么補救呢?我們可以通過下面列舉的方法進行微調。
1、Selective Lightmap Scale
通過Mesh Renderer上的Scale in Lightmap調整特定物體在最終Lightmap中的像素密度。這個選項大家應該經常用到,需要提醒是:這個值并不能影響間接光的質量。因此在感覺物體接收到的間接光質量太差的情況下,調整這個值并不能起作用,這個時候需要調整間接光Lightmap的分辨率。
物體在最終Lightmap上的像素密度可以通過Scene view中的Baked Lightmap模式并勾選列表最下方的Show Lightmap Resolution來可視化。
2、Increase Indirect Quality Per Object
上面提到對特定物體提高間接光質量不能通過Scale In Lightmap參數,這時需要調整Lightmap Parameters中的Resolution參數。雖然Resolution參數位于Precomputed Realtime GI分類下,但是因為Baked GI也需要使用同一個系統計算間接光分布,因此這些參數直接影響Baked GI中的間接光計算過程。
我們可以通過Scene view中的Global Illumination->UV Charts并勾選列表最下方的Show Lightmap Resolution可視化物體在間接光Lightmap上的像素分布,如下圖所示。
3、Play Around With UV Padding(Baked UV)
調整UV Chart間的Padding基本都是為了消除Chart之間的Color bleeding。Padding有二種類型,一種是同一個Mesh Render內的UV Chart間的Padding,一種是不同Mesh Render間Chart的Padding。前者需要通過模型制作軟件調整,如果Lightmap UV讓Unity生成的話也可以在模型導入選項中通過Pack Margin參數調整。后者通過Lighting窗口中的Lightmap Padding參數調整。
Pack Margin
Lightmap Padding
4、 Remove the Compress Lightmaps Option
出于優化內存的考慮,一般開發者都會勾選Lighting窗口中的Compress Lightmaps選項。Lightmap壓縮會讓著色質量下降,反過來我們可以在Lightmap Resolution不高的情況下不勾選這個選項,有可能就能達到我們想要的質量。因為提高Lightmap Resolution的方式對于Lightmap大小的增加量并不可控,可能最后得到的Lightmap size比一開始不壓縮的size還要大。因此在微調質量的時候可以嘗試反勾選這個選項,也許會有意外的發現。
5、Play Around with Baked Shadow Angle
在陰影質量不佳而決定提高Lightmap Resolution之前,我們還可以嘗試調整燈光上的Baked Shadow Angle對其烘焙陰影進行一定程度的模糊。參數如下圖。
6、Blur the Lightmap
除了對陰影進行模糊,我們還能通過調整Lightmap Parameters中的Blur Radius參數對指定物體的lightmap進行整體模糊。在低lightmap精度要求下需要改善質量的時候不妨嘗試下調整這個參數。一般建議設置在2-4之間。
今天云和數據有關Unity中提高Lightmap烘焙質量的一些小技巧的分享就到這里了,希望這篇文章能對你有所幫助。更多相關問題敬請詢問在線的客服老師為您答疑。