7.2 KiB
Executable File
7.2 KiB
Executable File
Web3DGS 技术调研汇报总结
一、核心结论(Executive Summary)
推荐方案:SuperSplat / PlayCanvas
综合数据处理效率、渲染性能、渲染质量、功能完整性四个维度,SuperSplat 在各项对比中表现最优,建议作为项目的高斯泼溅渲染引擎。
二、技术背景
2.1 什么是 3DGS
3D Gaussian Splatting(3DGS)是一种革命性的实时辐射场渲染技术,将3D场景表示为大量微小的"高斯形状斑点"(Splat)集合,通过可微光栅化实现实时高质量渲染。相比 NeRF 方法,3DGS 兼具训练速度和渲染速度的优势。
2.2 Web端核心挑战
| 挑战 | 说明 |
|---|---|
| 内存限制 | 浏览器可用内存远小于原生应用 |
| 带宽限制 | 百万级Splat数据传输成为瓶颈 |
| 渲染算力 | WebGL/WebGPU并行计算能力受限 |
| 跨平台兼容 | 桌面、移动、VR设备算力差异巨大 |
2.3 LOD 技术的关键作用
LOD(细节层级)是解决上述挑战的核心技术,实现:
- 场景规模扩展:使亿级Splat超大场景渲染成为可能
- 设备适配:根据设备性能动态调整渲染负载
- 带宽优化:通过流式加载减少初始等待时间
- 帧率稳定:保持恒定渲染复杂度,避免性能抖动
三、主流方案对比
3.1 方案概览
| 方案 | 类型 | 技术栈 | 特点 |
|---|---|---|---|
| Spark 2.0 (World Labs) | 开源Web渲染器 | Three.js + WebGL2 | 连续LOD、GPU虚拟显存、亿级Splat |
| LCC (XGRIDS) | 商业化SDK | 多平台SDK | 空间分块+LOD耦合、Cesium集成 |
| SuperSplat (PlayCanvas) | 开源编辑器+引擎 | PlayCanvas + WebGL2/WebGPU | SOG格式、碰撞检测、轻量易用 |
| Visionary | 学术研究 | WebGPU + ONNX | 每帧推理、插件式架构 |
| gsplat.js | 开源通用库 | 类Three.js API | 轻量级、基础LOD支持 |
| FJD Trion (丰疆) | 商业软件 | 专有格式 | 需授权,未试用 |
3.2 核心差异对比
| 维度 | Spark 2.0 | LCC | SuperSplat |
|---|---|---|---|
| 渲染预算 | 固定预算(桌面2.5M/移动500K~1.5M) | 分块LOD机制 | 全局预算管理 |
| 文件格式 | .RAD(渐进式传输) | .lcc(紧凑编码) | .sog(空间有序) |
| 内存管理 | GPU虚拟显存分页 | 压缩+LOD优化 | gsplat.splatBudget |
| LOD类型 | 连续LOD(树切面) | 离散LOD+空间分块 | 离散LOD流式分块 |
| 碰撞检测 | 不支持 | 需自行实现 | 内置体素碰撞数据生成 |
| 最大场景 | 1亿+Splat | 80万㎡场景验证 | 千万级Splat |
四、实测数据
4.1 测试场景
| 场景 | 大小 | 来源 | 类型 |
|---|---|---|---|
| 西北大学 | 2.12G | LCC官方示例 | 外部大场景 |
| 书店 | 404M | LCC官方示例 | 内部小场景 |
| 教堂 | 776M | LCC官方示例 | 外部小场景 |
| 台阶 | 1.38G | 中海达数据 | 外部场景 |
4.2 测试设备
- 低性能台式机H:i7-9700 + AMD Radeon R7 430
- 高性能台式机:i9-10900K + RTX3070
- 笔记本W:i7-9700 + AMD Radeon R7 430
4.3 数据处理效率
| 方案 | 台阶场景处理时间 | 备注 |
|---|---|---|
| Spark 2.0 | 较长(Rust源码需二次开发) | 部分PLY兼容性有问题 |
| LCC | ~10秒(LCCEditor) | 存在视觉跳变问题 |
| SuperSplat | 需二次开发(Node.js库) | 支持碰撞数据生成 |
碰撞数据生成时间(笔记本W):
- 书店场景:~2分钟
- 教堂场景:~3分40秒
4.4 渲染性能排名
相同场景、相同模式、相同设备下:
- SuperSplat — 性能最佳
- LCC — 与SuperSplat基本相当,部分情况略逊
- Spark 2.0 — 性能表现最差
注:LCC2在不同性能模式下表现基本无变化,可能有额外处理逻辑。
4.5 渲染质量对比
| 问题 | Spark 2.0 | LCC | SuperSplat |
|---|---|---|---|
| 视觉跳变 | 无 | 有(旋转视角出现模型漏洞) | 无 |
| 性能模式模糊 | 正常 | 模糊 | 性能模式下模糊,标准及以上正常 |
| 放大细节 | 可加载清晰细节 | 模糊 | 可加载清晰细节 |
4.6 功能对比
| 功能 | Spark 2.0 | LCC | SuperSplat |
|---|---|---|---|
| 碰撞检测数据生成 | 不支持 | 需自行实现 | 内置支持(体素八叉树) |
| 第一人称行走 | 需自行实现 | 有API但需自行实现 | 内置支持 |
| 点云渲染 | 不支持 | 不支持 | 引擎支持 |
| Cesium集成 | 不支持 | 支持 | 不支持 |
五、技术趋势
- 连续LOD替代离散LOD:消除视觉跳变,实现无缝过渡
- 流式传输标准化:先展示低精度全局视图,再逐步细化
- WebGL向WebGPU迁移:计算着色器开启更复杂LOD算法可能
- 空间分块与LOD深度融合:特别适合大地图、城市级实景
- AI驱动智能LOD:神经网络动态预测最优LOD配置
六、推荐方案及理由
选择 SuperSplat 的核心理由
- 渲染性能最优 — 实测FPS最高,CPU/GPU耗时最低
- 碰撞检测内置 — 支持体素碰撞数据生成+第一人称行走
- 无视觉跳变 — 渲染质量稳定,无LCC的旋转漏洞问题
- 传输最快 — LOD数据最小,场景初始化最快
- 开源生态 — MIT协议,PlayCanvas引擎成熟
待解决问题
| 问题 | 说明 |
|---|---|
| LOD生成效率 | @playcanvas/splat-transform 需二次开发,当前为Node.js |
| 碰撞数据质量 | 生成数据质量需进一步研究优化 |
| 点云渲染 | 引擎支持但Demo未实现 |
| GIS大场景 | Cesium对3DGS LOD支持不足,仅LCC支持Cesium集成 |
| 浏览器适配 | 不同手机和PC 浏览器兼容有差异 |
七、Hi-LiDAR 数据处理发布流程
已基于 @playcanvas/splat-transform 搭建3DGS在线数据处理和演示系统:
- 数据接收 — 接收Hi-LiDAR推送 / 支持模型上传
- LOD处理 — 支持自动/手动生成LOD数据
- 模型管理 — 在线预览和发布管理
- 分享能力 — 链接分享 + 二维码扫码在线查看
- 用户管理 — 集成中海达会员系统
Demo演示地址:http://172.16.36.73:8092/
汇报完毕,请审阅。