Practical Global Illumination with Irradiance Caching
The course provides a practical guide to
implementing irradiance caching algorithm to efficiently render flawless images
featuring global illumination. In addition, recent research advances related to
irradiance caching are presented: caching on glossy surfaces, temporal caching,
acceleration through GPU implementation and irradiance decomposition. |
|
the book is out!
get a copy from Amazon
|
Abstract
Since its invention 20 years ago,
irradiance caching has successfully been used to accelerate the 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.
Irradiance caching is essential for making photon mapping efficient.
The objective of the course is twofold. The
first objective is to expose the irradiance caching algorithm along with all
the details and tricks upon which the success of a practical implementation is
dependent. Various image artifacts that the basic algorithm can produce will be
shown along with a recipe to suppress them.
The second objective is to acquaint the
audience with the recent research results that increase the speed and extend
the functionality of 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
or by decomposing the indirect illumination field by distance. Advantages and
disadvantages of those methods will be clearly exposed.
Syllabus
- Introduction (Křivánek)
(8:30 – 8:35 / 5 min)
- What is global illumination, why computing it?
- Course overview
- Stochastic Ray Tracing (Křivánek)
(8:35 – 8:55 / 20 min)
- Diffuse interreflections
- Gathering approach to computing diffuse interreflections
- Final gathering for photon mapping
- Irradiance Caching Algorithm (Ward)
(8:55 – 9:20 / 25 min)
- Spatial coherence of indirect illumination
- Caching strategy
- Weighting function
- Data structure
- Irradiance Gradients
- Irradiance Caching in RADIANCE (Ward)
(9:20 – 9:35 / 15 min)
- Computation of ambient “constant”
- Adaptive super-sampling on hemisphere
- Maximum and minimum record spacing
- Gradient limit on record spacing
- Bump maps using rotation gradient
- Options for excluding surfaces/materials
- Record sharing for multiprocessors
- Implementation Details (Křivánek)
(9:35 – 9:55 / 20 min)
- Minimum record spacing
- Missing small geometry
- Neighbor clamping
- Ray leaking
- Weighting function revisited
- Image sampling
- Irradiance Caching and Photon Maps (Jensen)
(9:55 – 10:15 / 20 min)
Break (10:15 – 10:30 / 15 min)
- Extension to Glossy Surfaces: Radiance Caching (Křivánek)
(10:30 –
10:50 / 20 min)
- Indirect Illumination on Glossy Surfaces
- Incoming radiance representation, spherical harmonics
- Radiance interpolation
- Adaptive radiance caching
- Hardware Implementation (Gautron)
(10:50 – 11:10 / 20 min)
- Irradiance caching: spatial data structure and ray tracing
- Reformulation for efficient GPU implementation
- Irradiance splatting
- GPU-Based hemisphere sampling
- Temporal Coherence (Gautron)
(11:10 – 11:35 / 25 min)
- Irradiance caching leads to flickering in animations
- Temporal coherence of indirect lighting
- Temporal weighting function
- Temporal gradients
- Irradiance Decomposition (Arikan)
(11:35 – 12:00 / 25 min)
- The problems with too many samples near geometric detail
- Decomposing irradiance into nearby and distant terms
- Sparse sampling for distant illumination
- Efficient approximation for near illumination
- Faking global illumination using only nearby objects
- Discussion (All)
(12:00 – 12:15 / 15 min)
References
Links