We address the storage and rendering issue of 3D Gaussian Splatting (3DGS) by compressing the reconstructed scene parameters and rendering the compressed representation via GPU rasterization. To compress the scenes, we first analyze its components and observe that the Spherical Harmonics (SH) coefficients and the multivariate Gaussian parameters take up the majority of storage space and are highly redundant. Our compression pipeline consists of three steps:
Gaussians are rendered in sorted order via GPU rasterization. For each Gaussian, one planar quad (a so-called splat) consisting of two triangles is rendered. A vertex shader computes the screen space vertex positions of each splat from the 2D covariance information. The size of a splat is set such that it covers the 99% confidence interval of the projected Gaussian. The vertex shader simply outputs the color computed in the pre-pass and the 2D splat center as input to the pixel shader. The pixel shader then discards fragments outside the 99% confidence interval. All remaining fragments use their distance to the splat center to compute the exponential color and opacity falloff and blend their final colors into the framebuffer.
The renderer is implemented with the WebGPU graphics API in the Rust programming language. Thus, it can run in a modern web browser on a large variety of devices. A demo can be found below.
The source code for our renderer can be found here.
We evaluate our method on 13 real scenes and the NeRF Synthesis dataset. Our method achieves a 26x compression rate on average on real scenes at minimal loss in visual quality. Our rasterization based renderer achieves a 3.5x speedup for the compressed scenes compared to the compute shader based renderer of Kerbl et al. The FPS measures shown below were obtained on the bicycle scene from Mip-NeRF360 on an NVIDIA GeForce A5000.
Image comparisons for the baseline and compressed reconstruction. All images are taken from the test set.
There's a lot of concorrent work that was introduced around the same time as ours:
LightGaussian: Unbounded 3D Gaussian Compression with 15x Reduction and 200+ FPS
Compact3D: Compressing Gaussian Splat Radiance Field Models with Vector Quantization
Compact 3D Gaussian Representation for Radiance Field
Compact 3D Scene Representation via Self-Organizing Gaussian Grids
@InProceedings{Niedermayr_2024_CVPR,
author = {Niedermayr, Simon and Stumpfegger, Josef and Westermann, R\"udiger},
title = {Compressed 3D Gaussian Splatting for Accelerated Novel View Synthesis},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {10349-10358}
}