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
      • 版本与发布

ALCCSectionPlane:3DGS 剖切面

剖切面 Actor,用一个平面切开 LCC 场景,保留平面的一侧。

模块LCC4UnrealRuntime
头文件Tools/LCCSectionPlane.h
父类AVolume
面板显示名LCC Section Plane
#include "Tools/LCCSectionPlane.h"

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

编辑器里会显示一个箭头指示组件,标明平面朝向,箭头指向的一侧就是 Upside。

Properties

属性类型说明
bEnabledbool是否参与剖切
ModeESectionTypeUpside 切掉平面上方,Downside 切掉平面下方

上下是相对平面自身朝向而言,不是世界坐标。旋转剖切面可以得到任意方向的剖切。取值含义见 ESectionType。

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

Methods

SetUpdateComponent

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

绑定要更新的 LCC Component。

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

Refresh

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

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

运行时改动剖切面后必须调用它,修改才会生效,包括:

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

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

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

批量修改多个剖切面时,逐个改完属性后各自调一次 Refresh()。

运行时创建

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

ALCCSectionPlane* AMyTool::CreateSectionPlane(
    ULCCComponentBase* Component, const FVector& Location, const FRotator& Rotation)
{
    ALCCSectionPlane* Plane = GetWorld()->SpawnActor<ALCCSectionPlane>(
        ALCCSectionPlane::StaticClass(), Location, Rotation);
    if (!Plane)
    {
        return nullptr;
    }

    Plane->Mode = ESectionType::Upside;   // 切掉平面上方
    Plane->bEnabled = true;

    Plane->SetUpdateComponent(Component);
    Component->AddSectionPlane(Plane);

    return Plane;
}

几种常见配置:

效果位置与旋转Mode
俯视看建筑内部指定高度,FRotator::ZeroRotatorUpside
竖直剖切看立面FRotator(0, 0, 90) 转成竖直平面Upside
只保留中间一层上下各放一个平面下界 Downside,上界 Upside

移动剖切面就能做出逐层揭开的动画。运行时每帧移动后都要调 Refresh():

FVector Loc = SectionPlane->GetActorLocation();
Loc.Z = FMath::FInterpTo(Loc.Z, TargetHeight, DeltaTime, 1.0f);
SectionPlane->SetActorLocation(Loc);
SectionPlane->Refresh();        // 运行时变换不会自动更新

改属性同样要刷新:

SectionPlane->bEnabled = false;
SectionPlane->Refresh();

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

Notes

  • 剖切只影响渲染,不影响碰撞。被切掉的部分仍可被射线打中、仍会挡住角色。
  • Upside 与 Downside 相对平面自身朝向。旋转过之后要重新确认哪边是「上」,编辑器里看箭头最直观。
  • 构造时 Z 轴缩放被设为 0.01(薄片),编辑器里改缩放也会被压回该值。运行时改缩放不受这层约束,但一般不需要改。
  • 同时生效的剖切面数量有上限,未授权时为 50 个,超出的不参与渲染并输出警告。剖切面与裁剪体共用这个配额。授权说明见版本与授权。
  • 销毁剖切面只会触发一次渲染更新,不会从 Component 的 SectionPlanes 数组里移除元素,数组中会残留失效指针(渲染时会自动跳过)。需要保持数组干净的话,销毁前先调 RemoveSectionPlane。

See Also

  • 场景编辑:完整使用说明
  • ALCCClippingVolume:用有界体积裁剪
  • ULCCComponentBase:AddSectionPlane 与 RemoveSectionPlane
上一页
ALCCClippingVolume
下一页
ULCCUtilLibrary