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.

Desk Toy, by Greg Abbas

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