274 lines
11 KiB
Markdown
Executable File
274 lines
11 KiB
Markdown
Executable File
# 3DGS 数据在 VR 眼镜上的显示方案研究
|
||
|
||
> 研究日期:2026-06-07
|
||
> 关键词:3DGS, 3D Gaussian Splatting, SuperSplat, VR, WebXR, Meta Quest
|
||
|
||
---
|
||
|
||
## 一、3DGS (3D Gaussian Splatting) 技术概述
|
||
|
||
### 什么是 3DGS?
|
||
|
||
3D Gaussian Splatting 是 2023 年 SIGGRAPH 发表的革命性 3D 场景表示技术(论文作者:Kerbl, Kopanas 等),用**数百万个半透明的椭圆高斯球**来重建 3D 场景,而非传统的多边形网格。
|
||
|
||
**核心优势:**
|
||
- 📸 **照片级真实感**:从照片/视频直接生成,效果逼真
|
||
- ⚡ **实时渲染**:优化后可达交互帧率
|
||
- 🌟 **体积表示**:自然处理半透明材质、精细细节、复杂光照
|
||
- 💰 **低成本**:比传统 3D 建模便宜且快速
|
||
|
||
### 数据格式
|
||
|
||
| 格式 | 说明 | 大小 |
|
||
|------|------|------|
|
||
| **PLY** | 标准二进制 3DGS 格式(未压缩) | 大(数百MB~数GB) |
|
||
| **SOG** | PlayCanvas 压缩格式(ZIP + WebP) | PLY 的 1/15~1/20 |
|
||
| **SPZ** | SuperSplat 项目格式 | 压缩后更小 |
|
||
|
||
---
|
||
|
||
## 二、SuperSplat 工具
|
||
|
||
### 基本信息
|
||
|
||
- **开发者**:PlayCanvas
|
||
- **GitHub**:https://github.com/playcanvas/supersplat(⭐9k+)
|
||
- **在线版**:https://superspl.at/editor
|
||
- **许可证**:MIT(免费开源)
|
||
- **技术栈**:纯 Web(TypeScript + PlayCanvas Engine),浏览器直接运行
|
||
|
||
### 核心功能
|
||
|
||
1. **检查(Inspect)**:加载 .ply / .splat 文件,查看高斯球分布
|
||
2. **编辑(Edit)**:选中/删除/移动高斯球,清理噪点
|
||
3. **优化(Optimize)**:压缩、裁剪、降采样,减小文件体积
|
||
4. **发布(Publish)**:导出优化后的文件,或直接发布到 SuperSplat 平台
|
||
|
||
### ⚠️ SuperSplat 本身不支持 VR
|
||
|
||
SuperSplat 是一个**编辑器**,运行在桌面浏览器的 2D 界面中。它**不直接支持 VR 模式**。
|
||
|
||
要在 VR 中查看 3DGS 数据,需要使用以下方案之一。
|
||
|
||
---
|
||
|
||
## 三、3DGS 在 VR 上显示的技术方案
|
||
|
||
### 方案对比
|
||
|
||
| 方案 | 平台 | 渲染技术 | VR 支持 | 难度 | 适用场景 |
|
||
| ---------------------- | --------------- | -------------------- | -------- | ---- | ---------------- |
|
||
| **PlayCanvas + WebXR** | Web 浏览器 | WebGL/WebGPU | ✅ WebXR | ⭐⭐ | 最简单,跨平台 |
|
||
| **RSR** | Windows 原生 | Direct3D 12 + OpenXR | ✅ OpenXR | ⭐ | 最佳性能,PC VR |
|
||
| **Unity VR Viewer** | Windows (Unity) | CUDA + OpenXR | ✅ OpenXR | ⭐⭐⭐ | 开发者,需 NVIDIA GPU |
|
||
| **A-Frame + GS** | Web 浏览器 | WebGL | ✅ WebXR | ⭐⭐ | 快速原型 |
|
||
| **VRSplat** | Linux/CUDA | CUDA + OpenGL | ✅ 研究 | ⭐⭐⭐⭐ | 学术研究 |
|
||
|
||
### 方案 1:PlayCanvas + WebXR(推荐入门)
|
||
|
||
**原理**:PlayCanvas Engine 原生支持 Gaussian Splatting 渲染 + WebXR API。
|
||
|
||
**流程**:
|
||
1. 用 SuperSplat 编辑/优化 3DGS 数据
|
||
2. 导出 PLY 或 SOG 文件
|
||
3. 在 PlayCanvas 项目中加载并启动 WebXR VR 会话
|
||
|
||
**优势**:
|
||
- 浏览器直接运行,无需安装
|
||
- Meta Quest 浏览器原生支持 WebXR
|
||
- Apple Vision Pro Safari 也支持
|
||
|
||
**代码示例**(PlayCanvas):
|
||
```javascript
|
||
// 检查 VR 支持并启动
|
||
button.element.on('click', () => {
|
||
if (app.xr.supported && app.xr.isAvailable(pc.XRTYPE_VR)) {
|
||
app.xr.start(entity.camera, pc.XRTYPE_VR, pc.XRSPACE_LOCALFLOOR);
|
||
}
|
||
});
|
||
```
|
||
|
||
**局限**:
|
||
- 浏览器性能有限,大场景可能卡顿
|
||
- 移动端 VR(Quest 独立模式)渲染能力受限
|
||
|
||
### 方案 2:RSR — Rapid Splat Renderer(推荐高性能)
|
||
|
||
- **GitHub**:https://github.com/warpgatelabs/RSR(⭐44)
|
||
- **技术**:Direct3D 12 + OpenXR
|
||
- **平台**:Windows only
|
||
|
||
**特点**:
|
||
- 原生 D3D12 渲染,性能最强
|
||
- 支持 PLY 和 SOG 格式
|
||
- 支持完整球谐函数(SH up to order 3)
|
||
- 可选 NVIDIA DLSS 超分辨率(RTX GPU)
|
||
- **免费个人/非商业使用**
|
||
|
||
**使用方式**:
|
||
```
|
||
RSR.exe # 启动文件浏览器
|
||
RSR.exe <path-to-scene> # 直接打开场景
|
||
```
|
||
按 V 或 F11 切换 VR 模式,支持 OpenXR(SteamVR / Oculus / 其他 OpenXR 运行时)。
|
||
|
||
**VR 控制方式**:
|
||
- 左摇杆:移动
|
||
- 右摇杆:转向/上下
|
||
- 左/右手柄 Grip:拖拽/缩放场景
|
||
- A 键:重置视角
|
||
|
||
**系统要求**:
|
||
- Windows 10/11 x64
|
||
- DirectX 12 GPU
|
||
- OpenXR 兼容 VR 头显
|
||
- NVIDIA RTX GPU(可选,用于 DLSS)
|
||
|
||
### 方案 3:Unity + CUDA VR Viewer
|
||
|
||
- **GitHub**:https://github.com/clarte53/GaussianSplattingVRViewerUnity(⭐373)
|
||
- **技术**:Unity + CUDA 原生插件 + OpenXR
|
||
|
||
**特点**:
|
||
- 使用原始 CUDA 光栅化器,渲染质量最高
|
||
- 支持同时加载多个模型
|
||
- 支持深度混合(高斯球与 3D 场景混合)
|
||
- 支持多相机渲染
|
||
|
||
**性能参考**(bicycle 场景,RTX 3060 Ti):
|
||
- 桌面 OpenGL (FOV 60°): 12ms (80 FPS)
|
||
- Unity DirectX11 (FOV 60°): 15ms (67 FPS)
|
||
- **Unity OpenXR (双眼, FOV 90°): 38ms (26 FPS)**
|
||
|
||
**注意**:VR 模式需要渲染双眼 + 更大 FOV,性能开销约 2.5-3x
|
||
|
||
**硬件要求**:
|
||
- CUDA GPU(Compute Capability 7.0+,即 RTX 2060 以上)
|
||
- 推荐 RTX 4070+
|
||
- 16GB RAM
|
||
|
||
### 方案 4:VRSplat(学术方案)
|
||
|
||
- **GitHub**:https://github.com/Cekavis/VRSplat(⭐57)
|
||
- **论文**:"VRSplat: Fast and Robust Gaussian Splatting for Virtual Reality"
|
||
- 专门优化 VR 渲染的学术方案,解决了 VR 中的高斯球渲染痛点
|
||
|
||
---
|
||
|
||
## 四、VR 眼镜选型
|
||
|
||
### 根据 3DGS 渲染需求分类
|
||
|
||
3DGS 渲染对 GPU 要求极高(百万级高斯球实时排序+渲染),需要区分两种使用模式:
|
||
|
||
**A. PC VR 模式(推荐)**:VR 眼镜连接 PC,由 PC GPU 负责渲染
|
||
**B. 独立 VR 模式**:VR 眼镜自带芯片渲染,性能受限
|
||
|
||
### 推荐设备
|
||
|
||
#### 🥇 方案 A:PC VR(最佳体验)
|
||
|
||
| 设备 | 价格(人民币) | 分辨率 | FOV | 连接方式 | 推荐理由 |
|
||
|------|---------------|--------|-----|---------|---------|
|
||
| **Meta Quest 3** | ¥3,500-4,000 | 2064×2208/眼 | 110° | WiFi串流/USB-C | 性价比之王,WebXR+PC串流都支持 |
|
||
| **Meta Quest 3S** | ¥2,200-2,800 | 1832×1920/眼 | 96° | WiFi串流/USB-C | 预算有限首选,3 的降配版 |
|
||
| **Pico 4 Ultra** | ¥3,500-4,000 | 2160×2160/眼 | 105° | WiFi串流/USB-C | 国行首选,售后好,国内生态完善 |
|
||
| **Pico 4** | ¥1,800-2,500 | 2160×2160/眼 | 105° | WiFi串流/USB-C | 性价比之选 |
|
||
| **Valve Index** | ¥6,000+ | 1440×1600/眼 | 130° | DP直连 | FOV最大,刷新率144Hz |
|
||
| **HTC Vive Pro 2** | ¥7,000+ | 2448×2448/眼 | 120° | DP直连 | 分辨率最高,专业级 |
|
||
| **Bigscreen Beyond 2** | ¥7,000+ | 2560×2560/眼 | 110° | DP直连 | 超轻(仅127g),Micro OLED,极致画质 |
|
||
|
||
**PC VR 的关键**:GPU 决定体验,建议:
|
||
- **最低**:RTX 3060 Ti(VR 模式约 26 FPS,可接受但不算流畅)
|
||
- **推荐**:RTX 4070 Super 以上(流畅体验 60+ FPS)
|
||
- **理想**:RTX 4080/4090(大场景也能流畅)
|
||
|
||
#### 🥈 方案 B:独立 VR(便捷但性能受限)
|
||
|
||
| 设备 | 价格 | 芯片 | 分辨率 | 3DGS 能力 | 备注 |
|
||
|------|------|------|--------|-----------|------|
|
||
| **Meta Quest 3** | ¥3,500 | Snapdragon XR2 Gen 2 | 2064×2208/眼 | ⚠️ 仅小场景 | 浏览器 WebXR 运行 PlayCanvas |
|
||
| **Meta Quest 3S** | ¥2,200 | Snapdragon XR2 Gen 2 | 1832×1920/眼 | ⚠️ 仅小场景 | 同上 |
|
||
| **Apple Vision Pro** | ¥25,000+ | M2 + R1 | 3660×3200/眼 | ✅ 较好 | Safari WebXR,芯片性能强 |
|
||
| **Pico 4 Ultra** | ¥3,500 | Snapdragon XR2 Gen 2 | 2160×2160/眼 | ⚠️ 仅小场景 | 国行,浏览器支持 WebXR |
|
||
|
||
**独立模式的限制**:
|
||
- 移动端 GPU 性能仅为 PC 的 1/10~1/5
|
||
- 3DGS 场景必须大幅压缩(减少高斯球数量到数十万级)
|
||
- 只能通过 WebXR 浏览器方案(PlayCanvas)
|
||
- 大场景基本无法流畅运行
|
||
|
||
#### 🥉 方案 C:混合模式(Quest 串流 PC)
|
||
|
||
这是**性价比最优方案**:
|
||
1. 购买 Meta Quest 3 / Pico 4 Ultra
|
||
2. 独立使用时通过浏览器 WebXR 查看小场景
|
||
3. 连接 PC 时通过 Steam Link / Air Link / Virtual Desktop 使用 RSR 等原生方案
|
||
|
||
**一台设备,两种模式,兼顾便携和性能。**
|
||
|
||
### 最终推荐
|
||
|
||
| 需求 | 推荐设备 | 理由 |
|
||
|------|---------|------|
|
||
| 💰 **预算优先** | Meta Quest 3S + PC | ¥2,200 起步,PC 串流体验完整 |
|
||
| ⚖️ **性价比最优** | **Meta Quest 3 + PC(RTX 4070+)** | ¥3,500,独立+PC双模式 |
|
||
| 🇨🇳 **国内首选** | **Pico 4 Ultra + PC** | 国行保修,国内售后完善 |
|
||
| 🎯 **专业级** | Bigscreen Beyond 2 + PC(RTX 4090) | Micro OLED 极致画质 |
|
||
| 🍎 **苹果生态** | Apple Vision Pro | 25K+,M2 芯片性能强,但贵 |
|
||
|
||
---
|
||
|
||
## 五、完整工作流
|
||
|
||
```
|
||
拍照/录像 → 训练3DGS模型 → SuperSplat编辑优化 → VR显示
|
||
↓ ↓ ↓ ↓
|
||
手机/相机 gaussian-splatting superspl.at/editor ↓
|
||
Polycam gsplat/nerfstudio 裁剪/压缩/清理 ↓
|
||
Luma AI ↓ ↓
|
||
导出 PLY/SOG ↓
|
||
┌─────────┴──────────┐
|
||
↓ ↓
|
||
WebXR方案 原生方案
|
||
(PlayCanvas) (RSR/Unity)
|
||
↓ ↓
|
||
Quest浏览器 PC + OpenXR
|
||
(独立模式) (PC VR模式)
|
||
```
|
||
|
||
---
|
||
|
||
## 六、关键参考链接
|
||
|
||
### 工具
|
||
- SuperSplat Editor: https://superspl.at/editor
|
||
- PlayCanvas Engine: https://playcanvas.com
|
||
- RSR (Rapid Splat Renderer): https://github.com/warpgatelabs/RSR
|
||
- Unity VR Viewer: https://github.com/clarte53/GaussianSplattingVRViewerUnity
|
||
- VRSplat: https://github.com/Cekavis/VRSplat
|
||
- Splatapult (C++ OpenGL): https://github.com/hyperlogic/splatapult
|
||
|
||
### 3DGS 训练
|
||
- 原始实现: https://github.com/graphdeco-inria/gaussian-splatting
|
||
- gsplat (CUDA 加速): https://github.com/nerfstudio-project/gsplat
|
||
- Nerfstudio: https://github.com/nerfstudio-project/nerfstudio
|
||
|
||
### 数据来源
|
||
- Polycam (拍照生成3DGS): https://poly.cam/gaussian-splatting/
|
||
- Luma AI: https://lumalabs.ai
|
||
|
||
### 文档
|
||
- PlayCanvas Gaussian Splatting: https://developer.playcanvas.com/user-manual/gaussian-splatting/
|
||
- PlayCanvas XR: https://developer.playcanvas.com/user-manual/xr/
|
||
- SuperSplat User Guide: https://developer.playcanvas.com/user-manual/gaussian-splatting/editing/supersplat/
|
||
|
||
---
|
||
|
||
## 七、总结建议
|
||
|
||
1. **如果你有 PC(RTX 4070+)**:买 Meta Quest 3 或 Pico 4 Ultra,用 RSR 渲染,体验最佳
|
||
2. **如果只有笔记本**:Quest 3S 最低预算入门,通过 Steam Link 连笔记本
|
||
3. **如果要给客户展示**:SuperSplat 编辑优化 → PlayCanvas WebXR 发布 → 发链接即可在 Quest 浏览器打开
|
||
4. **3DGS 数据必须优化**:原始 PLY 文件太大,用 SuperSplat 裁剪+压缩后再用于 VR
|