170 lines
7.2 KiB
Markdown
Executable File
170 lines
7.2 KiB
Markdown
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 渲染性能排名
|
||
|
||
**相同场景、相同模式、相同设备下:**
|
||
|
||
1. **SuperSplat** — 性能最佳
|
||
2. **LCC** — 与SuperSplat基本相当,部分情况略逊
|
||
3. **Spark 2.0** — 性能表现最差
|
||
|
||
> 注:LCC2在不同性能模式下表现基本无变化,可能有额外处理逻辑。
|
||
|
||
### 4.5 渲染质量对比
|
||
|
||
| 问题 | Spark 2.0 | LCC | SuperSplat |
|
||
|------|-----------|-----|------------|
|
||
| 视觉跳变 | 无 | 有(旋转视角出现模型漏洞) | 无 |
|
||
| 性能模式模糊 | 正常 | 模糊 | 性能模式下模糊,标准及以上正常 |
|
||
| 放大细节 | 可加载清晰细节 | 模糊 | 可加载清晰细节 |
|
||
|
||
### 4.6 功能对比
|
||
|
||
| 功能 | Spark 2.0 | LCC | SuperSplat |
|
||
| -------- | --------- | ---------- | ----------- |
|
||
| 碰撞检测数据生成 | 不支持 | 需自行实现 | 内置支持(体素八叉树) |
|
||
| 第一人称行走 | 需自行实现 | 有API但需自行实现 | 内置支持 |
|
||
| 点云渲染 | 不支持 | 不支持 | 引擎支持 |
|
||
| Cesium集成 | 不支持 | 支持 | 不支持 |
|
||
|
||
---
|
||
|
||
## 五、技术趋势
|
||
|
||
1. **连续LOD替代离散LOD**:消除视觉跳变,实现无缝过渡
|
||
2. **流式传输标准化**:先展示低精度全局视图,再逐步细化
|
||
3. **WebGL向WebGPU迁移**:计算着色器开启更复杂LOD算法可能
|
||
4. **空间分块与LOD深度融合**:特别适合大地图、城市级实景
|
||
5. **AI驱动智能LOD**:神经网络动态预测最优LOD配置
|
||
|
||
---
|
||
|
||
## 六、推荐方案及理由
|
||
|
||
### 选择 SuperSplat 的核心理由
|
||
|
||
1. **渲染性能最优** — 实测FPS最高,CPU/GPU耗时最低
|
||
2. **碰撞检测内置** — 支持体素碰撞数据生成+第一人称行走
|
||
3. **无视觉跳变** — 渲染质量稳定,无LCC的旋转漏洞问题
|
||
4. **传输最快** — LOD数据最小,场景初始化最快
|
||
5. **开源生态** — MIT协议,PlayCanvas引擎成熟
|
||
|
||
### 待解决问题
|
||
|
||
| 问题 | 说明 |
|
||
| ------- | -------------------------------------------- |
|
||
| LOD生成效率 | @playcanvas/splat-transform 需二次开发,当前为Node.js |
|
||
| 碰撞数据质量 | 生成数据质量需进一步研究优化 |
|
||
| 点云渲染 | 引擎支持但Demo未实现 |
|
||
| GIS大场景 | Cesium对3DGS LOD支持不足,仅LCC支持Cesium集成 |
|
||
| 浏览器适配 | 不同手机和PC 浏览器兼容有差异 |
|
||
| | |
|
||
|
||
---
|
||
|
||
## 七、Hi-LiDAR 数据处理发布流程
|
||
|
||
已基于 @playcanvas/splat-transform 搭建3DGS在线数据处理和演示系统:
|
||
|
||
1. **数据接收** — 接收Hi-LiDAR推送 / 支持模型上传
|
||
2. **LOD处理** — 支持自动/手动生成LOD数据
|
||
3. **模型管理** — 在线预览和发布管理
|
||
4. **分享能力** — 链接分享 + 二维码扫码在线查看
|
||
5. **用户管理** — 集成中海达会员系统
|
||
|
||
**Demo演示地址**:http://172.16.36.73:8092/
|
||
|
||
---
|
||
|
||
*汇报完毕,请审阅。*
|