一,單個光效的batch優化
理想狀態下一個由若干粒子堆出來的光效只需要一至兩個draw call:
(1)至多使用alpha blend(墊底色)和additive(曝光)兩個材質球,兩shader均需要支持頂點色,不需要帶tint color。
(2)使用粒子系統的Start Color和Color over Lifetime來改變粒子顏色(它們都是頂點色),而不是使用shader上的tint color。
(3)相同材質的粒子放到一個圖集,使用粒子系統的Texture Sheet Animation來切分圖集。
(4)不使用mesh作為粒子(mesh粒子不會合批)。
(5)不同材質的發射器賦予不同Order in layer值,相同材質的發射器使用相同的Order in layer值,有助於避免材質打斷(即避免出現“materialA,materialB,materialA”的情況)。
(6)開啟dynamic batch。
二,多個相同光效的batch優化
如果場景中有多個光效A,設單個光效A的draw call數為n,那么我們希望所有的光效A加起來只消耗n個draw call,而不是每個光效A都單獨消耗n個draw call。
