1. 程式人生 > >【個人Unity筆記】烘焙光照貼圖後保留法線和光探頭

【個人Unity筆記】烘焙光照貼圖後保留法線和光探頭

使用的5.34f1版本的unity
有時候為了節省開銷,烘焙光照貼圖是一種很好的辦法,在手機上開發經常會使用到,配合光探頭還可以讓靜態光和非靜態物體產生互動。

首先,把要烘焙的物體全部勾選為靜態(Static)。
右邊的Static

然後,把需要烘焙的光的Baking由預設的Realtime切換為Baked,AreaLight(區域光)除外,區域光是隻能用於烘焙的,不用修改。

再開啟Window-Lighting,然後在LightMaps選項欄中點選下方的Build就可以了,或者勾選旁邊的Auto,勾選Auto會自動烘焙,適合反覆除錯,但是場景比較大會很卡。
這裡寫圖片描述

Project中會多出來一個LightingData,這個就是儲存你的光照貼圖的檔案。

烘焙後會發現,勾選了Static的物體確實是烘焙出來了,但是非靜態物體並不受靜態光的影響,感覺不太好。
如下圖,立方體和地面是靜態,球體是非靜態,紅藍光是靜態光,可以看到,球體不受紅藍光的影響。
這裡寫圖片描述
放置光探頭可以使靜態光和非靜態物體互動。而且基本上沒有什麼開銷。
GameObject-Light-Light Probe Group,建立一組光探頭,用光探頭把靜態光包裹起來,然後再複製一組光探頭,把之前的光探頭再包裹起來,這樣效果比較好。如下圖
這裡寫圖片描述
把每一個靜態光都這樣包裹一下,然後再烘焙一次。
然後就會發現非靜態物體也接受靜態光的影響了。
這裡寫圖片描述
配合一些特殊的Shader也沒什麼問題
這裡寫圖片描述

需要注意的是烘焙光照貼圖後法線就沒有了,保留法線需要修改Lighting面板中的Directional Mode為Directional,然而下面的提示也說明的這個選項不支援比較老的硬體,如果不支援他會自動回滾到Non_Directional。所以不用擔心。
這裡寫圖片描述