1 unstable release

0.0.1 Sep 24, 2023

#45 in #point-cloud

MIT license

70KB
1.5K SLoC

Rust 731 SLoC // 0.0% comments WebGPU Shader Language 527 SLoC // 0.1% comments

Docs crates.io

Splatter

Inspired by gaussian-splatting but using a somewhat different approach to rendering.

Features

  • Correctly computes the perspective projection of ellipsoids by intersecting the bounding elliptic cone with the view plane
  • Uses the rasterizer instead of a tiled compute shader
  • Rasterizes rotated rectangles instead of axis aligned squares
  • GPU depth sorting using onesweep radix sort (except that the block sort is not WLMS because WebGPU does not support subgroup operations yet)
  • CPU depth sorting as a fallback
  • Frustum culling (optionally using stream compaction via indirect drawing)
  • File parser and progressive loading via segmentation in chunks
  • Lots of rendering configuration parameters to customize

Dependencies

Dependencies of the Library

Dependencies of the Example

Example

You can download some pre-trained models from the original paper here.

cargo run --example showcase -- models/garden/point_cloud/iteration_7000/point_cloud.ply

Controls

  • A / D: Move left / right
  • W / S: Move forward / backward
  • Q / E: Move up / down
  • Z / X: Roll left / right
  • Mouse: Pitch and yaw

Dependencies

~6–37MB
~563K SLoC