Gauzilla: 使用Rust编写的WebAssembly 3D Gaussian Splatting渲染器

Gauzilla: 使用Rust编写的WebAssembly 3D Gaussian Splatting渲染器

1. 项目介绍

Gauzilla 是一个使用Rust语言编写的3D Gaussian Splatting(3DGS)渲染器,专为WebAssembly(WASM)设计,具有无锁多线程功能。3DGS是一种面向机器学习的渲染技术,特别适用于新视图合成(NVS)。Gauzilla能够实时渲染由常规智能手机相机捕获的图像和视频重建的场景。它通过使用无锁的bus机制绕过了WASM在多线程方面的限制,并且可以加载本地或CDN上的.splat文件,而无需在Rust代码中使用异步代码。

2. 项目快速启动

安装

  1. 安装Rust的夜间版本:

    rustup toolchain install nightly
    
  2. 安装wasm-packsfz

构建与运行

  1. 运行以下命令构建项目:

    ./build.sh sfz
    
  2. 在浏览器中打开本地服务地址。

使用

  • 打开一个格式化为3DGS的PLY文件或.splat文件。

  • 使用鼠标和键盘进行相机控制。

    • 轨道相机控制:

      • 左键:围绕目标旋转视图
      • 中键:放大/缩小
      • 右键:左右/上下移动
    • 飞行相机控制:

      • 左键:改变视图方向(自由查看)
      • 中键:前后移动
      • 右键:左右/上下移动

3. 应用案例和最佳实践

  • 案例一:使用Gauzilla渲染一个预先训练的3D模型,并实现交互式的Web演示。
  • 最佳实践:确保在Web服务器上启用跨源隔离。

4. 典型生态项目

  • 项目一:使用wasm-bindgen-rayon优化渲染过程中的排序和纹理生成。
  • 项目二:实现异步渐进的splat加载/渲染,以优化Web托管。
  • 项目三:为WebGPU编写一个新的渲染路径。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值