CSE 557 Final Project

Janet Davis

March 16, 2000

The problem

Although traditional computer graphics strives toward photorealism, human-drawn illustrations are often better at conveying geometric information. Much recent work has focused on using technical illustration techniques for automated rendering of 3D models. Gooch et al. found the following conventions in many technical illustrations:

In their 1998 paper, Gooch et. al. present a lighting model that respects these conventions. Objects' base colors are modulated by global warm and cool terms and blending coefficients. Texture mapping is used to simulate anisotropic metal surfaces.

In his paper on view-dependent geometry, Rademacher extends this model with object-specific coefficients. Furthermore, Raskar and Cohen give several simple methods for drawing silhouette edges of polygonal models.

References

Amy Gooch, Bruce Gooch, Peter Shirly, Elaine Cohen. A Non-Photorealistic Lighting Model For Automatic Technical Illustration. Proceedings of SIGGRAPH 1998. [HTML] [PDF]

Paul Rademacher. View-Dependent Geometry. Proceedings of SIGGRAPH 1999. [HTML]

Ramesh Raskar, Michael Cohen. Image Precision Silhouette Edges. Symposium on Interactive 3D Graphics, Atlanta GA, April 1999. [HTML] [PDF]

Georges Winkenbach and David H. Salesin. Computer-Generated Pen-and-Ink Illustration. Proceedings of SIGGRAPH 94 (Orlando, Florida, July 24-29, 1994). in Computer Graphics, Annual Conference Series, 1994. Available as Technical Report: [Postscript]

Approach

My OpenGL-based implementation allows the user to load a model from a text file and rotate the object in real time. The user can toggle shading, edge drawing, and specular highlights. For lighting, I implemented the Phong-shading approximation to Rademacher's model. (More detail is in the implementation notes below.) A single light provides white specular highlights. A simple wireframe technique is used to draw edge lines. I also implemented Gooch et. al.'s method for depicting metal surfaces.

I also experimented with random stipples used as texture maps. The stipple can be used either to darken or to lay color on the white canvas. Other parameters include the stipple density or threshold, the luminosity difference between the stipple and the background, and whether to vary the difference randomly or hold it constant. I intended the stipple to indicate rough or speckled surfaces. My experiments with stipples suggest that combining tone-based shading Winkenbach and Salesin's work on textures for pen-and-ink drawing shading could give results resembling colored pencil drawings.

Implementation notes

Results

Source and Linux binary: nprlight.tar.gz

Sample scenes: nprlight-scenes.tar.gz

The nib and spring on this mechanical pencil are metal shaded. (The stripes are visible on close inspection.) The specular highlights are unfocused, but bright. The barrel of the pencil has a low k2 and a high k4 to emphasize the purple shade, as suggested by Rademacher.
This statue shows the use of stippling that I originally intended. A dark stipple lies on top of the shading like pencil dots, giving the appearance of stone. The helix is a bright, bluish metal; the base is a matte gray material.
This shows an unexpected result of my experiments with stippling. The mouse's face has a low shininess coefficient, resulting in large specular highlights where the shading is entirely washed out. Around the edges of the face, the density of the stippled shading increases as the normals turn perpendicular to the eye, resulting in an interesting fade effect.
Summary of stippling results