3DGS 性能參數逐項說明
本篇逐項說明每個參數的作用、取值以及調整後的實際效果,用於查閱單個參數的含義。按步驟定位瓶頸並調優的流程參考性能優化指南。
每個參數標題下的表格給出所在分組、取值範圍、默認值、適用管線與生效方式。適用管線為「LCC」或「LCC2」時表示該參數只在對應管線上生效,標為「通用」的兩條管線都可用。管線概念參考介紹。
Actor 面板參數
位於 Actor 的 Details 面板 Performance 分類,按適用範圍分組:
- Base 組:兩條管線通用,所有 LCC Actor 都有這一組
- 管線專有組:只在對應管線的 Actor 上顯示,組名即管線名。當前版本只有 LCC 管線有專有組(組名 LCC),LCC2 管線的 Actor 只顯示 Base 組

Base 組:兩條管線通用的性能參數

LCC 組:僅 LCC 管線的 Actor 顯示這一組
注:Performance 分類下每個參數左側都有一個勾選框。不勾選時該參數使用插件內置默認值,填寫的數值不會生效。調整沒有效果時,先確認勾選框已勾上。
Max Distance
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 任意正整數 | 300 | 通用 | 立即 |
最大渲染距離,單位米。超出該距離的節點不參與渲染,也不會被加載。這是收益最直接的參數,調小後遍歷、加載、上傳、渲染的成本同時下降。
調小可顯著提升幀率並降低內存與顯存佔用,代價是遠處內容消失,邊界處出現明顯截斷。需要與 Range For Level 一起看:若最大距離小於某個 Level 對應的距離,該 Level 及更遠的層級不會被使用。
Max Splat Num
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 0 ~ 10000(單位:萬) | 3000 | 通用 | 立即 |
每幀最大渲染點數。遍歷結束後按距離由遠及近剔除,直到總點數落到該上限內。它是一道硬性閘門,無論視野裏有多少內容,單幀渲染量都不會超過這個值。
調小可鎖定幀率上限、避免視野開闊時掉幀,代價是遠處節點被丟棄,轉動視角時可能看到遠景缺失。填入過大的值會被自動限制到單幀實際可渲染的上限。
Level Factor
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 0.01 ~ 20 | 1 | 通用 | 立即 |
Level 選擇的縮放係數,控制「多遠開始降精度」。兩條管線的實現機制不同:LCC 管線用它縮放全局的 Range For Level 距離表,LCC2 管線用它縮放屏幕空間誤差閾值,效果方向一致。
大於 1 時更早切換到低精度層級,細節減少、性能提升;小於 1 時更晚降精度,畫面更清晰但成本上升。建議保持 1,確有性能壓力時小步上調。
Start Level
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 0 ~ 20 | 0 | 通用 | 立即 |
起始 Level,限定可使用的最高精度。默認 0 表示允許用到精度最高的層級。
設為 1 或更大時,即使貼近觀察也不會加載最精細的層級,近處畫面變模糊,但加載量和顯存佔用明顯下降。低端設備或移動端可考慮上調。
End Level
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 0 ~ 20 | 20 | 通用 | 立即 |
結束 Level,限定可使用的最粗層級。默認 20 表示不做限制,實際能用到數據本身的最粗一級。
調小後即使數據裏有更粗的層級也不會被使用,遠處只能停留在 EndLevel 這一級。畫面不會出現空缺,但渲染的點數比實際需要的更多,性能反而下降。因此它不是提速手段,通常保持默認 20。
Max Load Collision Distance
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 任意正整數 | 300 | 通用 | 立即 |
碰撞數據的最大加載距離,單位米。僅在啟用碰撞後生效。
兩條管線的碰撞數據都是分塊加載:只加載相機周圍該距離內的碰撞塊,並隨相機移動動態換入換出。因此這個值決定了任一時刻常駐的碰撞數據量。
調小可直接降低 Collision Data Usage 內存佔用與 Update Collision 耗時,代價是遠處沒有碰撞。
配合尋路系統使用時通常需要調大,讓目標區域的碰撞一次性全部加載完成。否則運行時碰撞隨相機移動不斷更新,會持續觸發導航數據重新構建,造成明顯卡頓。詳見尋路系統支持。
Use Full Load
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 開啟 / 關閉 | 開啟 | 通用 | 重新加載數據 |
是否允許全量渲染。開啟時,若 Level 0 點數不超過 Full Load Splat Number,整份數據一次性加載並常駐顯存,跳過每幀的遍歷與上傳;否則回退為按需加載。
開啟後小場景的幀率更穩、無節點邊界與細節跳變,代價是整份數據常駐顯存。關閉則始終按需加載。
兩條管線關閉後的顯存表現不同:
- LCC 管線按節點各自分配顯存,佔用隨可見範圍變化
- LCC2 管線的顯存 buffer 按預算預先分配,佔用不隨可見範圍變化,改變的只是 buffer 內實際填充的數據量
詳見渲染。
Full Load Splat Number
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Base | 任意正整數(單位:萬) | 1500 | 通用 | 重新加載數據 |
允許全量渲染的 Level 0 點數上限。
調大可讓更大的場景走全量渲染,需確認顯存足夠;調小則更多場景回退為按需加載。
Sort Factor
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| LCC | 0.2 ~ 5 | 1 | 僅 LCC | 立即 |
排序頻率的縮放係數,作用於全局的 Sort Frequency For Level 表,控制各 Level 的節點多久重新排序一次。
調大則排序次數減少、性能提升,但視角變化時半透疊加順序更新滯後,可能出現短暫的穿插錯誤;調小則排序更及時、成本更高。建議保持 1。
Add Extra Preload Nodes
| 分組 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| LCC | 開啟 / 關閉 | 開啟 | 僅 LCC | 立即 |
是否向加載隊列追加額外的預加載節點。開啟時會預加載視錐邊緣之外的一部分節點。
開啟可緩解快速轉動視角時屏幕邊緣的空洞,代價是需要渲染的節點數增加;關閉則節點數更少,但快速轉動時更容易看到邊緣空缺。
ProjectSettings 全局配置
位於 ProjectSettings > Plugins > LCC4Unreal。這些設置對場景中所有 LCC Actor 生效,無法按 Actor 單獨配置。

在 ProjectSettings 中配置 LCC4Unreal 全局參數
Language
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| General | Follow Editor / Always English | Follow Editor | 通用 | 立即 |
插件界面語言。Follow Editor 跟隨編輯器語言設置,Always English 強制英文。詳見本地化。
AutoExposure Enable
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| LCC | 開啟 / 關閉 | 關閉 | 通用 | 需重啟編輯器 |
是否啟用自動曝光。默認關閉,因為自動曝光會讓 3DGS 的亮度隨視野內容波動。開啟後畫面亮度會隨相機移動自動調整。
SceneCaptureComponent Support
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| LCC | 開啟 / 關閉 | 開啟 | 僅 LCC | 立即 |
是否支持 SceneCapture 渲染 LCC 內容。
開啟後 SceneCapture 中能看到 3DGS,代價是每個 Capture 算作一個獨立視角,會增加遍歷開銷。項目不使用 SceneCapture 時關閉可省下這部分成本。
SingleLayerWater Support
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| LCC | 開啟 / 關閉 | 關閉 | 僅 LCC2 | 需重啟編輯器 |
3DGS 被單層水材質遮擋時啟用。
開啟後水面能正確顯示 3DGS,代價是水面像素失去虛擬陰影貼圖的陰影質量。該項會向項目的 DefaultEngine.ini 寫入 r.Water.SingleLayer.DepthPrepass。詳見單層水支持。
Splat Number For Discard Per Node
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| LCC | 任意正整數 | 5 | 僅 LCC | 重新加載數據 |
節點內點數低於此值時丟棄該節點的數據,在解析 index.bin 構建節點時判定。部分數據存在大量只含一兩個點的碎節點,這些節點的調度開銷遠高於其渲染價值。
調大可減少節點總數、降低遍歷與加載開銷,代價是丟棄的點變多,稀疏區域可能出現缺失。
抗鋸齒方法
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| AntiAliasing | 引擎支持的抗鋸齒方法 | 見下表 | 通用 | 立即 |
抗鋸齒用於消除物體邊緣的階梯狀鋸齒。常規網格有明確的幾何邊緣,鋸齒明顯,需要抗鋸齒處理;3DGS 由大量半透明 splat 疊加而成,邊緣本身就是漸變的,鋸齒並不明顯。
四個設置分別對應兩條管線的 3DGS 與點雲模式,在啟用 Actor 上的 bAffectAntiAliasingMethod 後由插件自動應用。
| 設置 | 默認值 | 適用 |
|---|---|---|
| LCC1 Splat Anti-aliasing Method | FXAA | LCC 管線 3DGS 模式(無深度) |
| LCC2 Splat Anti-aliasing Method | TSR | LCC2 管線 3DGS 模式(有深度) |
| LCC1 Point Cloud Anti-aliasing Method | MSAA | LCC 管線點雲模式 |
| LCC2 Point Cloud Anti-aliasing Method | TSR | LCC2 管線點雲模式 |
LCC 管線默認不用 TSR / TAA,是因為缺少深度信息時這兩種方法在相機移動時會產生重影。
抗鋸齒的 GPU 成本不低,TSR 尤其明顯。場景中只有 3DGS、沒有常規網格時,可以把對應設置改為 None 關閉抗鋸齒,通常畫質損失很小而幀率收益可觀。場景中混有常規模型、UI 或線框時,關閉會讓這些內容的邊緣出現明顯鋸齒。
各方法的實際成本差異需用 ProfileGPU 在目標場景上實測,不同分辨率與硬件下差距較大。
注:兩條管線的 Actor 同時存在於場景時,最終生效的方法取決於執行順序,需手動配置為一致,詳見畫面調節。
Enable Post Process
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Rendering | 開啟 / 關閉 | 開啟 | 通用 | 立即 |
LCC 像素是否參與引擎後處理管線。
開啟時 3DGS 與場景中常規物體一同接受色調映射、Bloom、曝光等後處理,觀感統一;關閉時 3DGS 保持原始色彩,不受色調映射及其之後的環節影響。關閉需引擎開啟 Alpha 通道輸出。詳見畫面調節。
Apply Tonemap Inverse
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Rendering | 開啟 / 關閉 | 關閉 | 通用 | 立即 |
是否在色彩空間轉換時應用 FilmToneMapInverse。
開啟後預先抵消引擎的色調映射,使最終畫面還原數據原本的對比度與色彩;關閉則 3DGS 與常規物體走同一套色調映射。
Quad Extent Threshold
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Rendering | 0.001 ~ 0.1 | 0.006 | 僅 LCC2 | 立即 |
控制 splat 四邊形自高斯中心向外延展的距離。每個 splat 都要柵格化成一個四邊形,四邊形越大,被覆蓋的像素越多。
調大使四邊形更緊湊、overdraw 減少、像素填充成本下降,但可能裁掉半透明 splat 的邊緣,表現為輪廓變硬或邊緣缺失;調小則邊緣更完整、填充成本上升。
Small Splat Threshold
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Rendering | 0.0 ~ 4.0 | 0(關閉) | 僅 LCC2 | 立即 |
屏幕尺寸小於此像素值的 splat 折疊為單個像素並跳過 SH 計算。
調大可跳過大量遠處細小 splat 的着色計算,GPU 成本下降明顯;代價是遠景失去視角相關的顏色變化,可能出現顆粒感或輕微閃爍。
Frustum Cull Margin
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Rendering | 1.0 ~ 2.0 | 1.2 | 僅 LCC2 | 立即 |
逐 splat 視錐裁剪的邊距係數。
大於 1.0 時視錐向外擴展,避免屏幕邊緣的 splat 在相機轉動時突然彈出;值越大保留的邊緣 splat 越多、成本略高。設為 1.0 則嚴格按視錐裁剪,邊緣可能出現彈出感。
Max CPU Usage Percetage For Free
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Usage | 50 ~ 100 | 90 | 通用 | 立即 |
內存佔用達到該比例時觸發節點釋放。
調低會更早開始釋放,內存佔用更保守,但換入換出更頻繁;調高則佔用更多內存,接近系統上限時有崩潰風險。
CPU Release Percetage
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Usage | 10 ~ 100 | 30 | 通用 | 立即 |
每次觸發釋放時清理的數據比例。
調大單次釋放更多、觸發次數更少,但被釋放的數據需要重新加載,容易造成一次性卡頓。不建議設為 100。
Max GPU Usage Percetage For Free
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Usage | 50 ~ 100 | 80 | 通用 | 立即 |
顯存佔用達到該比例時觸發釋放。釋放時按最後渲染時間、訪問頻率、數據大小與 Level 綜合排序,優先釋放最久未使用的節點,高 Level 節點受保護。
調低更安全:超出顯卡可用顯存後,驅動會把數據交換到系統內存,幀率下降比換入換出嚴重得多。
GPU Release Percetage
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Usage | 10 ~ 100 | 30 | 通用 | 立即 |
每次觸發時釋放的顯存數據比例。判斷依據同 CPU Release Percetage。
LCC2 GPU Memory Budget
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Usage | 2048 ~ 8192 | 2048 | 僅 LCC2 | 需重啟編輯器 |
單個模型 splat 數據的顯存預算。排序 buffer 不計入該預算,每個視角的每個常駐 splat 額外佔 16 字節。
調大可讓更多數據同時常駐顯存,減少換入換出導致的空洞與模糊;但預算只是插件申請的上限,超出顯卡實際可用顯存後反而更慢。單文件格式的可加載量在 4096 MB 時已達上限,繼續調高無效。詳見渲染。
Range For Level
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Level | 固定 11 項浮點數組 | 15, 50, 80, 110, 140, 170, 190, 220, 250, 280, 350 | 僅 LCC | 立即 |
各 Level 對應的距離範圍,單位米。第 N 項表示 Level N 生效的距離界限。
這是 LOD 的基準表,直接改動影響全部 LCC Actor。通常不直接改它,而是用 Actor 上的 Level Factor 做整體縮放。需要注意最大渲染距離與該表的關係:若最大距離小於某項數值,對應 Level 不會被使用。
Sort Frequency For Level
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Level | 固定 11 項浮點數組 | 5, 15, 25, 40, 50, 70, 90, 110, 130, 150, 170 | 僅 LCC | 立即 |
各 Level 的排序頻率。Level 越高、距離越遠,重新排序的間隔越長。
整體調大可減少排序開銷,代價是遠處節點的半透順序更新更滯後。通常用 Actor 上的 Sort Factor 做整體縮放而不直接改這張表。
注:LCC2 管線按屏幕空間誤差選擇 Level,不使用 Range For Level;其排序是統一 Buffer 內的逐 splat 全局排序,不使用 Sort Frequency For Level。
Default Traversal Type
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Traversal | Sector / Circle | Sector | 通用 | 需重啟編輯器 |
節點遍歷方式。Sector 按視錐篩選可見節點,Circle 按距離做圓形篩選。
Sector 只處理視野內的節點,成本更低,是推薦值;Circle 會把相機周圍一圈的節點都算進來,成本更高,但相機快速轉動時不會因為節點剛進入視錐而來不及加載。多視口或高速轉動的場景可以試 Circle。
線程池設置
| 分類 | 取值範圍 | 默認值 | 適用管線 | 生效方式 |
|---|---|---|---|---|
| Loader / Traversal / Sort / Exporter | 見下表 | 見下表 | 僅 LCC | 需重啟編輯器 |
這些線程池由 LCC 管線的加載、遍歷、排序模塊使用。LCC2 管線的數據加載走引擎自身的線程池,不受這些設置影響;例外是碰撞數據加載,兩條管線共用 Loader 線程配置。
線程池在模塊初始化時按配置創建,修改後需重啟編輯器才生效。
四類線程各有「最大線程數」與「預創建線程數」兩個設置:
| 設置 | 取值範圍 | 默認值 | 用途 |
|---|---|---|---|
| Max Loader Thread Number | 5 ~ 100 | 20 | 數據加載 |
| Pre-Create Loader Thread Number | 0 ~ 100 | 5 | 預創建加載線程 |
| Max Traversal Thread Number | 5 ~ 100 | 20 | 節點遍歷 |
| Pre-Create Traversal Thread Number | 0 ~ 100 | 5 | 預創建遍歷線程 |
| Max Sort Thread Number | 5 ~ 100 | 20 | 排序 |
| Pre-Create Sort Thread Number | 0 ~ 100 | 5 | 預創建排序線程 |
| Max Exporter Thread Number | 5 ~ 100 | 20 | 數據導出,與運行時渲染無關 |
| Pre-Create Exporter Thread Number | 0 ~ 100 | 5 | 預創建導出線程 |
線程數不是越多越好。瓶頸在磁盤 IO 時增加加載線程沒有幫助,反而加劇爭搶。只有在 stat xgrids 中看到對應線程的隊列持續積壓、且 CPU 有餘量時才考慮上調。
預創建線程可避免運行時臨時創建線程的開銷,調大能減少場景剛開始加載時的延遲。
統計數據
通過控制台命令 stat xgrids 開啟統計面板,或在 Actor 面板 Developer 分類點擊 Stats。

使用 stat xgrids 查看實時性能統計
面板分三段:
| 分段 | 列 | 含義 |
|---|---|---|
| Cycle counters (flat) | CallCount、InclusiveAvg、InclusiveMax、ExclusiveAvg、ExclusiveMax | 耗時項。Inclusive 含子調用,Exclusive 只算自身 |
| Memory Counters | UsedMax、Mem%、MemPool、Pool Capacity | 內存與顯存佔用,Physical 表示物理內存池 |
| Counters | Average、Max、Min | 數量項 |
Cycle counters(耗時項)
| 指標 | 含義與用法 |
|---|---|
| Update Collision | 碰撞數據的更新耗時。啟用碰撞後才有數值;數值高說明碰撞正在頻繁重建,應縮小碰撞加載距離 |
| Update Camera Info | 每幀收集相機信息的耗時。視圖數量越多這一項越高,可與 Camera Num 對照 |
| Component Update | 組件每幀更新的耗時,屬於 Game 線程成本。多個 LCC Actor 同場景時會累加 |
| Get Physics Trimesh Data | 向物理系統提供碰撞三角網的耗時。物理烘焙期間才出現,是碰撞卡頓的直接來源 |
| Get From Cache | 從緩存命中取數據的耗時。相對磁盤讀取屬於快路徑,該項佔比高反而是好現象 |
Memory Counters(內存與顯存)
| 指標 | 含義與用法 |
|---|---|
| CPU Usage | LCC 佔用的系統內存。與 CPU Occupy Percentage 一起判斷是否接近釋放閾值 |
| Collision Data Usage | 碰撞數據佔用的內存。碰撞距離越大這一項越高,是關閉碰撞後最直接的收益項 |
| Position Data(For Raycast) Usage | 供射線檢測使用的位置數據內存。不做射線檢測時為 0 |
| GPU Usage | LCC 佔用的顯存。口徑與 GPU Occupy Percentage 不同 |
Counters(數量項)
| 指標 | 含義與用法 |
|---|---|
| Total Splats | 數據集點數總數,固定值 |
| Level0 Splats | Level 0 的點數,決定是否滿足全量渲染條件 |
| Current Render Main Splats | 當前幀渲染的主體點數。與 Max Splat Num 對照可判斷是否觸發了點數上限 |
| Current Render Nodes | 當前幀渲染的節點數 |
| Total Nodes | 數據集節點總數,固定值 |
| Released GPU Node Num | 已從顯存釋放的節點數。持續增長說明正在頻繁換入換出,通常意味着顯存預算不足 |
| Released CPU Node Num | 已從內存釋放的節點數。判斷依據同上 |
| GPU Occupy Percentage | 顯存佔用百分比。接近 Max GPU Usage 閾值時即將觸發釋放 |
| CPU Occupy Percentage | 內存佔用百分比 |
| Loader Thread Num | 加載線程數。隊列積壓且 CPU 有餘量時才考慮提高上限 |
| Pre-Loader Thread Num | 預加載線程數 |
| Collision Loader Thread Num | 碰撞加載線程數 |
| Sort Thread Num | 排序線程數 |
| Traversal Thread Num | 遍歷線程數 |
| Exporter Thread Num | 導出線程數,與運行時渲染無關 |
| Camera Num | 參與更新的相機數 |
| Camera Num(Render) | 參與渲染的視圖數,是判斷 SceneCapture、分屏、nDisplay 開銷的直接依據 |
| Node Vector Pool Num | 節點向量池中的對象數,屬於內部對象復用統計 |
| Valid Node Num | 有效節點數,屬於內部狀態統計 |
調試工具
| 工具 | 說明 |
|---|---|
| Debug Node Bound | 可視化八叉樹節點邊界,顏色表示 Level(紅為最高精度,白為最低)。用於確認 LOD 參數是否按預期生效 |
| Stats | 顯示實時渲染統計,等同於 stat xgrids |
| FreezeRendering | 凍結當前渲染狀態。凍結後移動相機不再觸發遍歷,可用於檢查當前幀實際提交了哪些節點 |