激光雷达点云转 UE 网格流程
适用场景
这套流程适用于:
- 激光雷达点云
- 测绘点云
- 室内外扫描点云
- 想把点云转换成 UE 可用的网格体
不适用于:
- 照片重建的高斯泼溅 3DGS
- 以高斯椭球体为核心的实时渲染方案
对激光雷达点云来说,不建议走高斯泼溅转网格路线。更稳的方案是:
点云预处理 -> 法线计算 -> 表面重建 -> 网格清理 -> 导出 FBX/glTF -> 导入 UE
两种目标
1. 只想在 UE 里显示点云
如果只是为了浏览、展示、检查点云,不一定要转网格。
可以直接使用 Unreal Engine 的 LiDAR Point Cloud Support 插件导入点云。
适合:
- 点云可视化
- 快速预览
- 不需要复杂碰撞
- 不需要做可玩场景
2. 想在 UE 里作为正式场景使用
如果你需要下面这些能力,就应该把点云转成网格:
- 做材质
- 做碰撞
- 做关卡搭建
- 做导航
- 做灯光
- 做交互
- 做优化和 LOD
这时推荐的流程是:
- 点云清洗
- 法线计算
- 表面重建
- 网格清理
- 导出 FBX 或 glTF
- 导入 UE 作为 Static Mesh
推荐工具链
CloudCompare
适合做:
- 点云查看
- 去噪
- 裁剪
- 分块
- 下采样
- 法线计算
- 初步表面重建
MeshLab
适合做:
- Screened Poisson 重建
- Ball Pivoting 重建
- 网格清理
- 降面
- 修补局部问题
Blender
适合做:
- 最终网格整理
- 删除错误结构
- 简单修模
- 导出 FBX 或 glTF
- 后续贴图和场景整合
标准流程
第 1 步:点云清洗
先处理原始点云:
- 删除漂浮噪点
- 删除扫描范围外的数据
- 删除天空、地面杂波或无关物体
- 适当下采样,减少点数
- 如果场景太大,按区域分块
这一步非常重要,因为脏点云会直接影响后面的重建质量。
第 2 步:法线计算
做 Poisson 重建之前,通常必须先计算法线。
重点:
- 法线方向要尽量一致
- 法线质量越稳定,重建结果越可靠
- 如果法线方向混乱,生成的网格往往会翻面、鼓包或封错洞
推荐先在 CloudCompare 里完成法线估计与方向统一。
(推荐这样
- 在 CloudCompare 里清理噪点。
- Edit > Normals > Compute 计算法线。
- Edit > Normals > Orient Normals 统一法线方向。
- 导出为 .ply。
- 导出时保留 Normals 和 RGB Colors。
- 在 MeshLab 里打开 .ply。
- 用 Screened Poisson Surface Reconstruction 重建网格)
第 3 步:表面重建
常用方法有两种(另外一种很难用):
Poisson Surface Reconstruction
优点:
- 适合大多数 LiDAR 场景
- 能生成连续表面
- 对建筑、室内、地形都比较常用
缺点:
- 容易把本来应该空着的洞封住
- 对门窗、薄结构、树叶这类细节不够理想
Ball Pivoting
优点:
缺点:
- 对噪声更敏感
- 对点云密度要求更高
- 点云不均匀时容易出问题
实际建议
- 建筑、室内、道路、地形:先试
Poisson
- 点云比较干净、密度高:可以试
Ball Pivoting
- 最稳妥的方法:两个都试,选结果更好的那个
第 4 步:网格清理
重建后的网格通常不能直接进 UE,需要继续处理:
- 删除漂浮碎片
- 删除错误封闭面
- 补局部破洞
- 重算法线
- 降低面数
- 检查是否存在破面、自交、非流形问题
如果模型特别大,建议把网格拆成多块,而不是导出一个超级大的整体模型。
第 5 步:导出 UE 可用格式
推荐导出:
其中更稳妥、在 UE 里更常用的是:
如果目标是标准静态网格工作流,优先选 FBX。
第 6 步:导入 UE
说明:UE 的 LiDAR Point Cloud Support 通常是内置插件,不是单独下载安装的软件。
在 Unreal Engine 中:
- 导入为
Static Mesh
- 检查缩放单位
- 检查法线和面朝向
- 设置碰撞
- 根据需要生成 LOD
- 大场景建议分块导入
为什么不建议把 LiDAR 点云走高斯泼溅路线
原因很简单:
- 激光雷达点云和照片重建 3DGS 不是一类数据表达
- 高斯泼溅更偏向照片驱动的辐射场/新视角渲染
- LiDAR 更适合传统点云处理和表面重建
- 直接走高斯泼溅不仅绕远,而且不稳定
结论:
激光雷达点云 -> 网格重建 -> UE 才是更合理的路线。
大场景的注意事项
如果你的数据是:
建议不要重建成单一总网格,而要:
- 按区域分块
- 每块分别重建
- 每块分别降面
- 分块导入 UE
这样做的好处:
- 导入更稳定
- 更容易做碰撞
- 更容易优化性能
- 更方便后期替换和修补
实用结论
最推荐的主流程:
- 用 CloudCompare 清理点云
- 计算法线
- 用 Poisson 做表面重建
- 到 MeshLab 或 Blender 清理网格
- 导出 FBX
- 导入 UE 作为 Static Mesh
如果只是展示点云:
- 直接用 UE 的
LiDAR Point Cloud Support
如果要做正式场景: