SKETCH renders orthographic views of 3D scenes using a conventional z-buffer. The Color Plates show some of the rendering techniques that SKETCH supports.
``Sketchy'' rendering styles are essential because they often enable users to focus on the essence of a problem rather than unimportant details. Non-photorealistic rendering draws a user's attention away from imperfections in the approximate scenes she creates while also increasing the scene's apparent complexity and ambiguity. By making scenes more ambiguous, users can get beyond SKETCH's approximate polygonal models to see what they want to see. This is an important concept: we do not believe that sketchy rendering adds noise to a signal; rather we believe that it conveys the very wide tolerance in the user's initial estimates of shape. The user is saying ``I want a box about this long by about that high and about that deep.'' Showing a picture of a box with exactly those dimensions is misleading, because it hides the important information that the dimensions are not yet completely determined.
A line drawing effect is achieved by rendering all polygonal objects completely white, and then rendering the outlines and prominent edges of the scene geometry with multiple deliberately jittered lines; the z-buffer therefore handles hidden-line removal. A charcoal effect is created by mapping colors to grayscale and increasing the ambient light in the scene; a watercolor effect that washes out colors is created by increasing the scene's ambient light. There are a number of other techniques that we would like to explore, including pen and ink style textures, and drawing hidden edges with dashed lines.
Objects are assigned a default random color when they are created to help differentiate them from the scenery. We can also copy colors from one object to another. By just placing the cursor on top of one object and pressing the Shift modifier, we can ``pick up'' that object's color. Then, we can ``drop'' this color on another object by placing the cursor over it and releasing the modifier. We can also explicitly specify colors or textures for objects. In our present implementation, we do this by placing the cursor over the object and typing the name of the color or texture. Although this interface requires the keyboard, it is consistent with SKETCH's interface philosophy of not making users search through a 2D interface for tools to create particular effects. In the future, we expect that voice recognition, perhaps in conjunction with gesturing, will be a more effective way to establish surface properties for objects (and perhaps other operations as well).
Next: Future Work Up: Abstract Previous: Grouping and copying