小屋創作

日誌2015-10-28 16:52

Lightmap 製作經驗

作者:Canis

近日在學習 Unity3d 5+, Lightmap 的優化
先來個指定的基礎教學文件
Lightmap 簡單說是一個省資源的東西,
遊戲是即時運算的跟拍電影不一樣, 如果太多東西算的話 CPU 還是雖要時間去運算的如果太多物理運算要求 (e.g. 光反射)
在人眼要求每秒 30+ frame 才覺得順暢的前題低下,要把場景上的東西都算一次,會有可能令 CPU/GPU 速度跟不上所以引起 "Drop frame" 就是平時遊 戲中的 frame-per-second 會下降,玩家覺得 Lag 的東西
基本的設定不談, 只談緊要的
手機中要注意的貼圖的大小, 那 lightmap 中應該考慮的有幾項因素
此外
製作 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 自行判斷.

Scale In Lightmap

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

7

0

LINE 分享

相關創作

日本 - 京都 - 清水寺&八坂神社&圓山公園

【活動】周年紀念

日本 - 京都 - 哲學之道&銀閣寺

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】