HomeAbout the AuthorsDownloadsScenesGalleryReviewsFAQsContentsBibliographyErrataLists and ForumBug TrackingLinks
 

  

pbrt Version 2

The implementation of pbrt-v2, the version of the system that accompanies the second edition of the book, has now been released. In addition to the source code to the system, this distribution also includes exporters from a number of modeling systems and example scenes. (The Windows version also source code and MSVC build rules for the OpenEXR libraries.) See the changelog for the list of changes since the initial alpha release of pbrt-v2 in October of 2009.

The best way to track the latest version of the system is via the git SCM system. The pbrt git repository can be cloned from git://github.com/mmp/pbrt-v2.git. (See the pbrt page on github for more information.)

Alternatively, a recent snapshot of the latest version on github is available in separate packages for Windows and Linux/Mac OSX. The following snapshot represents git commit 5a1f2df611c33c70f8e063a6b43bf458756dc328 at Wed Aug 31 05:06:25 2011

For Linux and OS X, the OpenEXR image libraries are not included and must be downloaded and installed separately if they aren't already available on your system. Most modern package management systems have an option to install OpenEXR.

Example Scenes

A number of interesting scenes are also available to use with pbrt; see the separate page for information about how to download these scenes as well as rendered images of them.

Older Source Code Updates

The fourth patch release to pbrt version 1, fixing numerous mostly-small errors found since the book's release, and including the author-supplied plugins, is now available. The release notes describe all of the changes in this release (and previous releases). Source code is available in separate packages for Windows and Linux/Mac OSX:

We are also providing access to a git repository of the pbrt source code. It is available from git://github.com/mmp/pbrt-v1.git. (See the pbrt page on github for more information.)

The OpenEXR image libraries are no longer included and must be downloaded and installed separately if they aren't already available on your system.

If you need access to the 1.04, 1.03, or 1.02 releases, they are still available:

Tools From the Authors

These add-on tools enhance pbrt's functionality. These are provided directly in the pbrt-v2 distribution, but must be downloaded separately for pbrt-v1.

Plugins From the Authors

These plugin modules extend pbrt to add interesting new functionality. They are directly included in the latest patch releases to pbrt-v1. They are superceded by improved implementations of them in pbrt-v2.
  • Improved photon mapping integrator: this plugin has numerous improvements to the basic photon mapping integrator described in Section 16.5 of Physically Based Rendering. In particular, final gathering is as much as seven times faster, there are fewer artifacts in the final images, and the distribution of rays used for final gathering better matches the indirect lighting distribution. (PDF describing implementation, C++ source code.)
  • Improved infinite area light source sampling: this plugin implements an improved importance sampling method for "infinite area lights", a.k.a. environment map light sources. This method substantially reduces variance in rendered images by accounting for the directional variation of brightness in the environment map. (PDF describing implementation, C++ source code.)
  • Debugging integrator: this plugin allows you to directly visualize certain intermediate calculations, such as the geometric or surface normals. VERY handy when you're trying to figure out why your scene is all screwy. It's very short, so hopefully its use is self-explanatory from the code. (C++ source code.)
  • "Instant global illumination": this plugin implements Wald et al's "instant global illumination" algorithm. This technique is effectively a bidirectional path tracing method that re-uses a small number of paths over all pixels in the image. It does so in a way that gives a result with no noise due to Monte Carlo variance, instead accepting correlation in error across all pixels in the image. It is extremely fast, often on the order of 20% slower than just rendering an image with direct illumination only. (PDF describing implementation, C++ source code.)

Contributed Plugins

Exporters and Converters

 
 

© Copyright 2004-2010 Matt Pharr & Greg Humphreys. All rights reserved.