This book mixes detailed algorithm descriptions with actual code in a book that never loses sight of the "big picture" of physically based ray tracing and image synthesis. Although it is very well written and is not a dry academic book at all, it would help if the reader is already familiar with basic computer graphic techniques, linear algebra, calculus, and optics in order to get the most out of this book. It was never meant to be a replacement for Foley & Van Dam's classic book on computer graphics, even though the first few chapters go over basic computer graphic material. The book includes a website where the source code of the authors' renderer can be downloaded. This code is very well organized and commented so that if you wish to lift individual pieces from the entire software package you can with just a little bit of work. I highly recommend this book to the programmer who wishes to implement physically based rendering in his/her own code or wants to know about the practical implementation of image synthesis techniques. Amazon does not show any details about the book here, so I shall explain the contents in the context of the table of contents:
CHAPTER 01. INTRODUCTION
This chapter talks briefly about all kinds of topics related to ray tracing. It also talks about how to understand the code in the book and the book website.
CHAPTER 02. GEOMETRY AND TRANSFORMATIONS
This chapter is pretty basic computer graphics stuff. It talks about coordinate systems, vectors, arithmetic, scaling, dot and cross products,etc. Applying transformations via matrices is also discussed as well as the representation of points, vectors, normals, rays, and bounding boxes.
CHAPTER 03. SHAPES
More basic computer graphics continues with discussions on spheres, differential geometry, cylinders, and disks, paraboloids, triangles and meshes, and the representation and bounding of all of these shapes.
CHAPTER 04. PRIMITIVES AND INTERSECTION ACCELERATION
This chapter is about accelerating the speed of your graphics through grid acceleration, tree construction and representation, and object instantiation.
CHAPTER 05. COLOR AND RADIOMETRY
XYZ color system is discussed along with radiometric integrals including integrals over projected solid angles, integrals over spherical coordinates, and integrals over area. Beginning in this chapter the math becomes more advanced.
CHAPTER 06. CAMERA MODELS
Projective camera models are discussed along with orthographic, perspective, and environment camera models. This information will already be familiar to students of computer vision.
CHAPTER 07. SAMPLING AND RECONSTRUCTION
Frequency domain techniques are discussed starting with the Fourier transform and ideal sampling and reconstruction. Also, antialiasing techniques are explained.
CHAPTER 08. FILM AND THE IMAGING PIPELINE
This chapter talks about topics such as luminance, photometry, bloom, and imaging pipeline stages.
CHAPTER 09. REFLECTION MODELS
The various reflection models are discussed including specular, Fresnel, Lambertian, Oren-Nayer disfuse reflection, and the Lafortune model.
CHAPTER 10. MATERIALS
Matte, plastic, bump mapping, and other material effects are explained very well.
CHAPTER 11. TEXTURE
We return to frequency models some in this chapter. The texture sampling rate, filtering functions, and mapping in spherical, cylindrical, and planar form are explained. Procedural textures are also discussed including the famous Perlin noise, marble, and windy waves.
CHAPTER 12. VOLUME SCATTERING
This chapter is considered more advanced material, and discusses volume scattering processes, absorption, emission, in and out scattering, phase functions, exponential density, and volume aggregates.
CHAPTER 13. LIGHT SOURCES
All kinds of light sources are described including point lights, spotlights, texture projection lights, distant lights, area lights, and infinite area lights.
CHAPTERS 14 and 15 both discuss Monte Carlo integration techniques including improving efficiency.
CHAPTERS 16 and 17 are about light transport. The first chapter is about surface reflection and the second is about volume rendering.
CHAPTER 18. SUMMARY AND CONCLUSION includes a design retrospective, a discussion of abstraction versus reality, and design alternatives including triangles only and streaming computation.
APPENDIXES- These include sections on utilities, scene description interface, input file formats, an index of code fragments, an index of classes and their members, and finally an index of identifiers.