CS 348B 1995 Rendering Competition
CS 348B - Computer Graphics: Image Synthesis Techniques
Winter quarter, 1995
Instructor: Pat Hanrahan
Teaching assistant: Eric Veach
Press here for a general introduction to these
rendering competitions.
Winner: Lacquered Guitar, by Homan Igehy
The main focus of my work was to correctly simulate the reflections
off of unsanded, lacquered wood. The face of the guitar demonstrates
this best. A scanned image of the actual wood serves as a basis for a
texture map. The color variations in this map are used as a height
field from which a bump map is derived. This bump map is adjusted so
that color variations across the grain cause more of a height
difference than color variations along the grain. This gives a better
correspondence between color and bump. The texture map is tiled
several times, and through some hacking, the mosaic was placed on top
of the guitar as "mosaic map". Furthermore, a "wavy" function is
added to the bump map to simulate the warping of the wood.
Check out this MPEG movie of a reflection crawling across the wood grain.
The bridge, neck, sides, and bottom of the guitar were created in a
similar manner. The fretboard was modeled by a combination of a
texture map, reflection map, and bump map derived from scannings of
the actual fretboard. The strings are modeled by small
parallelepipeds with interpolated normals. The are partially
reflective and partially refractive, mocking the material properties
of nylon strings.
The mirror on the left has that annoying blurring effect found on all
mirrors (though I exaggerate the effect). Because mirrors are just a
layer of silver on the back of a piece of glass, there is a small
amount of reflection of the top layer of the glass. I model this as a
surface phenomenon.
Fire, by Mike Marr
Mike's project had something to do with fire. He hasn't given us his
final images or animations yet.
This image was generated by a C++ program using stochastic sampling to
compute depth-of-field, motion blur, and anti-aliasing effects. The
sampling process is adaptive, using the sample variance as a criterion for
whether to sample further. I also wrote a tool to allow "manual adaptive
sampling," where the user can use the mouse to indicate parts of the image
to focus on. The marble and wall textures both use a function that sums up
a sequence of random waves, but the marble uses this sum to compute a
diffuse color map, whereas the wall uses it as a bump map. The wall's
texture is hard to see, though, because it's so out-of-focus. The plaid
texture is hand-coded from an L. L. Bean catalog. Also, I had the help of
a sampling process that could quickly render rough drafts of a scene by
sampling a small fraction of the pixels.
The Virtual Gallery, by Stephen Peters
This image was inspired from the April '95 cover of Scientific American.
It features paintings from several artists, all texture mapped onto
different surfaces. The floor is a light blue marble, generated with
Perlin's noise function, with a perfectly reflective gazing sphere sitting
in the middle.
For those interested in the artwork, the paintings are, from left to
right, Magritte's "Chateau des Pyrenees", DaVinci's "Mona Lisa", Seurat's
"Sunday Afternoon on the Grande Jatte", Dali's "Persistence of Memory",
and Vermeer's "The Concert". In the sphere you can make out Escher's
"Dewdrop".
Art Gallery, by Andrea Rosso
This scene was created using light ray tracing. This is done by tracing
rays from the light sources in order to capture the specular to diffuse
illumination paths. Notice how the light is reflected on the mirror and
deposited onto the table. The Dali painting was texture mapped onto the
frame and the spot lights were given a slight drop off rate to make them
look more realistic.
Art Gallery II, by Andrea Rosso and Rob Engle
This image is similar to Art Gallery. The dandelion was rendered using
hypertextures (a form of volume rendering). Each spike of the dandelion
was represented using a density function that was modulated by a noise
function on the outer edge of the enclosing sphere. This density function
was used during light ray tracing to attenuate the light cast on the table.
Martini Glass, by Andrea Rosso
This picture shows the caustic caused by light refracted through a martini
glass. This effect was acheived using light ray tracing from a point
source outside the field of view. The surface of the table and the
background wall are both texture mapped.
Last modified: May 23, 1995
Eric Veach,
ericv@cs.stanford.edu