XGRIDS文档
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 灵视 P1

    • 产品概述
    • 设备基本操作
    • 使用 LCC Scan App
    • 维护及保养
    • 常见问题
  • 灵光 K 系列

    • 灵光 K1

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
    • 灵光 K2

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
  • 灵光 L 系列

    • 灵光 L2 Pro

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 实时测量功能
      • 附录
      • 常见问题
  • Lixel Studio

    • 版权
    • 安装与激活
    • 界面说明
    • 文件
    • 工程处理
    • 工具
    • 平面绘制
    • 行业应用
    • 设置
    • 设备感知
  • Lixel CyberColor

    • LCC Studio

      • 入门
      • 版本与更新
      • 下载与安装
      • 界面概览与导航
      • 重建前工作
      • 模型重建
      • 单模型重建
      • 地图融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 设置与账号
      • 转换工具
      • 视频重建
      • 常见问题 / FAQ
    • LCC Scene Editor

      • 版本与更新
      • 账号与登录
      • 产品概览与主页
      • 编辑器界面介绍
      • 三种场景漫游快捷操作
      • 文件
      • 设置
      • 编辑操作
      • 窗口
      • 视图工具栏
      • 资产与属性
      • 左侧工具栏
      • 视点
      • 跳转点
      • 天空盒
      • 标注
      • 测量
      • 场景漫游
      • 场景报告
      • 智能户型图(3D Layout)
      • 小地图
      • 预览模式(Viewer)
      • 帮助
      • 常见问题 / FAQ
      • 出生点
    • LCC Model Editor

      • 版本与更新
      • 新手指引
      • 概览与界面
      • 文件操作
      • 选择器
      • 编辑操作
      • 测量
      • 调色
      • 资产管理
      • 设置与帮助
      • 常见问题 / FAQ
    • 采集指南

      • 概述
      • 采集设备总览
      • 通用采集原则
      • 室内场景采集
      • 室外场景采集
      • 大场景采集(地图融合)
      • 空地融合采集
      • 物体采集
      • 人物采集
      • 视频重建采集
      • 高清补拍
      • 控制点(灵视 P1)
      • 常见问题与排查
    • 历史版本
  • Plugin & SDK

    • Unreal

      • 介绍
      • 快速入门 - Windows
      • 快速入门 - Linux
      • 快速入门 - Quest3
      • 版本与授权
      • 渲染
      • 画面调节
      • 法线与光照
      • 场景编辑
      • 性能参数说明
      • 性能优化指南
      • 第三方与引擎插件集成
      • 代理网格
      • 加载动画
      • 碰撞
      • 寻路系统支持
      • 单层水支持
      • 本地化
      • 常见问题
      • 故障排查
      • 日志与诊断
      • 联系我们
      • API 参考

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新日志

        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • X-Brain 系列

      • 产品概述
      • 快速开始
      • 核心概念
      • 集成指南
      • API 参考
      • 数据类型
      • ROS2 桥接
      • 示例程序
      • 部署与网络
      • 排障与 FAQ
      • 版本与发布

ALCCClippingVolume:3DGS 裁剪体

裁剪体 Actor,用盒形或球形体积裁掉 LCC 场景的一部分。

模块LCC4UnrealRuntime
头文件Tools/LCCClippingVolume.h
父类AVolume
面板显示名LCC Clipping Volume
#include "Tools/LCCClippingVolume.h"

使用步骤、演示效果与属性面板说明见场景编辑 - 裁剪框。本页只列接口。

Properties

属性类型说明
bEnabledbool是否参与裁剪
ModeEClipTypeInside 裁掉体积内部,Outside 裁掉体积外部
VolumeTypeEClipVolumeTypeBox 盒形,Sphere 球形

取值含义见 EClipType 与 EClipVolumeType。

三个属性都没有 Setter,运行时赋值后需要调用 Refresh 才生效。运行时改变换也一样。

Methods

SetUpdateComponent

UFUNCTION(BlueprintCallable, Category = "XGrids")
void SetUpdateComponent(ULCCComponentBase* Component);

绑定要更新的 LCC Component。

参数类型说明
ComponentULCCComponentBase*目标 Component

Refresh() 需要这个绑定才能生效,它内部就是把绑定的 Component 标记为需要重建渲染状态。没绑定时 Refresh() 不会触发渲染更新。

用 AddClippingVolume 添加时通常已建立关联;运行时动态创建的裁剪体如果改动不生效,先检查是否调过这个方法。

Refresh

UFUNCTION(BlueprintCallable, Category = "XGrids")
void Refresh();

手动触发一次裁剪结果更新,内部会把绑定的 LCC Component 标记为需要重建渲染状态。

运行时改动裁剪体后必须调用它,修改才会生效,包括:

  • 改属性:bEnabled、Mode、VolumeType。这几个属性没有 Setter,直接赋值不会通知渲染侧。
  • 改变换:SetActorLocation、SetActorRotation、SetActorScale3D。

自动更新只发生在编辑器里:细节面板改属性走 PostEditChangeProperty,拖动 gizmo 走 EditorApplyTranslation 等函数,这些路径都在 WITH_EDITOR 下,运行时不存在。

前提是已经调过 SetUpdateComponent 或通过 AddClippingVolume 建立了关联。没有绑定 Component 时不会触发任何渲染更新。

批量修改多个裁剪体时,逐个改完属性后各自调一次 Refresh()。

运行时创建

#include "Tools/LCCClippingVolume.h"
#include "LCCComponentBase.h"

ALCCClippingVolume* AMyTool::CreateBoxClip(
    ULCCComponentBase* Component, const FVector& Location, const FVector& Extent)
{
    ALCCClippingVolume* Volume = GetWorld()->SpawnActor<ALCCClippingVolume>(
        ALCCClippingVolume::StaticClass(), Location, FRotator::ZeroRotator);
    if (!Volume)
    {
        return nullptr;
    }

    Volume->VolumeType = EClipVolumeType::Box;
    Volume->Mode = EClipType::Inside;
    Volume->bEnabled = true;

    // AVolume 的尺寸通过缩放控制
    Volume->SetActorScale3D(Extent / 100.0f);

    Volume->SetUpdateComponent(Component);
    Component->AddClippingVolume(Volume);

    return Volume;
}

临时开关裁剪效果不要增删数组,直接改 bEnabled 更轻量。注意改完要调 Refresh():

for (ALCCClippingVolume* Volume : MyVolumes)
{
    if (Volume)
    {
        Volume->bEnabled = bEnable;
        Volume->Refresh();
    }
}

运行时移动裁剪体做动画,同样每次都要刷新:

// 让裁剪体扫过场景
FVector Loc = ClipVolume->GetActorLocation();
Loc.X += 200.0f * DeltaTime;
ClipVolume->SetActorLocation(Loc);
ClipVolume->Refresh();          // 运行时变换不会自动更新

蓝图节点见场景编辑 - 蓝图方法。

Notes

  • 裁剪只影响渲染,不影响碰撞。裁掉的区域仍可被射线打中、仍会挡住角色。
  • 多个裁剪体同时作用时各自独立判定,效果叠加。既有 Inside 又有 Outside 时容易出现意外结果。
  • 同时生效的裁剪体数量有上限,未授权时为 50 个,超出的不参与渲染并输出警告。裁剪体与剖切面共用这个配额。授权说明见版本与授权。
  • 销毁裁剪体只会触发一次渲染更新,不会从 Component 的 ClippingVolumes 数组里移除元素,数组中会残留失效指针(渲染时会自动跳过)。需要保持数组干净的话,销毁前先调 RemoveClippingVolume。

See Also

  • 场景编辑:完整使用说明
  • ALCCSectionPlane:用平面剖切
  • ULCCComponentBase:AddClippingVolume 与 RemoveClippingVolume
上一页
ALCC2ProxyMesh
下一页
ALCCSectionPlane