Gaussian Point Splatting: Real-Time Rendering of Massive Gaussian Scenes

SIGGRAPH 2026 will see the presentation of Gaussian Point Splatting, a new stochastic rendering technique that scales to hundreds of millions of Gaussians in real time. The paper, authored by Joris Rijsdijk, Christoph Peters, Michael Weinmann, and Ricardo Marroquim, and published in ACM Transactions on Graphics (Proc. SIGGRAPH) 45, 4, tackles the performance bottleneck of traditional Gaussian splatting: each Gaussian affecting many pixels.

Core Idea: Sample Points, Not Pixels

Instead of blending Gaussians across multiple pixels, the method samples a single pixel-sized, opaque point from each Gaussian. These points are then splatted to the framebuffer using 64-bit atomic operations. This reduces per-Gaussian work to a single write, making the cost almost independent of Gaussian size or overlap. The key challenge: multiple points may land on the same pixel, and a single point per Gaussian cannot represent partial opacity. The authors formalize these problems and provide exact solutions.

Workload Distribution via Parallel Primitives

The algorithm uses GPU parallel programming primitives to distribute work evenly across millions of threads. Each thread processes one Gaussian, samples its point, and performs an atomic add to the framebuffer. To ensure faithful rendering, the method corrects opacity: if a Gaussian is expected to contribute 0.3 opacity to a pixel, the point is splatted with a weight that, after stochastic accumulation, yields the correct expected opacity. The paper includes a Shadertoy demo for opacity correction.

Hierarchical Culling for Acceleration

To skip invisible Gaussians, the method employs hierarchical frustum and occlusion culling. A bounding volume hierarchy (BVH) is built over the Gaussians. The frustum culling eliminates Gaussians outside the view, and occlusion culling skips those behind already rendered surfaces. This culling is performed per-tile, further reducing work.

Results: Hundreds of Millions in Real Time

The paper reports rendering hundreds of millions of Gaussians at interactive frame rates. Compared to standard Gaussian splatting, the only differences are slight noise (due to stochastic sampling) and differences in aliasing. The supplemental video (available with and without temporal reprojection) demonstrates the visual quality.

Technical Details

  • 64-bit atomics: The framebuffer stores 64-bit values (RGBA half-floats or 32-bit floats) to accumulate contributions without overflow.
  • Opacity correction formula: For a Gaussian with opacity (\alpha) covering a pixel, the probability of splatting a point is (p = 1 - (1 - \alpha)^{1/n}) where (n) is the number of samples per pixel (typically 1). The weight of the point is set to (\alpha / p).
  • Source code is available on GitHub (link in paper).

Comparison to Previous Work

Traditional Gaussian splatting (Kerbl et al. 2023) renders each Gaussian as a 2D splat covering many pixels, requiring per-pixel blending. This becomes expensive with many Gaussians. Point splatting methods (e.g., Laine & Karras 2011) sample points but struggled with opacity. Gaussian Point Splatting provides a principled probabilistic framework.

Practical Implications

For developers working on novel view synthesis, 3D reconstruction, or large-scale scene rendering, this method offers a path to real-time performance without sacrificing quality. The technique is directly applicable to any Gaussian-based representation, including 3D Gaussian Splatting used in NeRF alternatives.

What's Next?

The paper's source code is already available. Developers can experiment with the Shadertoy for opacity correction and integrate the method into their pipelines. The hierarchical culling approach can be adapted to other point-based renderers.