近日在學習 Unity3d 5+, Lightmap 的優化
先來個指定的基礎教學文件
- http://www.edy.es/dev/docs/unity-3d-lightmapping-reference-guide/
- http://www.edy.es/dev/docs/unity-5-lighting-cookbook/
Lightmap 簡單說是一個省資源的東西,
遊戲是即時運算的跟拍電影不一樣, 如果太多東西算的話 CPU 還是雖要時間去運算的如果太多物理運算要求 (e.g. 光反射)
在人眼要求每秒 30+ frame 才覺得順暢的前題低下,要把場景上的東西都算一次,會有可能令 CPU/GPU 速度跟不上所以引起 “Drop frame” 就是平時遊 戲中的 frame-per-second 會下降,玩家覺得 Lag 的東西
基本的設定不談, 只談緊要的
手機中要注意的貼圖的大小, 那 lightmap 中應該考慮的有幾項因素
- Baked GI
- General GI
- Direction Model
http://docs.unity3d.com/Manual/LightmappingDirectional.html- Non-Directional 不運算光線方向
- Directional 運算光線方向(依場景中的Light)
- Directional Specular 運算光線方向,還有物件自身的陰影紋理
- Indirect Intensity 調整所有光源的強弱度, 1 是使用原本光源設置的強度, 大於或小於則相對反映在所有光源上.
- Bounce Boost, 增加光源的反射次數
- Default Parameters
- Default, high, low, very low
按 Edit 有詳細項目, 決定影子的各種參數, 糢糊半徑, 反鋸齒, 區間, 容錯率等等.
- Default, high, low, very low
- Atlas Size
- 輸出每張 lighmap 圖片大小, 若 Baked Resolution 過大還是會分開 N 張圖, Resolution 不高的時候把 Atlas Size 設小一點則可以減小圖片大小.
- Direction Model