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

Render captured and generated 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.

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.
  2. Accept by opacity. A hit with opacity α becomes fully opaque with probability α; otherwise it is skipped.
  3. Keep the nearest accepted hit. Farther work is clipped away, so each ray shades at most one Gaussian.
  4. Accumulate over samples. Averaging these binary 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 objects, single-object captures, and scene-scale reconstructions.

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

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.

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}
}