A Gentle Introduction to ReSTIR

SIGGRAPH 2023 Courses


Chris WymanMarkus KettunenDaqi Lin
NVIDIANVIDIANVIDIA
   
Benedikt BitterliCem YukselWojciech Jarosz
NVIDIAUniversity of UtahDartmouth College
   
Pawel KozlowskiGiovanni De Francesco
NVIDIACD PROJEKT RED
[Course Webpage]
[Course Notes]
[Course Video]


Abstract

In recent years, reservoir-based spatiotemporal importance resampling (ReSTIR) algorithms appeared out of nowhere to take parts of the realtime rendering community by storm, with sample reuse speeding direct lighting from millions of dynamic lights [Bitterli et al. 2020], diffuse multi-bounce lighting [Ouyang et al. 2021], participating media [Lin et al. 2021], and even complex global illumination paths [Lin et al. 2022]. Highly optimized variants (e.g. [Wyman and Panteleev 2021]) can give 100x efficiency improvement over traditional ray- and path-tracing methods; this is key to achieve 30 or 60 Hz framerates. In production engines, tracing even one ray or path per pixel may only be feasible on the highest-end systems, so maximizing image quality per sample is vital. ReSTIR builds on the math in Talbot et al.’s [2005] resampled importance sampling (RIS), which previously was not widely used or taught, leaving many practitioners missing key intuitions and theoretical grounding. A firm grounding is vital, as seemingly obvious “optimizations” arising during ReSTIR engine integration can silently introduce conditional probabilities and dependencies that, left ignored, add uncontrollable bias to the results. In this course, we plan to:

  1. Provide concrete motivation and intuition for why ReSTIR works, where it applies, what assumptions it makes, and the limitations of today’s theory and implementations;
  2. Gently develop the theory, targeting attendees with basic Monte Carlo sampling experience but without prior knowledge of resampling algorithms (e.g., Talbot et al. [2005]);
  3. Give explicit algorithmic samples and pseudocode, pointing out easily-encountered pitfalls when implementing ReSTIR;
  4. Discuss actual game integrations, highlighting the gotchas, challenges, and corner cases we encountered along the way, and highlighting ReSTIR’s practical benefits.


Course Video



BibTeX

@inproceedings{Wyman:2023:Gentle,
   author = {Chris Wyman and Markus Kettunen and Daqi Lin and Benedikt Bitterli 
             and Cem Yuksel and Wojciech Jarosz and Pawel Kozlowski 
			 and Giovanni De Francesco},
   title = {A Gentle Introduction to ReSTIR: Path Reuse in Real-time},
   booktitle = {ACM SIGGRAPH 2023 Courses},
   year = {2023},
   month = {August},
   location = {Los Angeles, California},
   doi = {10.1145/3587423.3595511},
}