
特效是可以讓游戲更生動、更鮮活,有時還能適當(dāng)引導(dǎo)玩家行為的必不可少的重要組成。在開發(fā)者對特效進(jìn)行性能評估時,由于特效數(shù)量龐大,且通常與關(guān)卡、地形、角色技能等元素緊密綁定等因素的干擾,導(dǎo)致難以對其進(jìn)行獨(dú)立分析。本次,我們將分享如何針對項目中的特效進(jìn)行專項分析的方法。
使用工具:UWA GOT Online - GPU檢測模式
使用方法:打包方式 - 性能總覽 - 壓力定位
以下為使用方法的詳細(xì)說明,期待您也一同上手實(shí)操,體驗藥到病除的效果。
打包方式
在游戲運(yùn)行過程中,特效對CPU端造成的性能影響普遍較小,性能壓力主要集中在GPU端,因此主要考慮對特效的GPU性能進(jìn)行分析。
為了排除游戲內(nèi)其他元素的干擾,首先建議將項目中的特效資源單獨(dú)打包,并將背景設(shè)置為默認(rèn)天空盒或靜態(tài)貼圖。
至于特效本身,則可以在出包時支持特效進(jìn)行單獨(dú)播放。如果項目中的特效數(shù)量較多,可以增加自動播放和跳轉(zhuǎn)功能,并在特效播放后進(jìn)行清除操作,避免內(nèi)存泄漏導(dǎo)致崩潰。
在報告查看時,為了便于在GOT Online報告中快速區(qū)分和定位特效。在出包時,建議使用UWA API中的UWAEngine.Tag,特效為單位進(jìn)行場景分割。

性能總覽
在GOT Online - GPU模式檢測報告中,特效的各項GPU性能情況就一目了然了。以GPU Clocks為例,這個參數(shù)表示測試時每幀的GPU時鐘周期數(shù),是當(dāng)前幀GPU性能壓力的最直接體現(xiàn)。開發(fā)者可以通過GPU Clocks曲線的走勢和之前預(yù)設(shè)的場景名,快速定位哪些特效的GPU壓力較大。

如果播放的特效數(shù)量較多,可以打開「場景概覽-性能概覽」頁。在場景性能表中,開發(fā)者可以獲取所有特效的各項性能參數(shù)信息,并對這些特效逐一進(jìn)行分析。比如,通過對GPU Clocks進(jìn)行倒序排序,即可快速篩查出哪些特效的GPU性能壓力最大,需要優(yōu)先關(guān)注優(yōu)化。


壓力定位
通過上文的方法,我們已經(jīng)篩查出了GPU壓力最大的特效,下一步就是根據(jù)報告中的各種參數(shù)定位這些特效的GPU壓力來源,并進(jìn)行優(yōu)化。
首先,在優(yōu)化特效的GPU性能壓力時,可以從頂點(diǎn)壓力、片元壓力、Shader復(fù)雜度這三個角度進(jìn)行分析。
頂點(diǎn)壓力
以頂點(diǎn)數(shù)量為例,開發(fā)者可以在渲染統(tǒng)計模塊查看特效的Triangle數(shù)量。

更進(jìn)一步,結(jié)合GPU渲染分析下的GPU Input Primitive和Culled Primitives,就可以便捷地定位到特效Triangle數(shù)量較高的主要原因,以便有針對性地檢查和優(yōu)化這些可能存在浪費(fèi)的特效。


片元壓力
GPU Fragment Shaded直接反應(yīng)了片元階段的壓力情況。
由于在出包時我們已經(jīng)剔除了渲染分辨率和后處理對特效GPU壓力的影響,所以基本可以認(rèn)為GPU Fragment Shaded反應(yīng)了特效本身的渲染Overdraw情況。

對于Overdraw壓力較大的特效,開發(fā)者可以在測試過程中手動進(jìn)行Overdraw Dump。在Overdraw頁,就可以看到特效的Overdraw熱力圖情況,對片元壓力進(jìn)行大致的判斷。
例如下面這個特效,雖然在畫面中并不明顯,但Overdraw其實(shí)非常高。

左:特效畫面 ;右:Overdraw熱力圖
Shader復(fù)雜度
GPU Total Shader Cycles反應(yīng)了特效播放過程中總體Shader復(fù)雜度情況,GPU Shader Instructions則表示特效播放過程中GPU執(zhí)行的Shader指令數(shù)。


開發(fā)者可以根據(jù)GPU Total Shader Cycles和GPU Shader Instructions判斷特效的GPU性能壓力是否由Shader計算貢獻(xiàn)。
更進(jìn)一步,如果開發(fā)者在定位特效Shader復(fù)雜度壓力后,需要針對單個Shader進(jìn)行具體分析,可以通過Mali Offline Compiler工具獲得單個Shader的指令數(shù)和時鐘周期數(shù)。
通過上述方法,開發(fā)者能夠有效地識別和分析特效的GPU壓力來源,并針對性地進(jìn)行優(yōu)化。UWA也希望通過持續(xù)不斷的努力,為開發(fā)者提供高效、精準(zhǔn)的性能分析工具,協(xié)助提升游戲的性能表現(xiàn),和開發(fā)者們一起為玩家打造出更加精美、流暢的游戲世界。
如果您也希望嘗試優(yōu)化特效的性能壓力,可以前往
https://www.uwa4d.com/#download,注冊用戶即可獲得15天的免費(fèi)試用權(quán)益!
你的游戲項目有這些問題嗎?
近期精彩回顧
【萬象更新】UWA Gears V1.0.9|新增幀能耗指標(biāo) 【學(xué)堂上新】Unity大神速成Unreal指南:繞過新手陷阱,用Unity思維玩轉(zhuǎn)UE5! 【厚積薄發(fā)】高度場流體模擬
熱門跟貼