Daniel Lubarov

Books on global illumination

Global illumination is a pretty small field, and so far there aren't a lot of great books on the market. Here are a few that I have found useful.

Physically Based Rendering by Matt Pharr and Greg Humphreys

cover image

This is easily one of the best rendering books on the market right now. It is mathematically rigorous without being difficult to follow. And it's a literary program with high quality C++ code, so if the text doesn't provide sufficient detail on something, you can always consult the code.

I particularly like the authors' selection of topics: they give plenty of breadth without trying to be comprehensive. They don't cover topics like radiosity, which has somewhat fallen out of favor. But when it comes to Monte Carlo methods, they mention a variety of techniques like photon mapping, importance sampling, and bidirectional path tracing. None of these are essential to Monte Carlo integration, but they are useful and it's good to have them in your mental toolbox.

This book is, perhaps intentionally, a bit lacking in practical advice. For example, they don't offer any suggestions for translating arbitrarily intense "spectrums" into RGB colors (which is of course a lossy conversion). They don't tell you the wavelength distribution of the sun, or give much information on actual materials like gold.

I would still recommend this to just about anyone interested in modern rendering methods.

Realistic Image Synthesis Using Photon Mapping by Henrik Wann Jensen

cover image

Photon mapping is a pretty straightforward rendering method which can produce great results, and this is a solid guide from the researcher who pioneered it. It covers some theory, the basic photon mapping process, and some optimizations like irradiance caching.

The only major limitation of photon mapping is that you can get funny effects around the intersection of two surfaces. If a well-lit surface and a darker surface intersect, pixels near the edge of the dark surface will receive irradiance from photons which actually landed on the light surface. The author does offer some tips for mitigating this problem, but there's no silver bullet.

Photon mapping is considered a form of "biased" rendering since once a photon map is generated, the subsequent rendering pass won't converge toward a perfectly correct image. I disagree with that characterization, though, since you can get arbitrarily close to a perfect render by increasing the number of photons. And if you really want an anytime rendering algorithm which converges to the perfect image over time, you can do that. Just keep casting photons continuously, as you render, instead of casting a fixed number of photons in a preprocessing phase.

Advanced Global Illumination by Philip Dutre, Philippe Bekaert and Kavita Bala

cover image

This book is not quite as high quality as the others listed here. There is a lot of redundancy; it seems like the authors split up the chapters and more or less wrote them separately. It's more difficult to follow than the above books, and generally less polished.

Still, there is some good information in here. I would recommend it to someone who has finished the two books above and is interested in learning about some other techniques like radiosity.