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

在 3DGS 场景中行走:碰撞支持

LCC4Unreal 支持动态碰撞数据加载,角色可在 3DGS 世界中自由走动和交互。

前置条件

碰撞依赖数据自带的碰撞文件,不同格式的要求不同:

格式碰撞数据支持情况
.lcc数据目录下的 collision.lci,旧版本为 collision.bin支持
.lcc2数据目录下 data/mesh/ 中的 .ply 文件支持
.sog / .spz / .ply无不支持

插件按 collision.lci → collision.bin → data/mesh/*.ply 的顺序检测,三者都不存在时输出警告并禁用碰撞。加载数据后可用 HaveValidCollisionData() 确认当前数据是否包含可用的碰撞数据。

注:collision.lci 需要 LCC Studio v1.6.1 及以上版本导出,更早版本导出的数据使用 collision.bin。

单文件格式的替代方案

.sog、.spz、.ply 是单文件格式,不携带碰撞数据,插件无法为其生成碰撞。需要碰撞时自行在场景中搭建:

  • Blocking Volume:用引擎的阻挡体积拼出地面、墙面等需要阻挡的区域,适合规则形状,成本最低
  • 近似网格:放置一份与 3DGS 形状贴合的网格并启用其碰撞,适合形状复杂的场景。这份网格可以复用代理网格,把它的碰撞预设改为参与阻挡即可

两种方式都与 LCC 的碰撞加载机制无关,不受 CollisionLoadMaxDistance 影响,也不会随相机移动动态换入换出。

加载机制

碰撞数据和渲染数据一样按空间分块存储。插件不会一次性加载全部碰撞,而是只加载相机周围一定范围内的块,并随相机移动动态换入换出。

相机位置变化
      │
      ▼
计算范围内应加载的碰撞块集合
      │
      ▼
与上一次的集合比较 ── 相同 ──▶ 跳过,不做任何处理
      │ 不同
      ▼
加载新增的块 → 交给物理系统烘焙 → 生成碰撞体

几个实现上的要点:

  • 加载范围由 Max Load Collision Distance(m) 控制,超出该距离的区域没有碰撞
  • 首次加载是同步的,避免角色在碰撞尚未就绪时穿过地面掉落;之后的更新都走异步,不阻塞主线程
  • 有频率节流,相机连续移动时不会每帧都重建碰撞
  • 可见块集合未变化时直接跳过,原地小幅移动不会触发重建
  • 只按主相机计算,SceneCapture 不参与碰撞加载

优点

  • 内存占用只与加载范围有关,与数据总量无关,大场景也能支持碰撞
  • 物理系统需要处理的碰撞体数量始终可控,不会因为场景规模增长而拖慢物理计算

代价与规避

问题原因规避方式
开始游戏瞬间角色穿地掉落碰撞尚未构建完成把 PlayerStart 抬高一段距离,或在碰撞就绪后再启用角色移动
角色从远处进入 3DGS 场景范围时卡顿角色出生在碰撞加载范围外,首次进入时触发同步加载让角色出生点位于碰撞加载范围内,或一次性加载全部碰撞
远处没有碰撞,射线检测打不中超出加载范围的区域不生成碰撞体调大 Max Load Collision Distance(m),或改用不依赖碰撞的判断方式
传送或快速移动后短时间内无碰撞新区域的碰撞块还在加载一次性加载全部碰撞
移动中出现卡顿,Update Collision 耗时高碰撞块频繁换入换出并重新烘焙缩小加载范围,或确认是否真的需要碰撞
配合导航时导航网格反复重建碰撞变化触发 NavMesh 更新调大加载范围让目标区域一次性加载完,并使用 Static 烘焙,详见寻路系统支持

一次性加载全部碰撞

上述代价大多来自运行期的动态换入换出。如果场景规模有限、内存有余量,可以把 Max Load Collision Distance(m) 调大到足以覆盖整个场景,让碰撞在加载数据时一次性全部建好。

这样运行期不再有碰撞块的换入换出,前面表格里的穿地掉落、传送无碰撞、移动卡顿、导航反复重建都不会出现,配合寻路系统时尤其推荐。

代价是启动时的加载时间变长、内存占用固定为全场景碰撞的大小。判断是否可行:查看 stat xgrids 中的 Collision Data Usage,确认全量加载后的内存占用在可接受范围内。

开启

LCCComponent->SetLCCCollisionEnable(true);

或在 Details 面板中勾选 bEnableCollision。

在 Details 面板启用 LCC 碰撞

在 Details 面板中启用 LCC 碰撞

LCC 动态碰撞效果演示

角色在 LCC 场景中的动态碰撞效果

验证

通过视图模式设置,选择玩家碰撞或可视性碰撞可以观察到碰撞是否已开启

在视图模式中显示碰撞体

使用玩家碰撞或可视性碰撞模式验证碰撞体

相关属性

属性说明
bEnableCollision启用碰撞
CollisionLoadMaxDistance碰撞数据最大加载距离(默认 300 米)
碰撞启用与最大加载距离属性

配置碰撞启用状态与最大加载距离

注意事项

  • 开启碰撞后可使用 UE 引擎自身的 LineTrace 进行基于碰撞体的射线检测,检测范围同样受加载范围限制
  • 碰撞数据占用的内存可在 stat xgrids 的 Collision Data Usage 中查看,更新耗时见 Update Collision,参数含义见性能优化参数说明
上一页
加载动画
下一页
寻路系统支持