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)