Lightmap 製作經驗 #2

製作 Lightmap 在手遊或資源緊張的項目中
在輸出 Lightmap 時最需要控制的除了效果之外最緊要的就是 Draw call 及 lightmap 的總素材量.

Draw call

Draw call 即是 Unity 5+ 裡的 Total batching
其數字代表的是 GPU 總繪圖次數. 數值越大代表繪畫次數增多(慢).
一般來說 Lightmap 的數量越多, draw call 會隨著物件 Material 貼圖及物件本身能否 lightmap static 而增加.
所以盡量控制每個物件一個 Material 會比較容易算 Draw call , 可是這麼一來就很難控制, texture atlas 及 Static mesh 了. (所以這方面要自己平衡一下,混著用罷)

註: 如果同一個 Mesh 物件附著 2 個或更多的 Material 也會影響 Draw call 數, 大於等於 2 層的 Material 令其不能與其他部分相同的 Material 同時進行繪畫, 這部份會因為 Lightmap 的加入令 Draw call 數倍增, 但這問題並不能由 Lightmap 解決. (在 Mesh 及 Texture atlas 上著手罷)

Lightmap atlas

輸出的圖片數理所當然的是素材本身佔的檔案大小.
訂明陰影解像度.
Lighting > Scene > Baked GI > Baked Resolution
需留意的是在同一頁的 Atlas 大小
在 Lighting > Scene > General GI > Atlas Size 能介定每個 Atlas 的解像度.
一個 Atlas 裡能放多少張不同的 Lightmap 要由 Developer 自行判斷.

lightmap_atlas

Scale In Lightmap

每個 Mesh 物件也可以自行調節 lightmap 紋理的貼圖大小.
如果有些不太重要的物品(自行判斷)在 lightmap 中佔的地方太大導致 atlas 數量增多或者只差一點點就能把所有 lightmap 放到同一張上的話,調這個能幫得上忙.

lightmap_scale

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料