O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Physically Based Rendering, 3rd Edition

Book Description

Physically Based Rendering: From Theory to Implementation, Third Edition, describes both the mathematical theory behind a modern photorealistic rendering system and its practical implementation. Through a method known as 'literate programming', the authors combine 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, users will learn to design and employ a fully-featured rendering system for creating stunning imagery. This completely updated and revised edition includes new coverage on ray-tracing hair and curves primitives, numerical precision issues with ray tracing, LBVHs, realistic camera models, the measurement equation, and much more. It is a must-have, full color resource on physically-based rendering.



  • Presents up-to-date revisions of the seminal reference on rendering, including new sections on bidirectional path tracing, numerical robustness issues in ray tracing, realistic camera models, and subsurface scattering
  • Provides the source code for a complete rendering system allowing readers to get up and running fast
  • Includes a unique indexing feature, literate programming, that lists the locations of each function, variable, and method on the page where they are first described
  • Serves as an essential resource on physically-based rendering

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Inside Front Cover
  5. Copyright
  6. Dedication
  7. About the Authors
  8. Preface
    1. Audience
    2. Overview and goals
    3. Changes between the first and second editions
    4. Changes between the second and third editions
    5. Acknowledgments
    6. About the cover
    7. Additional reading
  9. 01: 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 Parallelization of pbrt
    5. 1.5 How to proceed through this book
    6. 1.6 Using and understanding the code
    7. 1.7 A brief history of physically based rendering
    8. Further reading
    9. Exercise
  10. 02: Geometry and Transformations
    1. 2.2 Vectors
    2. 2.3 Points
    3. 2.4 Normals
    4. 2.5 Rays
    5. 2.6 Bounding boxes
    6. 2.7 Transformations
    7. 2.8 Applying transformations
    8. 2.9 *Animating transformations
    9. 2.10 Interactions
    10. Further reading
    11. Exercises
  11. 03: 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 Triangle meshes
    7. * 3.7 Curves
    8. *3.8 Subdivision surfaces
    9. * 3.9 Managing rounding error
    10. Further reading
    11. Exercises
  12. 04: Primitives and Intersection Acceleration
    1. 4.1 Primitive interface and geometric primitives
    2. 4.2 Aggregates
    3. 4.3 Bounding volume hierarchies
    4. 4.4 Kd-tree accelerator
    5. Further reading
    6. Exercises
  13. 05: Color and Radiometry
    1. 5.1 Spectral representation
    2. 5.2 The sampledSpectrum class
    3. 5.3 RGBSpectrum implementation
    4. 5.4 Radiometry
    5. 5.5 Working with radiometric integrals
    6. 5.6 Surface reflection
    7. Further reading
    8. Exercises
  14. 06: Camera Models
    1. 6.1 Camera model
    2. 6.2 Projective camera models
    3. 6.3 Environment camera
    4. *6.4 Realistic cameras
    5. Further reading
    6. Exercises
  15. 07: Sampling and Reconstruction
    1. 7.1 Sampling theory
    2. 7.2 Sampling interface
    3. 7.3 Stratified sampling
    4. * 7.4 The halton sampler
    5. * 7.5 (0, 2)-Sequence sampler
    6. * 7.6 Maximized minimal distance sampler
    7. * 7.7 Sobol’ sampler
    8. 7.8 Image reconstruction
    9. 7.9 Film and the imaging pipeline
    10. FURTHER READING
    11. Exercises
  16. 08: 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 Fourier basis BSDFs
    7. 8.6.1 Spline interpolation
    8. Further reading
    9. Exercises
  17. 09: Materials
    1. 9.1 BSDFs
    2. 9.2 Material interface and implementations
    3. 9.3 Bump mapping
    4. Further reading
    5. Exercises
  18. 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. Exercises
  19. 11: Volume Scattering
    1. 11.1 Volume scattering processes
    2. 11.2 Phase functions
    3. 11.3 Media
    4. 11.4 The bssrdf
    5. Further reading
    6. Exercises
  20. 12: Light Sources
    1. 12.1 Light emission
    2. 12.2 Light interface
    3. 12.3 Point lights
    4. 12.4 Distant lights
    5. 12.5 Area lights
    6. 12.6 Infinite area lights
    7. Further reading
    8. Exercises
  21. 13: Monte Carlo Integration
    1. 13.1 Background and probability review
    2. 13.2 The monte carlo estimator
    3. 13.3 Sampling random variables
    4. *13.4 Metropolis sampling
    5. 13.5 Transforming between distributions
    6. 13.6 2D Sampling with multidimensional transformations
    7. 13.7 Russian roulette and splitting
    8. 13.8 Careful sample placement
    9. 13.9 Bias
    10. 13.10 Importance sampling
    11. Further reading
    12. Exercises
  22. 14: Light Transport I: Surface Reflection
    1. 14.1 Sampling reflection functions
    2. 14.2 Sampling light sources
    3. 14.3 Direct lighting
    4. 14.4 The light transport equation
    5. 14.5 Path tracing
    6. Further reading
    7. Exercises
  23. 15: Light Transport II: Volume Rendering
    1. 15.1 The equation of transfer
    2. 15.2 Sampling volume scattering
    3. 15.3 Volumetric light transport
    4. *15.4 Sampling subsurface reflection functions
    5. *15.5 Subsurface scattering using the diffusion equation
    6. Further reading
    7. Exercises
  24. *16: Light Transport III: Bidirectional Methods
    1. 16.1 The path-space measurement equation
    2. 16.2 Stochastic progressive photon mapping
    3. 16.3 Bidirectional path tracing
    4. 16.4 Metropolis light transport
    5. Further reading
    6. Exercises
  25. 17: Retrospective and the Future
    1. 17.1 Design retrospective
    2. 17.2 Alternative hardware architectures
    3. 17.3 Conclusion
  26. A: 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 Memory management
    5. A.5 Mathematical routines
    6. A.6 Parallelism
    7. A.7 Statistics
    8. Further reading
    9. Exercises
  27. B: 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
  28. C: Index of Fragments
  29. D: Index of Classes and their Members
  30. E: Index of Miscellaneous Identifiers
  31. References
  32. Subject Index
  33. Physically Based Rendering
    1. From Theory to Implementation
  34. Inside Back Cover