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