You are previewing Physically Based Rendering, 2nd Edition.
O'Reilly logo
Physically Based Rendering, 2nd Edition

Book Description

Physically Based Rendering, Second Edition describes both the mathematical theory behind a modern photorealistic rendering system as well as its practical implementation. A method known as "literate programming" combines human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The result is a stunning achievement in graphics education. Through the ideas and software in this book, you will learn to design and employ a full-featured rendering system for creating stunning imagery.

This new edition greatly refines its best-selling predecessor by streamlining all obsolete code as well as adding sections on parallel rendering and system design; animating transformations; multispectral rendering; realistic lens systems; blue noise and adaptive sampling patterns and reconstruction; measured BRDFs; and instant global illumination, as well as subsurface and multiple-scattering integrators. These updates reflect the current state-of-the-art technology, and along with the lucid pairing of text and code, ensure the book's leading position as a reference text for those working with images, whether it is for film, video, photography, digital design, visualization, or gaming.

The author team of Matt Pharr, Greg Humphreys, and Pat Hanrahan garnered a 2014 Academy Award for Scientific and Technical Achievement from the Academy of Motion Picture Arts and Sciences based on the knowlege shared in this book.The Academy called the book a "widely adopted practical roadmap for most physically based shading and lighting systems used in film production."



  • The book that won its authors a 2014 Academy Award for Scientific and Technical Achievement from the Academy of Motion Picture Arts and Sciences
  • New sections on subsurface scattering, Metropolis light transport, precomputed light transport, multispectral rendering, and much more
  • Includes a companion site complete with source code for the rendering system described in the book, with support for Windows, OS X, and Linux: visit www.pbrt.org
  • Code and text are tightly woven together through a unique indexing feature that lists each function, variable, and method on the page that they are first described

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Endorsement
  5. Copyright
  6. Dedication
  7. About the Authors
  8. Preface
  9. Chapter 1: Introduction
    1. 1.1 Literate Programming
    2. 1.2 Photorealistic Rendering and the Ray-Tracing Algorithm
    3. 1.3 pbrt: System Overview
    4. 1.4 How to Proceed Through This Book
    5. 1.5 Using and Understanding the Code
    6. Further Reading
    7. Exercise
  10. Chapter 2: Geometry and Transformations
    1. 2.1 Coordinate Systems
    2. 2.2 Vectors
    3. 2.3 Points
    4. 2.4 Normals
    5. 2.5 Rays
    6. 2.6 Three-Dimensional Bounding Boxes
    7. 2.7 Transformations
    8. 2.8 Applying Transformations
    9. 2.10 Differential Geometry
    10. Further Reading
    11. Exercises
  11. Chapter 3: Shapes
    1. 3.1 Basic Shape Interface
    2. 3.2 Spheres
    3. 3.3 Cylinders
    4. 3.4 Disks
    5. 3.5 Other Quadrics
    6. 3.6 Triangles and Meshes
    7. *3.7 Subdivision Surfaces
    8. Further Reading
    9. Exercises
  12. Chapter 4: Primitives and Intersection Acceleration
    1. 4.1 Primitive Interface and Geometric Primitives
    2. 4.2 Aggregates
    3. 4.3 Grid Accelerator
    4. 4.4 Bounding Volume Hierarchies
    5. 4.5 Kd-Tree Accelerator
    6. 4.6 Debugging Aggregates
    7. Further Reading
    8. Exercises
  13. Chapter 5: Color and Radiometry
    1. 5.1 Spectral Representation
    2. 5.2 The Sampledspectrum Class
    3. 5.3 RGBSpectrum Implementation
    4. 5.4 Basic Radiometry
    5. 5.5 Working with Radiometric Integrals
    6. 5.6 Surface Reflection
    7. Further Reading
    8. Exercises
  14. Chapter 6: Camera Models
    1. 6.1 Camera Model
    2. 6.2 Projective Camera Models
    3. 6.3 Environment Camera
    4. Further Reading
    5. Exercises
  15. Chapter 7: Sampling and Reconstruction
    1. 7.1 Sampling Theory
    2. 7.2 Image Sampling Interface
    3. 7.3 Stratified Sampling
    4. *7.4 Low-Discrepancy Sampling
    5. *7.5 Best-Candidate Sampling Patterns
    6. 7.6 Adaptive Sampling
    7. 7.7 Image Reconstruction
    8. 7.8 Film and the Imaging Pipeline
    9. Further Reading
    10. Exercise
  16. Chapter 8: Reflection Models
    1. 8.1 Basic Interface
    2. 8.2 Specular Reflection and Transmission
    3. 8.3 Lambertian Reflection
    4. 8.4 Microfacet Models
    5. 8.5 Fresnel Incidence Effects
    6. 8.6 Measured BRDFs
    7. Further Reading
    8. Exercise
  17. Chapter 9: Materials
    1. 9.1 BSDFs
    2. 9.2 Material Interface and Implementations
    3. 9.3 Bump Mapping
    4. Further Reading
    5. Exercise
  18. Chapter 10: Texture
    1. 10.1 Sampling and Antialiasing
    2. 10.2 Texture Coordinate Generation
    3. 10.3 Texture Interface and Basic Textures
    4. 10.4 Image Texture
    5. 10.5 Solid and Procedural Texturing
    6. 10.6 Noise
    7. Further Reading
    8. Exercise
  19. Chapter 11: Volume Scattering
    1. 11.1 Volume Scattering Processes
    2. 11.2 Phase Functions
    3. 11.3 Volume Interface and Homogeneous Media
    4. 11.4 Varying-Density Volumes
    5. 11.5 Volume Aggregates
    6. 11.6 The Bssrdf
    7. Further Reading
    8. Exercises
  20. Chapter 12: Light Sources
    1. 12.1 Light Interface
    2. 12.2 Point Lights
    3. 12.3 Distant Lights
    4. 12.4 Area Lights
    5. 12.5 Infinite Area Lights
    6. Further Reading
    7. Exercises
  21. Chapter 13: Monte Carlo Integration I: Basic Concepts
    1. 13.1 Background and Probability Review
    2. 13.2 The Monte Carlo Estimator
    3. 13.3 Basic Sampling of Random Variables
    4. *13.4 Metropolis Sampling
    5. 13.5 Transforming Between Distributions
    6. 13.6 2D Sampling with Multidimensional Transformations
    7. Further Reading
    8. Exercises
  22. Chapter 14: Monte Carlo Integration II: Improving Efficiency
    1. 14.1 Russian Roulette and Splitting
    2. 14.2 Careful Sample Placement
    3. 14.3 Bias
    4. 14.4 Importance Sampling
    5. 14.5 Sampling Reflection Functions
    6. 14.6 Sampling Light Sources
    7. 14.7 Volume Scattering
    8. Further Reading
    9. Exercises
  23. Chapter 15: Light Transport I: Surface Reflection
    1. 15.1 Direct Lighting
    2. 15.2 The Light Transport Equation
    3. 15.3 Path Tracing
    4. 15.4 Instant Global Illumination
    5. 15.5 Irradiance Caching
    6. 15.6 Particle Tracing and Photon Mapping
    7. *15.7 Metropolis Light Transport
    8. Further Reading
    9. Exercises
  24. Chapter 16: Light Transport II: Volume Rendering
    1. 16.1 The Equation of Transfer
    2. 16.2 Volume Integrator Interface
    3. 16.3 Emission-Only Integrator
    4. 16.4 Single Scattering Integrator
    5. 16.5 Subsurface Scattering
    6. Further Reading
    7. Exercises
  25. Chapter 17: Light Transport III: Precomputed Light Transport
    1. 17.1 Basis Functions: Theory
    2. 17.2 Spherical Harmonics
    3. 17.3 Radiance Probes
    4. 17.4 Precomputed Diffuse Transfer
    5. 17.5 Precomputed Glossy Transfer
    6. Further Reading
    7. Exercises
  26. Chapter 18: Retrospective and the Future
    1. 18.1 Design Retrospective
    2. 18.2 Throughput Processors
    3. 18.3 Conclusion
  27. Utilities
    1. A.1 Main Include File
    2. A.2 Image File Input and Output
    3. A.3 Communicating with the User
    4. A.4 Probes and Statistics
    5. A.5 Memory Management
    6. A.6 Mathematical Routines
    7. A.7 Octrees
    8. A.8 Kd-Trees
    9. A.9 Parallelism
    10. Further Reading
    11. Exercises
  28. Scene Description Interface
    1. B.1 Parameter Sets
    2. B.2 Initialization and Rendering Options
    3. B.3 Scene Definition
    4. B.4 Adding new Object Implementations
    5. Further Reading
    6. Exercises
  29. Index of Fragments
  30. Index of Classes and their Members
  31. Index of Miscellaneous Identifiers
  32. References
  33. Index
  34. Colophon