Dynamic Many-Light Sampling for Real-Time Ray Tracing

Pierre Moreau
NVIDIA
Lund University

Matt Pharr
NVIDIA

Petrik Clarberg
NVIDIA

High-Performance Graphics, 2019

Abstract

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.

News

  • 2021-11-24: Tweaks to the BibTeX entry.
  • 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.

Downloads

Paper
BibTeX entry
@inproceedings{ Moreau2019,
  author        = {Moreau, Pierre and Pharr, Matt and Clarberg, Petrik},
  title         = {Dynamic Many-Light Sampling for Real-Time Ray Tracing},
  DOI           = {10.2312/hpg.20191191},

  editor        = {Steinberger, Markus and Foley, Tim},
  publisher     = {The Eurographics Association},
  address       = {Goslar, {DEU}},
  booktitle     = {High-Performance Graphics - Short Papers},
  year          = {2019},
  ISSN          = {2079-8687},
  ISBN          = {978-3-03868-092-5},

  eventdate     = {2019-07-08–2019-07-10},
  venue         = {Strasbourg, {FRA}}
}
Slides
Presentation at HPG 2019 in Strasbourg (pdf) (pptx)
Code
Part of Falcor's 4.0 release.
Videos

Videos

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