Here are some PBRT renders I made, to compare between using photon mapping and using regular raybouncing. I recompiled PBRT with the advanced Photon Mapping Integrator (C++ code available here) to speed up the Final Gathering algorithm. There’s still a lot of noise in the final image, but the caustics are clearly visible.

I’ve also made a (failed) attempt at subsurface scattering, but it’s a nice render anyway:

If you want to experiment with Physically Based Rendering, PBRT is the tool to use. Unfortunately, the latest builds (>1.03) have some incomplete instructions on how to build PBRT on your own machine. I’ve built it on Ubuntu 9.10 and 10.04 using the following instructions:

  • PBRT needs the OpenEXR libraries, but unlike it mentions in its makefile, just installing openexr and libopenexr-dev is not enough. The full apt-get install line should read:
    sudo apt-get install openexr openexr-viewers libopenexr-dev libilmbase-dev.
  • The makefile looks for EXR libraries in /usr/local/*, while ubuntu installs them in /usr/lib. The following lines in the makefile should be changed:
    EXRINCLUDE = -I/usr/local/include/OpenEXR to EXRINCLUDE = -I/usr/include/OpenEXR
    EXRLIBDIR = -L/usr/local/lib
    to EXRLIBDIR = -L/usr/lib
  • PBRT should compile now, by running make in the source directory.
  • Before you can render scenes, you should set the PBRT_SEARCHPATH environment variable. In a terminal, type:
    export PBRT_SEARCHPATH = /location/to/pbrt/bin
    (the bin folder was created in the make process)

Well, I hope this is a timesaver! :)

Code is poetry. Please, Suffusion WordPress theme by Sayontan Sinha