① A consequence of Fermat’s principle from optics is that
light traveling from a point in a medium with index of refraction
to a point in a medium with index of refraction
will follow a path that minimizes the time to get from the first point to
the second point. Snell’s law can be shown to follow from this fact
directly.
Consider light traveling between two points and separated by
a planar boundary. The light could potentially pass through the boundary
while traveling from to at any point on the boundary (see
Figure 8.25, which shows two such possible points
and ). Recall that the time it takes light to travel between two
points in a medium with a constant index of refraction is proportional to
the distance between them times the index of refraction in the medium.
Using this fact, show that the point on the boundary that minimizes
the total time to travel from to is the point where .
Figure 8.25: Derivation of Snell’s Law. Snell’s law can be derived using
Fermat’s principle, which says that light will follow the path that takes
the least amount of time to pass between two points. The angle of
refraction at the boundary between two media can thus be shown to
be the one that minimizes the time spent going from to a point
on the boundary plus the time spent traveling the distance from that point to .
③ Read the papers of Wolff and Kurlander (1990) and
Tannenbaum, Tannenbaum, and Wozny (1994), and apply some of the techniques
described to modify pbrt to model the effect of light polarization. Set
up scenes and render images of them that demonstrate a significant
difference when polarization is accurately modeled.
③ Construct a scene with an actual geometric model of a rough
plane with a large number of mirrored microfacets, and illuminate it with an
area light source.
Place the camera in the scene such that a very large number of
microfacets are in each pixel’s area, and render images of this scene using
hundreds or thousands of pixel samples. Compare the result to using a flat
surface with a microfacet-based BRDF model. How well can you get the two
approaches to match if you try to tune the microfacet BRDF parameters? Can
you construct examples where images rendered with the true microfacets are
actually visibly more realistic due to better modeling the effects of
masking, self-shadowing, and interreflection between microfacets?
③ Extend pbrt to be able to more accurately render
interesting surfaces like wood (Marschner et al. 2005), cloth (Sattler et al. 2003), or car paint (Günther et al. 2005). Render images
showing better visual results than when existing reflection functions in
pbrt are used for these effects.
③ Implement a simulation-based approach to modeling reflection
from complex microsurfaces, such as the one described by Westin, Arvo, and Torrance (1992). Modify pbrt so that you can provide a description of the
microgeometry of a complex surface (like cloth, velvet, etc.), fire rays at
the geometry from a variety of incident directions, and record the
distribution and throughput for the rays that leave the surface. (You will
likely need to modify the PathIntegrator from
Chapter 14 to determine the distribution of
outgoing light.) Record the distribution in a 3D table if
the surface is isotropic or a 4D table if it is anisotropic,
and use the table to compute BRDF values for rendering images. Demonstrate
interesting reflection effects from complex surfaces using this approach.
Investigate how the size of the table and the number of samples taken to
compute entries in the table affect the accuracy of the final result.
② Although pbrt features a Curve shape that
provides fairly efficient intersection tests between rays and parametric
curves (Section 3.7), it lacks a reflection model for hair.
Choose one of the models described in the “Further Reading” section such
as Marschner et al.’s (2003) or d’Eon et al.’s (2011), and implement it in
pbrt. Either find a geometric model of hair or generate hair
procedurally, and render images using your implementation.