Unity Lighting -- 室內(nèi)場(chǎng)景光照雜項(xiàng)
游戲物體所有面都計(jì)算陰影
? ? ? ? 在游戲物體的Inspector中,展開Lighting選項(xiàng)卡,在Cast Shadows中選擇 Two Sided。

? ? ? ? 選擇Two Sided后,游戲物體在計(jì)算陰影的時(shí)候會(huì)對(duì)Mesh的所有面都計(jì)算,這樣會(huì)看起來更加真實(shí)。
改善光泄露問題(light leaks)
? ? ? ? 光泄露是指光出現(xiàn)在了游戲物體周圍不該出現(xiàn)的地方。這種問題一般是光穿過了它本來不應(yīng)該穿過的地方,比如穿過了墻或在兩面不透光的墻中間。根據(jù)項(xiàng)目的設(shè)置不同,作為非相關(guān)領(lǐng)域?qū)<遥╨ighting artist),要解決這個(gè)問題會(huì)比較棘手,但我們能夠通過部門設(shè)置改善這個(gè)問題。
? ? ? ? 如下圖,立燈旁邊的門和墻有一些光線漏了出來(看地面上的白色先線條處)。

? ? ? ? 我們?cè)贖ierarchy中選擇Directional Light,在其Inspector中,慢慢降低Bias Normal的值到0,觀察一下場(chǎng)景中的這個(gè)漏光的地方有什么改變

? ? ? ? 實(shí)驗(yàn)看看Depth,Normal和Near Plane屬性值,試著將漏光問題降到最小。
? ? ? ? 注意:不要將Bias設(shè)置得過高,這個(gè)值過高會(huì)讓物體的影子看起來會(huì)和物體分離開。
? ? ? ? 最后,在Lighting窗口中點(diǎn)擊Generate Lighting生成烘焙光照結(jié)果。

檢查新導(dǎo)入模型的光照問題
? ? ? ? 接下來我們用一個(gè)有問題的LightmapUV數(shù)據(jù)的蘋果模型來說明如何去診斷新導(dǎo)入模型的光照問題(模型下載地址https://connect-prd-cdn.unity.com/20211124/2a865f48-d818-4ff2-8106-fcd6dbfa63d9/Apple_BrokenLightmapUVs.fbx?_ga=2.265317894.822622723.1637578205-1717752285.1627477648)。首先在場(chǎng)景中導(dǎo)入這個(gè)有問題的模型。這里將模型選擇為Static,然后重新烘焙一下場(chǎng)景光照。在這里例子中,蘋果表面只有一半有反光,并且反光以一種奇怪的方式扭曲了

? ? ? ? ?出現(xiàn)這個(gè)問題的原因是模型沒有正確的lightmap UV。
檢查烘焙光照貼圖診斷視圖
? ? ? ? 將模型正確配置好用于烘焙光照是非常重要的。如果這一步有問題,我們會(huì)得到非預(yù)期或者是完全不想要的效果。診斷視圖在這方面能起到比較大的幫助,特別是對(duì)于案例中的蘋果模型的問題,并不是一眼就能看出的明顯的問題。
? ? ? ? 要打開烘焙光照貼圖的診斷視圖,在Draw Mode下拉菜單中選擇Baked Lightmap

? ? ? ? 選擇之后,我們可以看到,場(chǎng)景視圖中出現(xiàn)了一層覆蓋圖層(overlay)

? ? ? ? ?這個(gè)覆蓋層是一種棋盤格圖案,我們可以用來用這種pattern來識(shí)別模型的問題。調(diào)整Light Exposure可以讓棋盤格更加容易看清楚。? ? ?

? ? ? ? ?可以看到,棋盤格圖形在蘋果模型上扭曲的非常厲害。
生成模型的Lightmap UVs
? ? ? ? 在資源窗口中選擇導(dǎo)入的模型,在其Inspector中,找到Generate Lightmap UVs屬性(模型導(dǎo)入設(shè)置里Model標(biāo)簽頁最下面)

? ? ? ? ?勾選Generate Lightmap UVs,然后點(diǎn)擊Apply。
? ? ? ? 這是我們可以看到蘋果表面的棋盤格圖案看起來正常一點(diǎn)了(案例中模型的比例進(jìn)行了調(diào)整,因此看起來棋盤格圖案看起來較大):

? ? ? ? ?將Draw Mode切換回Shaded,然后重新烘焙一下光照,看看結(jié)果。
? ? ? ? 有一點(diǎn)比較重要,Generate Lightmap UVs只是提供了非?;A(chǔ)的改善效果,并不能完全替代藝術(shù)家的工作。