目錄
一、CPU 性能分析
二、GPU性能分析
三、Memory內(nèi)存使用
一、CPU 性能分析
如渲染線程中出現(xiàn) CPU 受限,原因可能是繪制調(diào)用過多。這是一個(gè)常見問題,美術(shù)師通常會(huì)將繪制調(diào)用進(jìn)行組合,從而減少消耗(如:將多個(gè)墻壁組合為一個(gè)網(wǎng)格體)。實(shí)際消耗存在于多個(gè)區(qū)域中:
-
渲染線程需要處理每個(gè)物體(剔除、材質(zhì)設(shè)置、燈光設(shè)置、碰撞、更新消耗等)。 材質(zhì)越復(fù)雜,設(shè)置消耗越高。
-
渲染線程需要準(zhǔn)備 GPU 指令,以便為每個(gè)繪制調(diào)用(常量緩沖、紋理、實(shí)例屬性、著色器)設(shè)置狀態(tài),并執(zhí)行實(shí)際的 API 調(diào)用。 基礎(chǔ)通道繪制調(diào)用的消耗通常比僅限深度的繪制調(diào)用更高。
-
DirectX 將驗(yàn)證部分?jǐn)?shù)據(jù)并將信息傳遞到顯卡驅(qū)動(dòng)。
-
驅(qū)動(dòng)(如 NVIDIA、AMD、Intel...)將進(jìn)一步驗(yàn)證并為硬件創(chuàng)建指令緩沖區(qū)。該部分有時(shí)會(huì)在另一線程中分離。
使用 stats 命令顯示由 3D 網(wǎng)格體引起的繪制調(diào)用時(shí)將顯示?Mesh Draw Calls?- 美術(shù)師可通過以下方法減少此項(xiàng)的數(shù)量:
-
減少物體數(shù)量(靜態(tài)/動(dòng)態(tài)網(wǎng)格體、網(wǎng)格體粒子)
-
縮短可視距離(如:場(chǎng)景捕捉 Actor 或每個(gè)物體上的距離)
-
調(diào)整畫面(將畫面拉得更遠(yuǎn)、使移動(dòng)物體不在同一個(gè)畫面中)
-
不使用 SceneCaptureActor(須重新渲染場(chǎng)景、調(diào)低幀率、或只在需要時(shí)進(jìn)行更新)
-
不使用分屏(分屏比單屏的 CPU 受限更大,需對(duì)可延展性設(shè)置進(jìn)行自定義或?qū)?nèi)容設(shè)為更加主動(dòng))
-
減少每次繪制調(diào)用的元素(將接受更復(fù)雜像素著色器的材質(zhì)進(jìn)行組合或單純地減少材質(zhì)數(shù)量,將紋理組合為少數(shù)幾塊較大的紋理 - 只在減少材質(zhì)數(shù)量時(shí)才使用元素較少的 LOD 模型)
-
禁用網(wǎng)格體上自定義深度或陰影投射的功能
-
將光源設(shè)為不投射陰影,或擁有更緊湊的邊界體(視錐、衰減半徑)
在一些情況下,硬件實(shí)例化不失為一個(gè)選擇(相同的 3D 模型、相同的著色器、較少的參數(shù)變化、需硬件支持)。硬件實(shí)例化可極大降低每次繪制調(diào)用的驅(qū)動(dòng)過載,但會(huì)使靈活性受限。我們將其用于網(wǎng)格體粒子和實(shí)例化植物。
Console命令行: Stat SceneRendering
高端 PC 上的實(shí)驗(yàn)說明每幀可擁有數(shù)千次繪制調(diào)用(DirectX11、OpenGL)。更新的 API(AMD Mantle、DirectX12)將嘗試解決驅(qū)動(dòng)過載,并可執(zhí)行更大次數(shù)的繪制調(diào)用。 在移動(dòng)設(shè)備上,繪制調(diào)用次數(shù)為數(shù)百次(OpenGL ES2、OpenGL ES3),但即使如此仍能極大地降低驅(qū)動(dòng)過載(Apple Metal)。
如在Game Thr游戲線程中 CPU 受限,需要找到引起此問題的游戲代碼(如藍(lán)圖、光線投射、物理、AI、內(nèi)存分配)。
Console命令行: Stat Game
二、GPU性能分析
實(shí)時(shí)GPU分析器
實(shí)時(shí)GPU分析器將為主要渲染類別提供實(shí)時(shí)的逐幀統(tǒng)計(jì)數(shù)據(jù)。要使用實(shí)時(shí)GPU分析器,請(qǐng)按?反引號(hào)(Backtick)?鍵打開控制臺(tái),然后輸入?統(tǒng)計(jì)數(shù)據(jù)GPU(stat GPU)?,并按?Enter?。你還可以通過?視口選項(xiàng)(Viewport Options)?下拉菜單中的?統(tǒng)計(jì)數(shù)據(jù)(Stat)?子菜單,啟動(dòng)實(shí)時(shí)GPU分析器。
?Console命令行: Stat GPU
與現(xiàn)有統(tǒng)計(jì)數(shù)據(jù)一樣,你可以使用控制臺(tái)命令?stat startfile?和?stat stopfile?將統(tǒng)計(jì)數(shù)據(jù)記錄到?ue4stats?文件中,然后通過在Session Frontend(虛幻前端工具)中打開文件來查看統(tǒng)計(jì)數(shù)據(jù)。
怎么查看.ue4stats文件
Window——>DeveloperTools——>Session Frontend
Session Frontend——>Load,打開.ue4stats文件
三、Memory內(nèi)存使用
使用命令?stat memory?了解為游戲分配的內(nèi)存使用,更具體地說,是了解預(yù)計(jì)算可視性。
點(diǎn)擊查看大圖。
統(tǒng)計(jì)信息?預(yù)計(jì)算可視性內(nèi)存(Precomputed Visibility Memory)?顯示當(dāng)前用于預(yù)計(jì)算可視性的實(shí)際運(yùn)行時(shí)內(nèi)存使用。
四、Engine 顯示一般渲染狀態(tài)?
顯示一般渲染狀態(tài),例如幀時(shí)間,以及正在渲染的三角形數(shù)量的計(jì)數(shù)器。?
?Console命令行: Stat Engine
五、UnitGraph?
顯示帶有實(shí)時(shí)線圖繪圖的“statunit”數(shù)據(jù)。用于在其他情況下運(yùn)行流暢的游戲中檢測(cè)故障。
要查看包含stat單元數(shù)據(jù)的圖表,使用?stat Raw?查看未過濾數(shù)據(jù)。
?Console命令行: Stat UnitGraph文章來源:http://www.zghlxwxcb.cn/news/detail-447731.html
原文鏈接:https://docs.unrealengine.com/4.27/zh-CN/TestingAndOptimization/PerformanceAndProfiling/CPU/文章來源地址http://www.zghlxwxcb.cn/news/detail-447731.html
到了這里,關(guān)于Unreal Engine 虛幻引擎,性能分析,優(yōu)化(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!