關於Unity粒子系統優化,你可能遇到這些問題

2021-08-09 22:48:56 字數 1170 閱讀 6948

粒子系統合批

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

粒子系統的draw call動態拼合與半透明物體的動態拼合機制相當(粒子基本都是半透明材質)。而對半透明物體,由於其渲染順序的限制(必須從後向前渲染,以保證渲染結果的正確性),動態拼合只能對渲染順序相鄰且材質相同的物體有效。而在決定半透明物體的渲染順序時,unity首先會按shader中的renderqueue進行排序;其次(相同renderqueue時),會根據每個半透明物件到螢幕的距離,距離大的優先渲染。

因此,需要盡可能地將相同材質的粒子系統放在比較接近的深度下,才能更多地使動態拼合生效。但通常由於相機的運動、粒子系統的分散分布等原因造成粒子系統之間的穿插,能夠動態拼合的數量往往都是很少的,所以我們在粒子系統模組看到的開銷分布通常類似該圖,主要都是未拼合粒子系統造成。

該問題來自uwa問答社群,如您對該問題仍有疑問,可以轉至社群進行進一步交流。

q2:在unity開發中,大規模使用粒子特效會有什麼問題 ?如何去針對性的優化?

普遍來說,會造成draw call高、渲染開銷大、cpu高等問題。下圖就是uwa效能診斷系統對粒子系統檢測的幾個注意點。

q3:如下圖,我們在unity 5.3.0中使用粒子系統時會觸發乙個particlesystem.geometryjob的操作,並且該操作十分消耗cpu,請問怎麼解決?

該問題已經確認是bug,且已在unity 5.3.2中修復。

開發者需要關注下自己的開發版本,5.3.2以前類似情況的專案可以參考一下。

該問題來自uwa問答社群,如您對該問題仍有疑問,可以轉至社群進行進一步交流。

Unity粒子系統

首次接觸unity的粒子系統,內容太多,搞得都不好寫筆記,所以就記錄下unity的粒子系統做出來的東西以及經常用的一些引數。火焰效果製作 這個相對簡單 建立粒子系統物件 1 調duration 1 開啟loop start size 1 start lifetime 1 start speed 1 ...

Unity粒子系統

rateoverdistance 隨著移動距離產生的粒子數量。只有當粒子系統移動時,才發射粒子。bursts sprite 通過相同尺寸的sprite實現粒子動畫。tiles 網格的行列數。animation startframe 開始的幀是哪一幀。flipu 翻轉u。flipv 翻轉v。enabl...

Unity粒子系統研究

開發環境 window7 unity3d3.4 mb525defyandroid 2.2.1 羽化的第七篇部落格,這次準時送上,辛苦兩天stray已經80了 0 真是漫長啊,魔獸世界作為最好的網路遊戲總是帶給我們很多驚喜和靈感,現在很多做什麼遊戲都會不自覺和魔獸世界進行比較,包括羽化自己,但羽化希望...