Laser Poisson
~in the absence of fish~


Steven Baker && Sean Arietta


-Introduction-
The initial project that our team devised was to use PBRT to drive an actual physics experiment. (See our proposal.) We decided to focus more on the rendering part of the experiment, and leave the physics to the physicists. There were two main contributions that needed to be accomplished. The first was to implement volumetric photon mapping, and then in turn, use that to drive illumination in our scene. Our inspiration for the experimental model came from the picture below:



Note that we were not attempting to recreate this exact experiment. Our goal was to use this as a model for our setup. We added some extra objects to the scene to show off our system, and eliminated certain aspects that were more "physical" in nature.


-Implementation: Volumetric Photon Mapping-
The main contribution of this project was an implementation of  the paper Efficient Simulation of Light Transport in Scenes with Participating Media using Photon Maps (Jensen and Christensen '98) for PBRT. This included creating a new VolumeIntegrator class that would generate the desired volumetric effects via an additional photon map.

We found it simplest to design a combined surface and  volume integrator. This allowed us to capture interactions between surfaces and volumes, such as volume caustics. We handle the caustic effect in the surface subsection of the class, and hand these photons off to the volumetric integrator once the volume has been intersected.

Modeling of interactions with participating media is implemented using ray marching through the volume. The approach is very similar to that of PBRT's built-in volume integrators, although our implementation supports multiple scattering. Volumes are represented in terms of densities, and absorption and scattering coefficients, using PBRT's  VolumeRegion. In the event of absorption, the photon has been absorbed by the volume, and no contribution is added to the photon map. However, if a scattering event occurs, several steps are taken. The first, is to deposit the photon in the map. The second step is to calculate the new ray direction. We determine this by importance sampling the Henyey-Greenstein phase function with a user specified g parameter.

This process continues until the photon is extinguished. Thus, our system allows an arbitrary number of volumetric scattering bounces. The following classic test scene was rendered by our VolumeIntegrator:



The photons pass from the light through the sphere. The sphere is made of glass and therefore concentrates the photons into a conical region of the volume. This produces a "volume caustic", similar to the one shown in the Jensen and Christensen paper.


-Implementation: The Scene-
The actual scene was modeled in Maya 7.0 Unlimited. The scene was exported to PBRT via Mark Colbert's Maya plugin (http://graphics.cs.ucf.edu/mayapbrt/index.php). The lasers were then added by hand, and the rendering was done using PBRT rather than Maya to produce .exr files. The only light in the scene is from the lasers and their interaction with the surrounding volume. The volume was homogeneous with a scattering albedo of 0.1 (uniform) and an absorption albedo of 0.01 (uniform). The walls and flooring were modeled as shiny metals with a scaled bump map of a marble flooring and a specular texture for a similar marbling effect. We produced three main images, the last of which was submitted as our final rendering:








-Acknowledgments & References-
We would like to thank Greg Humphreys for an extremely enlightening and challenging semester, Pete Weistroffer for his many hours of grading, and the judges Professor James Davis (UC Santa Cruz) and Szymon Rusinkiewicz (Princeton).

[1] Efficient Simulation of Light Transport in Scenes with Participating Media using Photon Maps (Jensen and Christensen '98)