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。