book cover

From movies to video games, computer-rendered images are pervasive today. Physically Based Rendering introduces the concepts and theory of photorealistic rendering hand in hand with the source code for a sophisticated renderer.

Morgan Kaufmann Logo Amazon logo

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. 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 adding sections on parallel rendering and system design; animating transformations; multispectral rendering; blue noise and adaptive sampling patterns and reconstruction; measured BRDFs; 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 games.

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 knowledge 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."

For a preview, you can download both Chapter 7, Sampling and Reconstruction, from the first edition of the book as well as Chapter 4, Primitives and Intersection Acceleration from the second edition.

Matt Pharr is a Software Engineer at Google. He previously co-founded Neoptica, which worked on programming models for graphics on heterogeneous CPU+GPU systems; Neoptica was acquired by Intel. Before Neoptica, Matt was in the Software Architecture group at NVIDIA, co-founded Exluna, and worked in Pixar's Rendering R+D group. He received his Ph.D. from the Stanford Graphics Lab, working under the supervision of Pat Hanrahan. He was also the editor of GPU Gems 2.

Matt Pharr

Greg Humphreys is a Software Engineer at Google. He was previously a member of the OptiX raytracing team at NVIDIA and a professor of Computer Science at the University of Virginia, where he conducted research in both high performance and physically based computer graphics, as well as computer architecture and visualization. Greg has a B.S.E. degree from Princeton, and a Ph.D. in Computer Science from Stanford under the supervision of Pat Hanrahan. When he's not tracing rays, Greg enjoys tournament bridge, knitting, and riding his motorcycle.

Greg Humphreys

You may contact the authors at authors@pbrt.org.

pbrt version 2

The implementation of pbrt-v2, the version of the system that accompanies the second edition of the book, is available from github. (If you don't want to use git, the latest source code is available as a zip file. In addition to the source code to the system, the distribution also includes exporters from a number of modeling systems and example scenes.

See the page on building pbrt for instructions for how to build pbrt on your system.

The source code to pbrt-v2 is available under the BSD License.

example scenes

A number of interesting scenes are also available to use with pbrt.

pbrt version 1

The source code for the version of pbrt that accompanied the first edition of the book (in 2004) is also available from github. It's only useful for historical purposes at this point; the code that shipped with the second edition of the book has numerous improvements.

Depending on your interests, you may find luxrender useful: it's a sophisticated physically-based rendering system, originally forked from pbrt. Its goals include physical correctness, building a strong community of users and developers, and providing good support for exporting scenes from applications like Blender.

The Mitsuba renderer may also be of interest: it is a GPL-licensed physically-based rendering system. It features implementations of a number of state-of-the-art light transport algorithms.

mailing lists

There are a few resources for keeping up to date with pbrt:

The pbrt-announce mailing list
We will send infrequent announcements about bug fixes and new updates to this list. All pbrt users should subscribe. Go to the pbrt-announce subscription page to subscribe or to view the list archives.
pbrt Google group
This group can be subscribed to via email or it can be read online. It's a good resource, with many knowledgeable pbrt users and developers and participating. It is relatively low-volume: usually just a few messages per week.

exporters and converters

scenes and data for rendering

useful related utilities