The creation of photorealistic images of three-dimensional models is central to
computer graphics. Photon mapping, an extension of ray tracing, makes it
possible to efficiently simulate global illumination in complex scenes. Photon
mapping can simulate caustics (focused light, like shimmering waves at the
bottom of a swimming pool), diffuse inter-reflections (e.g., the "bleeding" of
colored light from a red wall onto a white floor, giving the floor a reddish
tint), and participating media (such as clouds or smoke). This book is a
practical guide to photon mapping; it provides both the theory and the
practical insight necessary to implement photon mapping and simulate all types
of direct and indirect illumination efficiently.

# Contents

## 1. Introduction

### 1.1 Realistic Image Synthesis

### 1.2 Global Illumination

### 1.3 Overview of this Book

## 2. Fundamentals of Global Illumination

### 2.1 The Nature of Light

### 2.2 Lighting Terminology

### 2.3 Light Emission

### 2.4 Light Scattering

### 2.5 The Rendering Equation

### 2.6 Light Transport Notation

## 3. Monte Carlo Ray Tracing

### 3.1 Classic Ray Tracing

### 3.2 Path Tracing

### 3.3 Bidirectional Path Tracing

### 3.4 Metropolis Light Transport

## 4. The Photon Mapping Concept

### 4.1 Motivation

### 4.2 Developing the Model

### 4.3 Overview

## 5. Photon Tracing

### 5.1 Photon Emission

### 5.2 Photon Scattering

### 5.3 Photon Storing

## 6. The Photon Map Data Structure

### 6.1 The Data Structure

### 6.2 Photon Representation

### 6.3 The Balanced Kd-Tree

### 6.4 Locating the Nearest Photons Efficiently

## 7. The Radiance Estimate

### 7.1 Density Estimation

### 7.2 Derivation

### 7.3 Algorithm

### 7.4 Filtering

### 7.5 Photon Gathering

## 8. Visualizing the Photon Map

### 8.1 Rendering Caustics

### 8.2 Rendering Color Bleeding

### 8.3 Fast Approximations

### 8.4 Caustics Examples

## 9. A Practical Two-Pass Algorithm

### 9.1 Overview

### 9.2 Solving the Rendering Equation

### 9.3 Pass 1: Photon Tracing

### 9.4 Pass 2: Rendering

### 9.5 Examples

## 10. Participating Media

### 10.1 Light Scattering in Participating Media

### 10.2 The Volume Rendering Equation

### 10.3 The Phase Function

### 10.4 Ray Marching

### 10.5 Photon Tracing

### 10.6 The Volume Radiance Estimate

### 10.7 Rendering Participating Media

### 10.8 Subsurface Scattering

### 10.9 Examples

## 11. Optimization Strategies

### 11.1 Irradiance Caching

### 11.2 Importance Sampling

### 11.3 Visual Importance

### 11.4 Efficient Stratification of Photons

### 11.5 Faster Shadows with Shadow Photons

### 11.6 Precomputed Irradiance

### 11.7 Parallel Computations

## A. Basic Monte Carlo Integration

### A.1 The Sample Mean Method

### A.2 Variance-Reduction Techniques

## B. A Photon Map Implementation in C++

## C. A Cognac Glass Model

## Bibliography

## Index

Last update: September 12, 2005

Henrik Wann Jensen