unity, particleSystem的batch優化


一,單個光效的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。
               


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM