Stochastic Ray Tracing of Transparent 3D Gaussians

Xin Sun, Iliyan Georgiev, Yun (Raymond) Fei, Miloš Hašan

Adobe

Eurographics Symposium on Rendering (EGSR) 2025

A Gaussian-splat seashell inside curved glass and a mesh coffee setup inside a Gaussian-splat room

A sorting-free single-sample Monte Carlo estimator for the opacity-accumulated radiance along any ray. Integrates 3D Gaussian assets inside a conventional Monte Carlo path tracer—complete with shadows, reflections, refractions, depth of field, and mixed mesh geometry—without sorting every Gaussian hit along a ray.

Abstract

3D Gaussian splatting represents detailed scenes with large collections of transparent, view-dependent primitives, but tracing rays through many overlapping Gaussians is difficult to do efficiently. Rasterizers use approximate per-view sorting, while prior ray tracers may require specialized RTX hardware and exhaustive intersection processing. We introduce a stochastic alternative: during one acceleration-structure traversal, every hit is probabilistically treated as opaque or transparent according to its opacity, and only the nearest accepted hit is shaded. This removes per-ray sorting and large intersection buffers, reduces register pressure, and preserves GPU parallelism. The resulting Monte Carlo estimator is unbiased, converges with low variance, and makes rays through Gaussian assets comparable in cost to ordinary mesh-intersection rays. It also fits naturally into production path tracers and runs interactively across GPU and CPU implementations.

Path-tracer integration

Gaussians and meshes, together

Gaussian reconstructions participate naturally in secondary effects and can be composed with conventional geometry and physically based materials.

Refraction, glossy reflection, soft shadows, and depth of field around a Gaussian-splat seashell.
A mesh coffee setup with complex materials, lit inside a reconstructed Gaussian-splat scene.

Quick method intro

Turn opacity into a stochastic event

A ray crossing multiple transparent Gaussian primitives, with accepted intersections marked along the ray
  1. Trace once. A BVH finds candidate Gaussian intersections in any traversal order and issues callbacks.
  2. Accept by opacity. A hit with opacity α becomes fully opaque with probability α; otherwise it is skipped.
  3. Shade the nearest accepted hit. Each ray shades at most one Gaussian.
  4. Accumulate over samples. Averaging these outcomes gives the same expected radiance as ordered alpha compositing, without storing or sorting the full hit list.
OneBVH traversal
Zerointersection sorting
Unbiasedradiance estimate

Key results

Fast convergence

Even one sample per pixel gives a recognizable result; most stochastic-opacity noise is gone by 64 spp.

Room scene rendered at one sample per pixel
1 sample per pixel
Room scene rendered at 64 samples per pixel
64 samples per pixel
12.2 ms our ray tracer

On the 1.28M-Gaussian room scene and an RTX 3090, versus 34.3 ms for 3DGRT. Rasterization remains faster at 3.9 ms, but does not provide the same general path-tracing effects.

Applicability

One renderer, different Gaussian assets

The method works with text-generated and LRM-reconstructed objects, single-object captures, and scene-scale reconstructions. The definition of color (constant, SH, relightable) can be arbitrary. The method supports 2D Gaussians and in fact any primitive whose intersection position, opacity and color along a ray can be defined.

Text-generated boot represented with 3D Gaussians
Generated asset
Captured teddy bear represented with 3D Gaussians
Reconstructed object
Captured outdoor bicycle scene represented with 3D Gaussians
Reconstructed scene

BibTeX

@inproceedings{sun2025stochastic,
  title     = {Stochastic Ray Tracing of Transparent 3D Gaussians},
  author    = {Sun, Xin and Georgiev, Iliyan and Fei, Yun and Ha\v{s}an, Milo\v{s}},
  booktitle = {Eurographics Symposium on Rendering},
  year      = {2025},
  doi       = {10.2312/sr.20251191}
}