This code implements a renderer for the reconstructions obtained with 3D Gaussian Splatting
Clone the repository and run
cargo build --release --bin viewer
Use the point_cloud.ply
and cameras.json
files generated by 3D Gaussian Splatting:
cargo run --release --bin viewer point_cloud.ply cameras.json
Usage
3D Gaussian Splatting ViewerUsage: viewer [OPTIONS] <INPUT> [SCENE]
Arguments:
<INPUT> Input ply file
[SCENE] Scene json file
Options:
--max-sh-deg <MAX_SH_DEG> maximum allowed Spherical Harmonics (SH) degree [default: 3]
--sh-dtype <SH_DTYPE> datatype used for SH coefficients [default: byte] [possible values: float, half, byte]
--no-vsync
-h, --help Print help
-V, --version Print version
Use the mouse and WASD + Shift + Space to navigate the camera.
If a scene (cameras.json
) file is provided:
- The keys 0-9 can be used to select the views 0-9
- Pressing the
R
key will select a random view - Next/Previous view can be selected with Page Up/Down
N
snaps to nearest viewT
starts the tracking shot that visits the test views
Splat Sorting : We ported the Fuchsia RadixSort to WGPU for sorting the splats on the GPU.
Performance: The renderer reaches >200 FPS on a NVIDIA 3090 RTX
and ~130 FPS on a AMD Radeon R9 380 Series
(8 years old). Measurements where taken for the bonsai scene at 1200x799 resolution.
- better camera controls
- make it work in the browser