3DGS 场景裁剪与剖切
三种工具的作用阶段不同:裁剪框与剖切平面只改变最终渲染结果,数据照常加载;加载体积框作用在加载之前,被排除的区域根本不会读进来。
| 工具 | 作用阶段 | 能否降低加载量与显存 | 边界精度 |
|---|---|---|---|
| 加载体积框 | 加载前筛选 | 能 | 按节点,边界保守 |
| 裁剪框 | 最终渲染 | 不能 | 按 splat,边界精确 |
| 剖切平面 | 最终渲染 | 不能 | 按 splat,边界精确 |
裁剪框
裁剪框可自由缩放、移动、旋转,帮助开发者对 LCC 场景进行空间裁剪。
- 同一 Actor 最多支持 65536 个裁剪框,免费版限制为 50 个,详见版本与授权
- 支持盒体与球体两种形状,均可缩放、移动、旋转
注:裁剪只作用于最终渲染,被裁掉的区域仍会正常参与节点遍历、加载与显存上传。因此裁剪不能用于降低加载量或显存占用,需要控制这些开销时使用性能优化指南中的手段。
使用步骤
- 放置 LCCActor/LCC2Actor 并加载场景
- 拖放
LCC Clipping Volume至场景中

将 LCC Clipping Volume 拖放到场景中
- 移动裁剪框到目标位置
- 在 Actor 细节面板中将 Clipping Volume 添加到
ClippingVolumes数组

裁剪框的 Inside 内部裁剪效果
使用演示

移动裁剪框并观察实时裁剪效果
属性
| 属性 | 说明 |
|---|---|
| bEnabled | 是否启用 |
| Mode | Inside(内裁剪)或 Outside(外裁剪) |
| VolumeType | Box(盒体)或 Sphere(球体) |
蓝图方法
LCCComponent → AddClippingVolume
LCCComponent → RemoveClippingVolume
注:
Refresh与SetUpdateComponent已废弃。裁剪数据每帧读取,改属性或移动裁剪框都会在下一帧自动生效,不需要再调用它们。

使用蓝图节点添加、移除与刷新裁剪框
剖切平面
剖切平面可自由缩放、移动、旋转,对场景进行平面剖切。
- 同一 Actor 最多支持 65536 个剖切平面,免费版限制为 50 个,详见版本与授权
- 支持向上或向下剖切,与裁剪框数量各自独立计数
注:剖切只作用于最终渲染,被剖掉的区域仍会正常参与节点遍历、加载与显存上传。因此剖切不能用于降低加载量或显存占用。
使用步骤
- 放置 LCCActor/LCC2Actor 并加载场景
- 拖放
LCC Section Plane至场景中

将 LCC Section Plane 拖放到场景中
- 移动到目标位置
- 在 Actor 细节面板中将 Section Plane 添加到
SectionPlanes数组
使用演示

移动剖切平面并观察实时剖切效果
属性
| 属性 | 说明 |
|---|---|
| bEnabled | 是否启用 |
| Mode | Upside(向上剖切)或 Downside(向下剖切) |
蓝图方法
LCCComponent → AddSectionPlane
LCCComponent → RemoveSectionPlane
注:
Refresh与SetUpdateComponent已废弃,原因同上。

使用蓝图节点添加、移除与刷新剖切平面
加载体积框
加载体积框在数据进入内存之前就完成筛选:节点遍历只保留被它选中的节点,落选区域的数据完全不读取。因此它是本篇三种工具中唯一能真正降低加载量与显存占用的一个,适合从大场景里只取一小块来用。
- 支持盒体与球体两种形状,可自由缩放、移动、旋转
- 一个加载体积框可同时作用于场景中的多个 LCC Actor
- 专业版功能,未授权时不生效,数据按完整范围加载,详见版本与授权
注:筛选按节点为单位,边界比裁剪框粗。需要精确边界时,在同一位置叠加一个变换相同的裁剪框,由加载体积框负责减少加载量、裁剪框负责修整边缘。
使用步骤
- 放置 LCCActor/LCC2Actor
- 拖放
LCC Load Volume至场景中 - 调整位置、旋转与缩放,框住需要保留的范围
- 在 Actor 细节面板中将 Load Volume 添加到
LoadVolumes数组 - 加载场景
注:筛选在加载时生效。已经加载完成后再修改加载体积框,需要重新加载才能看到变化。
属性
| 属性 | 说明 |
|---|---|
| bEnabled | 是否启用 |
| Mode | Inside(只加载框内)或 Outside(排除框内) |
| VolumeType | Box(盒体)或 Sphere(球体) |
两种模式的判定边界不同:
| 模式 | 判定方式 | 边界表现 |
|---|---|---|
| Inside | 节点完全落在框内才加载 | 边缘节点会被舍弃,实际范围略小于框 |
| Outside | 节点与框有任何重叠即排除 | 边缘节点会被舍弃,实际排除范围略大于框 |
两种模式都偏保守,这样在相机移动、LOD 在父子节点间切换时不会出现区域忽隐忽现。
蓝图方法
LCCComponent → AddLoadVolume
LCCComponent → RemoveLoadVolume