Practical Global Illumination
with Irradiance Caching


SIGGRAPH 2008 Class



Jaroslav Křivánek
Czech Technical University in Prague
Pascal Gautron
Thomson Corporate Research France
Greg Ward
Dolby Canada
 
Henrik Wann Jensen
University of California, San Diego
Eric Tabellion
PDI/DreamWorks
 
Per H. Christensen
Pixar Animation Studios
 

Book

A book on irradiance caching is out. Get a PDF from Morgan & Claypool or a printed copy from Amazon.

Book Cover



Abstract

Since its invention 20 years ago, irradiance caching has been successfully used to accelerate global illumination computation in the Radiance lighting simulation system. Its widespread use had to wait until computers became fast enough to consider global illumination in production rendering. Since then, its use is ubiquitous. Virtually all commercial and open-source rendering software base the global illumination computation upon irradiance caching. Although elegant and powerful, the algorithm often fails to produce artifact-free images. Unfortunately, practical information on implementing the algorithm is scarce.

The objective of the class is twofold. The first and main objective is to expose the irradiance caching algorithm along with all the details and tricks upon which the success of its practical implementation is dependent. Various image artifacts that the basic algorithm can produce will be shown along with a recipe to suppress them. We will also put strong emphasis on practical aspects of irradiance caching integration in production environments and discuss the particularities used in two big production houses, namely PDI/DreamWorks and Pixar.

The second objective is to acquaint the audience with the recent research results that increase the speed and extend the functionality of basic irradiance caching. Those include: exploiting temporal coherence to suppress temporal flickering; extending the caching mechanism to rendering glossy surfaces; accelerating the algorithm by porting it to the GPU. Advantages and disadvantages of those methods will be discussed.


Syllabus

  1. Introduction (Křivánek)
  2. Global Illumination with Monte Carlo Ray Tracing (Křivánek)
  3. Irradiance Caching Algorithm (Ward
  4. Irradiance Caching in RADIANCE (Ward
  5. Problems & Solutions: Implementation Details (Křivánek
  6. Irradiance Caching and Photon Maps (Jensen)
  7. Extension to Glossy Surfaces: Radiance Caching (Křivánek)
  8. Hardware Implementation (Gautron) - written notes
  9. Temporal Coherence (Gautron) - written notes
  10. Irradiance Caching at PDI/DreamWorks (Tabellion)
  11. Irradiance Caching in Pixar’s RenderMan (Christensen)

References

Download complete course notes (except paper reprints)


Related Papers

Gregory J. Ward, Francis M. Rubinstein, and Robert M. Clear. A Ray Tracing Solution for Diffuse Interreflection. In SIGGRAPH ’88.

The first paper on irradiance caching. Describes the overall algorithm (the “lazy evaluation” scheme), derives the weight function and the sample spacing from the split sphere model, and proposes the use of an octree to index the cache records.

Course sections: all

Gregory J. Ward and Paul Heckbert. Irradiance Gradients. In Eurographics Symposium on Rendering. 1992.

This paper introduces the translational and rotational gradients. It describes how the gradients can be estimated from the stratified hemisphere samples and how they are applied in interpolation to obtain smoother indirect illumination.

Course sections: all

Greg Ward Larson and Rob A. Shakespere. Indirect Calculation. Chapter 12 from “Rendering with Radiance: The Art and Science of Lighting Visualization”. Morgan Kaufmann Publishers. 1998.

This book chapter summarizes the contents for the previous two papers with the focus on irradiance caching implementation in the Radiance lighting simulation system. The chapter also gives a summary of Radiance’s parameters for irradiance caching.

Course sections: all

Eric Tabellion and Arnaud Lamorlette. Approximate Global Illumination System for Computer Generated Films. In SIGGRAPH 2004.

This paper gives a high-level description of various tools used at PDI/Dremaworks to support global illumination computation, including irradiance caching. Various modifications of the original irradiance caching algorithms are described, such as a new weight function. Integration of irradiance caching in the proprietary relighting tools is also sketched.

Course sections: 5 (Problems and Solutions: Implementation Details), 10 (Irradiance Caching at PDI/DreamWorks)

Jaroslav Křivánek, Pascal Gautron , Sumanta Pattanaik, and Kadi Bouatouch. Radiance Caching for Efficient Global Illumination Computation. IEEE Transactions on Visualization and Computer Graphics, Vol. 11, No. 5, September/October 2005.

Introduces radiance caching, an extension of irradiance caching to glossy surfaces. A novel gradient computation method is proposed.

Course sections: 7 (Extension to Glossy Surfaces: Radiance Caching)

Jaroslav Křivánek, Pascal Gautron, Kadi Bouatouch, and Sumanta Pattanaik. Improved Radiance Gradient Computation. In SCCG 2005: Proceedings of Spring Conference on Computer Graphics, 2005.

Describes a generalization of Ward and Heckbert’s gradient computation [1992] that can be used for radiance caching. Specifically, the assumption of cosine-proportional hemisphere sampling is lifted. The technique gives better results than the gradient computation described by the original radiance caching paper [Křivánek et al. 2005].

Course sections: 7 (Extension to Glossy Surfaces: Radiance Caching)

Jaroslav Křivánek, Kadi Bouatouch, Sumanta Pattanaik, and Jiří Žára. Making Radiance and Irradiance Caching Practical: Adaptive Caching and Neighbor Clamping. In Rendering Techniques, Proceedings Eurographics Symposium on Rendering, 2006.

Two independent contributions are described. First an adaptive method for radiance and irradiance caching that takes into account the difference in illumination from neighboring records to adapt the record density to actual illumination conditions. This technique is somewhat similar to the irradiance caching implementation described by Per Christensen in Section 11 of the course, but it works in screen space rather than in the parametric surface space. The second contribution is the neighbor clamping heuristic used to improve robustness of irradiance caching.

Course sections: 5 (Problems and Solutions: Implementation Details), 7 (Extension to Glossy Surfaces: Radiance Caching)

Pascal Gautron , Jaroslav Křivánek, Kadi Bouatouch, and Sumanta Pattanaik. Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm. In Proceedings of Eurographics Symposium on Rendering, 2005.

The paper reformulates irradiance caching to make it amenable to GPU implementation. Octree lookups are replaced by splatting the record contributions to the screen. GPU rasterization is used instead of hemisphere sampling. The algorithm gives up to 40x speedup compared to Radiance and affords for interactive walkthroughs with global illumination.

Course section: 8 (Hardware Implementation)

Pascal Gautron, Kadi Bouatouch, and Sumanta Pattanaik. Temporal Radiance Caching. IEEE Transactions on Visualization and Computer Graphics, Vol. 13, No. 5, September/October 2007.

This paper deals with the problem of illumination flickering animations. In addition to spatial interpolation, irradiance (and radiance) is interpolated in time using temporal gradients. The result is a flicker-free animation computed in shorter time than if the the frames were computed independently.

Course section: 9 (Temporal Caching)

Okan Arikan, David Forsyth, and James O'Brien. Fast and Detailed Approximate Global Illumination by Irradiance Decomposition. SIGGRAPH 2005.

This paper reduces the computation time of irradiance caching by reducing the number of cache records (and consequently hemisphere samplings). The indirect illumination field is divided into near and far field. Far field is computed with classical hemisphere sampling but the records can be much more sparsely spaced. The near field is then quickly computed by ignoring local visibility.

Wojciech Jarosz, Craig Donner, Matthias Zwicker, and Henrik Wann Jensen. Radiance caching for participating media. ACM Trans. Graph. Vol. 27, No. 1 (March 2008).

In this paper, irradiance and radiance caching are applied to accelerate global illumination computation in participating media. Gradients for single and multiple scattering terms are derived. The algorithm results in superior quality than photon mapping and faster rendering times than path tracing.

Wojciech Jarosz, Matthias Zwicker Henrik, and Wann Jensen. Irradiance Gradients in the Presence of Participating Media and Occlusions. Eurographics Symposium on Rendering 2008.

This paper shows that some of the assumptions of the common irradiance gradient computation techniques are not valid in scenes with participating media. An irradiance gradient calculation algorithm is presented that takes into account the participating media and yields smoother interpolation. In addition to the gradients derived in the TOG paper [Jarosz et al. 2008], the gradient computation presented here takes visibility changes into account.


Links