1. 什么是烘焙 #
光照烘焙是計算機圖形學領域的一種技術, 用於為計算量巨大的虛擬光照操作生成紋理, 稱為光照貼圖。光照貼圖信息被烘焙到這些紋理中, 用來展現就像受實時燈光影響的虛擬場景, 而開銷只是使用實時燈光的一小部分. 通常結合烘焙光及實時光使用以創建更真實的虛擬環境.
2. 烘焙的作用 #
如此理解即可 : 把模型放進場景之后, 引擎會計算光線, 光線照到物體表面形成反光和陰影. 如果不烘焙, 游戲運行的時候, 這些反光和陰影都是由顯卡和 CPU 計算出來的. 如果烘焙了, 這些反光和陰影就都記錄在模型里, 變成新的貼圖, 運行的時候顯卡和 CPU 便不需要對環境光效果進行運算了. 概括 : 節約 CPU 資源, 省去內存的大量計算.
3. 烘焙的要點 #
導入的模型都要在屬性窗口中 Model 的 Generate LightMap UVs 勾選上, 這是讓 lightmap 匹配你的 UV. 如果 UV 展的不均勻, 那么得到的烘焙陰影效果也不會好.
分好場景中 GameObject 的層, 燈光和烘焙照射時可以分得開, 例如 UI 就放到 UI 層, 人物等活動的就放到活動的層, 不動的建築放到建築層等.
把要烘焙的物體設置為 Static
Directional Light 設置一個主的實時光照, 其他的光都設置為 backed, 注意室內點光源也是這樣, baked 的燈光根據實際情況選擇是否開啟陰影, 光線可以對某些層的物體不進行照射.
燈光的設置中 Render Mode 要選擇 Important, 如果不選, 某些燈光的位置就會有閃爍的問題. 烘焙的效果也是按 Important 計算的, 如果發現烘焙后曝光, 就是因為沒有選中這個, 才導致效果跟你現在的不一致. 選中后如果曝光, 說明燈光的 Intensity 設置的過高了.
烘焙中 OA 的參數最好設置一下, 效果不錯. (Lighting ->> Scene ->> Baked GI ->> Ambient Occlution)
盡量不要室內室外都制作在一個場景里, 燈光會互相干預, 例如, 屋外的平行光的陰影硬度設置的很高, 光強設置的很高, 那么即使屋內的燈再亮看上去也會是漆黑一片, 不過可以用邏輯動態調整一下(人在屋內就減弱屋外的燈光)
好的效果要靠光線, shader, 烘焙出來的反射效果, 需要一台渲染工作站來加快烘焙速度.
在烘焙的時候會產生很多臨時文件, 在 Edit ->> Preferences ->> GiCache 中設置臨時文件的位置和大小. 如果設置的太小, 存不下的時候就會報錯.
3. 學習引用資料 #
https://zhidao.baidu.com/question/502968057.html
http://www.manew.com/thread-91104-1-1.html
End.