Path Verification for Dynamic Indirect Lighting

Pierre Moreau
Lund University

Michael Doggett
Lund University

Erik Sintorn
Chalmers University of Technology

arXiv:2111.06906, November 2021

Abstract

In this paper we present a technique that improves rendering performance for real-time ith ray in the presence of dynamic lights and objects. In particular we verify photon paths from the previous frame against dynamic objects in the current frame, and show how most photon paths are still valid. When using area lights, we use a data structure to store light distribution that tracks light paths allowing to be reused when the light source is moving in the scene. We also show that by reusing paths when the error in the reflected energy is below a threshold valuing a screen space photon splatting rendering engine. By reusing photon paths and applying our error threshold, our method can reduce the number of rays traced by up to 5×, and improve performance by up to 2×.

News

  • 2021-11-24: Initial upload.

Downloads

Paper
BibTeX entry
@misc{ Moreau2021,
  author        = {Moreau, Pierre and Doggett, Michael and Sintorn, Erik},
  title         = {Path Verification for Dynamic Indirect Lighting},

  eprint        = {2111.06906},
  archivePrefix = {arXiv},
  primaryClass  = {cs.GR}
}
Videos

Videos

All videos were captured in real-time on an NVIDIA Titan X GPU (with 12 GB of VRAM).

Animation in Conference with the Armadillo using 2 million light paths of up to 7 bounces — On the left (or top), baseline (i.e. no reuse). In the middle, our basic reuse approach. On the right (or bottom), our error-based reuse approach.
Animation in Conference with bunnies and a teapot using 2 million light paths of up to 7 bounces — On the left (or top), baseline (i.e. no reuse). In the middle, our basic reuse approach. On the right (or bottom), our error-based reuse approach.
Animation in “Maison à ossature bois” with a flash light using 1 million light paths of up to 7 bounces — On the left (or top), baseline (i.e. no reuse). In the middle, our basic reuse approach. On the right (or bottom), our error-based reuse approach.