Tiled 光柵化:LCC2 的另一條光柵化路徑
LCC2 管線提供兩種光柵化方式,由 Actor 的 Rasterizer 屬性選擇:默認的 Pipeline 走引擎自身的渲染管線,Tiled 走插件自定義的分塊計算路徑。
Tiled 目前是實驗性功能,屬於專業版,需要註冊 App Key 後才會實際生效,詳見版本與授權。
它在多數高密度場景下能明顯提升幀率,但收益取決於畫面內容與瓶頸位置,部分場景可能提升有限,也可能沒有變化。開啟後需要按判斷是否有收益實測確認,不要默認它一定更快。
注:這裏的「分塊」指屏幕像素的分塊,與渲染裏按相機可見性加載節點的「分塊渲染」是兩件不同的事。前者決定數據進了顯存怎麼畫,後者決定數據怎麼進顯存。兩者互不影響,可以同時生效。
兩種光柵化方式的區別
| Pipeline(默認) | Tiled | |
|---|---|---|
| 光柵化 | 交給引擎渲染管線,每個 splat 展開為四邊形後由引擎填充像素 | 插件自定義計算分派,先把可見 splat 按屏幕塊歸併,再逐塊着色合成 |
| 排序 | 全部可見 splat 做一次全局排序 | 按屏幕塊分段排序,每段只排落在該塊內的 splat |
| 成熟度 | 長期默認路徑 | 實驗性 |
| 授權 | 免費版可用 | 專業版 |
Tiled 的收益來自兩處:排序範圍從全局收窄到單個屏幕塊,以及像素只在真正覆蓋它的塊內被處理,減少了重疊區域的無效填充。
因此收益與畫面內容直接相關:splat 密度高、屏幕重疊嚴重時提升明顯;畫面稀疏、或幀率瓶頸本就不在排序與像素填充上時,改這一項不會有可觀察的變化。
畫面結果兩者一致,切換 Rasterizer 不需要改動其他參數,也不影響數據加載、LOD、裁剪框、光照與顏色相關的設置。
開啟方式
在 Actor 的 Details 面板 XGrids 分類下,把 Rasterizer 設為 Tiled。該屬性緊跟 Render Mode,僅在 Render Mode 為 3DGS 時顯示。
藍圖或 C++ 中調用 Setter:
LCC2Component->SetRasterizer(ELCC2Rasterizer::Tiled);
讀取時有兩個方法,用途不同:
| 方法 | 返回值 |
|---|---|
GetRasterizer() | 面板上存儲的選擇 |
GetEffectiveRasterizer() | 實際生效的光柵化方式,已計入授權判定 |
需要確認渲染路徑真的走了 Tiled 時用 GetEffectiveRasterizer()。
判斷是否有收益
因為收益不保證,切換後需要實測對比,方法與性能優化指南一致:
- 固定測試條件:同一視角或相機路徑、同一分辨率與 Screen Percentage,其餘參數保持不變。
- 先跑一遍預熱,避開首次 Shader 編譯與首次硬盤讀取。
- 用
stat unit記錄Pipeline下的 GPU 幀時間作為基準。 - 只改
Rasterizer一項,複測同一視角。 - 挑幾個代表性視角重複,特別是 splat 最密、重疊最嚴重的畫面。
GPU 幀時間沒有下降時,說明當前瓶頸不在這條路徑覆蓋的範圍內,保持 Pipeline 即可,繼續按優化指南定位真正的瓶頸。
適用範圍
| 項目 | 說明 |
|---|---|
| 管線 | 僅 LCC2 管線。ALCCActor(.lcc)沒有該屬性 |
| 格式 | .lcc2 / .sog / .spz / .ply 均可 |
| 渲染模式 | 僅 3DGS 模式。點雲模式忽略該屬性,始終走 Pipeline |
| 引擎與 RHI | 支持範圍與插件本身一致,D3D12 與 Vulkan 均可 |
| 多視角 | VR 立體渲染、nDisplay、分屏、SceneCapture 均支持 |
未授權時的行為
未註冊 App Key 時把 Rasterizer 設為 Tiled 不會報錯,也不會導致加載失敗,渲染路徑自動回退為 Pipeline。面板上存儲的選擇不會被改寫,註冊授權後無需重新設置即可生效。
判斷當前是否真的走了 Tiled,讀 GetEffectiveRasterizer() 的返回值:回退時它返回 Pipeline,而 GetRasterizer() 仍返回 Tiled。
注:打包發佈前確認授權有效,否則打包產物會按免費版行為走 Pipeline。
什麼情況下保持 Pipeline
- 使用點雲渲染模式。該模式下屬性不起作用,不必設置。
- 加載
.lcc數據。LCC 管線沒有這條路徑。 - 免費版項目。設為
Tiled也會回退,保持默認更直觀。 - 實測沒有幀時間改善。
- 項目已進入交付驗證階段,不宜引入實驗性路徑。
Tiled 降低的是渲染階段的成本,不減少加載與遍歷的工作量。瓶頸在數據加載側時,應優先按性能優化指南處理加載與 LOD。