Gauzilla: 使用Rust编写的WebAssembly 3D Gaussian Splatting渲染器
1. 项目介绍
Gauzilla 是一个使用Rust语言编写的3D Gaussian Splatting(3DGS)渲染器,专为WebAssembly(WASM)设计,具有无锁多线程功能。3DGS是一种面向机器学习的渲染技术,特别适用于新视图合成(NVS)。Gauzilla能够实时渲染由常规智能手机相机捕获的图像和视频重建的场景。它通过使用无锁的bus机制绕过了WASM在多线程方面的限制,并且可以加载本地或CDN上的.splat文件,而无需在Rust代码中使用异步代码。
2. 项目快速启动
安装
-
安装Rust的夜间版本:
rustup toolchain install nightly -
安装
wasm-pack和sfz。
构建与运行
-
运行以下命令构建项目:
./build.sh sfz -
在浏览器中打开本地服务地址。
使用
-
打开一个格式化为3DGS的PLY文件或.splat文件。
-
使用鼠标和键盘进行相机控制。
-
轨道相机控制:
- 左键:围绕目标旋转视图
- 中键:放大/缩小
- 右键:左右/上下移动
-
飞行相机控制:
- 左键:改变视图方向(自由查看)
- 中键:前后移动
- 右键:左右/上下移动
-
3. 应用案例和最佳实践
- 案例一:使用Gauzilla渲染一个预先训练的3D模型,并实现交互式的Web演示。
- 最佳实践:确保在Web服务器上启用跨源隔离。
4. 典型生态项目
- 项目一:使用
wasm-bindgen-rayon优化渲染过程中的排序和纹理生成。 - 项目二:实现异步渐进的splat加载/渲染,以优化Web托管。
- 项目三:为WebGPU编写一个新的渲染路径。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



