Dynamic Many-Light Sampling for Real-Time Ray Tracing

Pierre Moreau
Lund University

Matt Pharr

Petrik Clarberg

High-Performance Graphics, 2019


Monte Carlo ray tracing offers the capability of rendering scenes with large numbers of area light sources---lights can be sampled stochastically and shadowing can be accounted for by tracing rays, rather than using shadow maps or other rasterization-based techniques that do not scale to many lights or work well with area lights. Current GPUs only afford the capability of tracing a few rays per pixel at real-time frame rates, making it necessary to focus sampling on important light sources. While state-of-the-art algorithms for offline rendering build hierarchical data structures over the light sources that enable sampling them according to their importance, they lack efficient support for dynamic scenes. We present a new algorithm for maintaining hierarchical light sampling data structures targeting real-time rendering. Our approach is based on a two-level BVH hierarchy that reduces the cost of partial hierarchy updates. Performance is further improved by updating lower-level BVHs via refitting, maintaining their original topology. We show that this approach can give error within 6% of recreating the entire hierarchy from scratch at each frame, while being two orders of magnitude faster, requiring less than 1 ms per frame for hierarchy updates for a scene with thousands of moving light sources on a modern GPU. Further, we show that with spatiotemporal filtering, our approach allows complex scenes with thousands of lights to be rendered with ray-traced shadows in 16.1 ms per frame.


  • 2020-01-30: Update comment about the code being available in Falcor 4.0, and link back to the Ray Tracing Gems article.
  • 2019-07-17: Add slides and update author generated version with DigiLib link.
  • 2019-07-15: Add DigiLib link and BibTeX entry.
  • 2019-06-30: Initial upload.


BibTeX entry

@inproceedings {g.20191191,
  booktitle = {High-Performance Graphics - Short Papers},
  editor = {Steinberger, Markus and Foley, Tim},
  title = {{Dynamic Many-Light Sampling for Real-Time Ray Tracing}},
  author = {Moreau, Pierre and Pharr, Matt and Clarberg, Petrik},
  year = {2019},
  publisher = {The Eurographics Association},
  ISSN = {2079-8687},
  ISBN = {978-3-03868-092-5},
  DOI = {10.2312/hpg.20191191}
Presentation at HPG 2019 in Strasbourg (pdf) (pptx)
Part of Falcor's 4.0 release.


All videos were generated using the dumped frames of the animations (and not captured in real-time); it was run on a GeForce RTX 2080 Ti GPU (with 11 GB of VRAM).

Animation in Bistro Exterior — On the left (or top), 2-level BVH rendering at 4 spp. In the middle, 2-level BVH rendering at 4 spp filtered with SVGF. On the right (or bottom), reference.
Animation in Emerald Square — On the left (or top), 2-level BVH rendering at 4 spp. On the right (or bottom), reference.

See also

Last update: Thursday, 10-Sep-2009 13:23:22 CEST
Page Manager: Jonas Wisbrant
Publisher: Department of Computer Science