Realistic Image Synthesis Using Photon Mapping

This chapter contains several different techniques for making a photon-mapping implementation faster and more efficient. Some of these ideas are fairly general, some are very important (such as irradiance caching), and some are special tricks for the photon map.
The irradiance caching idea was introduced by Ward et al. in 1988 [118] as a method for speeding up the computation of indirect illumination (color bleeding) in a Monte Carlo ray tracer ( Radiance [116]). It is a method for caching and re-using (via interpolation) irradiance values on Lambertian surfaces. As mentioned in Chapter 9 it can (and should!) be used in the rendering step of the two-pass photon-mapping algorithm to cache irradiance values at Lambertian surfaces.
Indirect illumination on diffuse surfaces is often the most costly component to compute in a Monte Carlo ray tracer, since it requires a large number of sample rays. This is the case even in the two-pass photon-mapping algorithm where only the first bounce of diffuse illumination is computed. Speeding up this computation is very important.
The irradiance at a location, x, on a diffuse surface is computed by sampling the incident radiance above x. This is equivalent to evaluating the integral in Equation 2.18. Instead of sampling the hemisphere uniformly, we can include the cosine from the diffuse BRDF, which gives the following equation for sampling the irradiance:
| (11.1) | |
where
| (11.2) | |
Here ? 1 ? [0,1] and ? 2 ? [0,1] are uniformly distributed random numbers,...