Q1:我們在UWA報告中看到有拼合粒子系統和未拼合粒子系統,請問如何拼合粒子系統?有沒有什麼規則呢?

粒子系統的Draw Call動态拼合與半透明物體的動态拼合機制相當(粒子基本都是半透明材質)。而對半透明物體,由于其渲染順序的限制(必須從後向前渲染,以保證渲染結果的正确性),動态拼合隻能對渲染順序相鄰且材質相同的物體有效。而在決定半透明物體的渲染順序時,Unity首先會按Shader中的RenderQueue進行排序;其次(相同RenderQueue時),會根據每個半透明物件到螢幕的距離,距離大的優先渲染。 是以,需要盡可能地将相同材質的粒子系統放在比較接近的深度下,才能更多地使動态拼合生效。但通常由于相機的運動、粒子系統的分散分布等原因造成粒子系統之間的穿插,能夠動态拼合的數量往往都是很少的,是以我們在粒子系統子產品看到的開銷分布通常類似該圖,主要都是未拼合粒子系統造成。
Q2:在Unity開發中,大規模使用粒子特效會有什麼問題 ?如何去針對性的優化?
普遍來說,會造成Draw call高、渲染開銷大、CPU高等問題。下圖就是UWA性能診斷系統對粒子系統檢測的幾個注意點。![]()
關于Unity粒子系統優化,你可能遇到這些問題
Q3:如下圖,我們在Unity 5.3.0中使用粒子系統時會觸發一個ParticleSystem.Geometryjob的操作,并且該操作十分消耗CPU,請問怎麼解決?
該問題已經确認是Bug,且已在Unity 5.3.2中修複。 開發者需要關注下自己的開發版本,5.3.2以前類似情況的項目可以參考一下。
原文出處:侑虎科技
本文作者:admin
轉載請與作者聯系,同時請務必标明文章原始出處和原文連結及本聲明。