Rendering Polarization Effects
Matt Hilliard, Pieter Panman, May 8th 2003
Objective
The goal of this project was to reproduce the sort of
polaration-related effects visible to someone wearing polarized
sunglasses. In the real world this generally means being able to see
into bodies of water or through panes of glass when without the
polarized sunglasses there would be too much reflection to do so.
Initial Approach
After some initial research we decided to attempt a holistic model for
polarization phenomena. We located a research paper describing the
authors' integration of polarization effects with the Torrence-Sparrow
reflectance model. The result was an entirely physically-based
rendering system capturing all the normal characteristics of reflection
as well as polarization phenomona. Polarization in this scheme was
defined as part of 2x2 coherence matrices which stored information both
about the polarization as well as the overall intensity of the light.
Regrettably, the mathmatics behind both this representation of light as
well as the Torrence-Sparrow model itself in the end defeated us. The
paper we were using did not explain its implementation very well, and
there are not many other cases of implementation of this effect in
computer graphics to work from. Additionally, generally speaking
analysis on the level of what were thinking is usually done in medical
science or particle physics Also, neither of us were trained in
electromagnetic physics beyond the introductory level and this proved to
be a much more significant obstacle to understanding the math than we
had expected.
Simplified Approach
With time running out and no progress being made on the approach
described above, we took a simpler path. Instead of a super-high
fidelity simulation, we modeled an approximation designed to achieve the
effects stated in the objective. We modified lrt's photon mapper to
attenuate specular reflection off a glass surface based on the Brewster
Angle. The Brewster Angle is the angle at which all specular
reflecting light is completely polarized. Using an unfortunately
arbitrary function we completely attentuate light reflecting at the
Brewster angle but smoothly ramp up to not attentuating it at all past
15 degrees to either side of the Brewster Angle. The Brewster Angle is
defined as the arctan of the ratio of the indices of refraction at the
interface. For our implementation we use the index of refraction given
in the rib file and assume the other side of the interface is air (and
thus 1.0).
Results
We ran into several limitations with LRT. First, we could not get
natural lighting to work with photon mapping. Then the heightfield
segfaults decently when photon mapping it. So we had to make do with a
texture and point lights.
Although time constraints did not allow us to put together nearly as
nice a scene as we had hoped, we do have images to show the effect in
action.
The first picture is the scene rendered using the stock LRT at a 30
degree incline from the water surface. Clearly, everything reflects from
the background, and it is very hard to see underwater.

The second picture is the same scene rendered with the modified LRT. In
this picture it is clear that at the brewster angle for water, almost
all the reflections are reduced, and it is much easier to see the
bottom. The half ring is where the angle of incidence to the water is
close to the brewster angle. Note that the face that's underwater is
also more visible.

For the grand finale, we have composed a short movie that shows the
effect as we go from an angle of 10 degrees to 45. Due to time
constraints it increments in 5 degree jumps, but with a little fading it
shows clearly the effect of filtering the polarized reflections.
Download Movie
Also, here are the other images that are in the
movie.
The zipped file that contains all the changes and rib files is here. To render a scene, type "lrt
decls.rib new.rib face.rib newend.rib".
Interesting pictures
Of course we must conclude with some interesting pictures we came up
with during this project.

In this image, the lightsources reflect off of the water and do some
funky caustics on the sky (okay, so not realistic), which then reflect
on the water into the eye.

Yeah.. okay, so that black thing is an area light. It is reflecting on
the sphere, and apparently it is giving off light, as the wall behind it
picks it up. Cool.