Rendering is a crucial component of computer graphics― the conversion of a description of a 3D scene into an image for display. Algorithms for animation, geometric modeling, and texturing all must feed their results through some sort of rendering process for the results to be visible in an image. Focusing on realistic images, physically based rendering incorporates ideas from a range of disciplines, including physics, biology, psychology, cognitive science, and mathematics. This book presents the algorithms of modern photorealistic rendering and follows step by step the creation of a complete rendering system. As each new rendering concept is introduced it is also shown implemented in code―there is no better way to understand the subtle and complex process of rendering. The code itself is highly readable, written in the literate programming style that mixes text describing the system with the code that implements it. The result is a stunning achievement in graphics education for students, professionals, and researchers.
*CD-ROM with the source code for a complete rendering system for Windows, OS X, & Linux―with many examples of images created by the system throughout the 4 color text *The code and text are tightly woven together through the technique of literate programming with a unique indexing feature that lists all locations of functions, variables, and methods on the page they are first described *The most complete guide to understanding, designing, and building a rendering system
I re-read this again recently (also the second edition). It has a lot of good information that isn't trivial to find in collected sources. However, there are a couple large flaws. One, the book is way too large for what it is. There's a lot of time spent on design choices of pbrt, which probably aren't that interesting unless you're using pbrt itself. If one works in the field, one might consider some of it naive. Moreover, when describing algorithms, despite allocated enormous amounts of space to the description, the core thread is often poorly explicated. Even knowing how these algorithms work, there were times it seemed a bit puzzling. So, short form, this could be a better book if 66% of it was cut (not specific sections, just that the pressure that that would require would in turn force better editing and clarity).
Still, overall, it is a good point for reaching into a mass of research literature and discusses many of the core topics in the field.
Well, I received this books along with tens of other graphic books, as I was very committed to learn real-time rendering at the time. While it didn't initially help me out, it has won a permanent place on my desk as my first reference on theory. While it might seem from the outset it would be highly specialized towards physically based rendering, the vast majority of the book is useful to all graphics programmers, raytracers especially. Highlights include two chapters on sampling theory and two on montecarlo methods. It's hard to fault it on any subject, perhaps from the fact there's a curious absence of animation, and some of the chapters can feel a bit too introductory. But it's already quite a quite heavy volume.
Important to note that all pictures are nice, glossy, full-color and there's loads of them. Typography and writing are equally excellent.
So, if you're a raytracer, or an OpenGL/DirectX programmer looking for some information on fundamental theory, I suggest you look no further.
I haven't read the whole thing (or even most of it), but what I have read is incredible. Working through it would be a major accomplishment, but it is a great reference. At some point I'd love to either modify their ray tracer or build up my own by following along with the book.