![]()
這是第457篇UWA技術(shù)知識分享的推送,精選了UWA社區(qū)、UWA AI問答的熱門話題等技術(shù)知識點,助力大家更全面地掌握和學(xué)習(xí)。
UWA社區(qū)主頁:community.uwa4d.com
UWA QQ群:793972859
本期目錄:
哪些因素和參數(shù)會影響B(tài)loom的性能開銷
- 為何Scripting Threads的 線程數(shù)量異常
From UWA AI 問答
Q:哪些因素和參數(shù)會影響bloom的性能開銷?
A:Bloom(泛光)的性能開銷主要來自GPU帶寬、計算量與多級采樣次數(shù),其關(guān)鍵影響因素和可調(diào)參數(shù)如下:
一、核心性能影響因素
1. 采樣分辨率與下采樣層級
Bloom默認從1/2渲染分辨率開始逐級下采樣(如Blur1–Blur5),分辨率越低(如1/16)、層級越多,帶寬越低但模糊質(zhì)量下降;反之,高分辨率采樣(如1/2)顯著增加紋理讀取帶寬和顯存吞吐壓力。
移動端建議從1/4或1/8起始,減少首層采樣開銷。
2. BloomQuality級別
r.BloomQuality=5(默認)啟用全部5層模糊+高質(zhì)量卷積,開銷最大;=1~3可禁用部分層級或使用簡化高斯,大幅降低GPU耗時。
3. ScreenPercentage控制卷積精度
r.Bloom.ScreenPercentage=50表示FFT卷積在50%分辨率下執(zhí)行;提高該值(如至100%)會線性增加計算與帶寬,需謹慎權(quán)衡。
4. 泛光卷積(Convolution)啟用
啟用Bloom Convolution會觸發(fā)FFT卷積運算,依賴全分辨率內(nèi)核紋理+額外緩沖區(qū)(r.Bloom.ConvolutionBuffer),顯著提升GPU計算與顯存帶寬壓力,僅推薦高端設(shè)備或離線渲染使用。
5. 后處理鏈路疊加效應(yīng)
Bloom常與Tonemapping、Depth of Field、Motion Blur等串聯(lián),導(dǎo)致多次全屏紋理讀寫。尤其在移動平臺,多Pass后處理易引發(fā)帶寬瓶頸(實測可達總GPU帶寬的20%+)。
二、關(guān)鍵可調(diào)控制臺變量(Unreal Engine)
![]()
三、優(yōu)化建議
? 優(yōu)先降級BloomQuality+ScreenPercentage,比關(guān)閉Bloom更能平衡畫質(zhì)與性能;
? 使用Stat GPU和Stat RHI定量定位Bloom耗時(查看PostProcessBloom階段);
? 避免在低端機啟用Convolution或Dirt Mask(額外紋理采樣+混合);
結(jié)合r.VSync與幀率限制,防止Bloom在高幀率下反復(fù)重采樣。
注:Bloom對GPU溫度與功耗影響顯著 —— 實測10GB/s帶寬可貢獻約1000mW功耗(占整機20%+),是移動端發(fā)熱主因之一。
分享鏈接 :
https://www.uwa4d.com/main/uwa-shared.html?shareId=f3f99f69-7e55-4af8-9a58-2531d33ec39a
From UWA AI 問答
Q:請教個問題, 我們有用到線程池, 我在Profiler的時候看到在Scripting Threads里面有幾十個的線程顯示, 這個是正常的嗎?
A:是不正常的,需立即排查。
Unity的Profiler中出現(xiàn)大量名稱為 的Scripting Threads,通常表明:
?線程未正確命名或未注冊:Unity默認對System.Threading.ThreadPool中的線程不自動命名,Profiler無法識別其用途,統(tǒng)一顯示為(或空名+編號)。
??線程泄漏風(fēng)險高:若線程池長期持有大量閑置線程(尤其在Unity 2019 – 2022版本中),可能因ThreadPool.SetMinThreads調(diào)用不當(dāng)、異步任務(wù)未完成/未釋放、或Task.Run+長阻塞操作導(dǎo)致線程堆積。
?非Unity管理線程被誤納入Profiler視圖: 線程無法通過Profiler.BeginThreadProfiling()注冊,說明它們未被主動追蹤,也意味著你無法在Timeline中定位其耗時來源。
建議動作:
檢查是否濫用Task.Run或ThreadPool.QueueUserWorkItem;優(yōu)先改用Unity Job System或Unity.Collections.LowLevel.Unsafe異步方案。
確認無new Thread(...).Start()后未調(diào)用Profiler.EndThreadProfiling()(否則資源泄漏且線程殘留)。
在Editor中啟用Call Stacks+Deep Profiling,篩選GC Alloc/CPU高耗時幀,定位創(chuàng)建線程的調(diào)用棧。
使用UWA GOT Online的Mono/Threading模塊,查看線程數(shù)趨勢與存活時間,確認是否隨游戲時長持續(xù)增長。
注:Unity官方不鼓勵直接使用.NET線程池進行高頻短任務(wù)調(diào)度 —— Job System才是跨平臺、可Profiler可視化的首選。
分享鏈接 :
https://www.uwa4d.com/main/uwa-shared.html?shareId=3ba6d84d-9e4e-4fb2-a66f-f6fdc562b15f
無論是社區(qū)里開發(fā)者們的互助討論,還是AI基于知識沉淀的快速反饋,核心都是為了讓每一個技術(shù)難題都有解、每一次踩坑都有回響。本期分享分別來自UWA AI問答和UWA問答社區(qū),希望這些從真實開發(fā)場景中提煉的經(jīng)驗,能直接幫你解決當(dāng)下的技術(shù)卡點,也讓你在遇到同類問題時,能更高效地找到破局方向。
封面圖來源于網(wǎng)絡(luò)
今天的分享就到這里。生有涯而知無涯,在漫漫的開發(fā)周期中,我們遇到的問題只是冰山一角,UWA社區(qū)愿伴你同行,一起探索分享。歡迎更多的開發(fā)者加入UWA社區(qū)。
UWA官網(wǎng):www.uwa4d.com
UWA社區(qū):community.uwa4d.com
UWA學(xué)堂:edu.uwa4d.com
點擊下方名片關(guān)注我們,將我設(shè)為星標(biāo),及時接收小編每日推送哦,性能優(yōu)化不迷路~
近期精彩回顧
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.