Original PDF Flash format interactive-artistic-rendering  


Interactive Artistic Rendering

Interactive Artistic Rendering
Matthew Kaplan
Bruce Gooch
Elaine Cohen
Department of Computer Science
University of Utah
http:
www.cs.utah.edu
==
=
Abstract
We present an algorithm for rendering subdivision surface models
of complex scenes in a variety of artistic styles using an interac-
tively editable particle system. The algorithm is suitable for mod-
eling artistic techniques explicitly by the user, or automatically by
the system. Our approach can simulate a large number of artistic
effects due to the fact that almost any type of mark made on paper
or canvas can be imitated. Any of our artistic effects is customiz-
able by the user through a particle editing interface. The algorithm
maintains complete frame-to-frame coherence, a characteristic re-
quired for good animation, and runs at interactive rates on current
computer graphics workstations.
CR Categories: I.3.0 [Computer Graphics]: General; I.3.6 [Com-
puter Graphics]: Methodology and Techniques.
Keywords: interaction, illustration, non-photorealistic rendering,
silhouettes, lighting models.
(a)
(b)
1
Introduction
Figure 1: (a) An painterly rendering of the Venus de Milo. (b)
Both humans and computer programs can take an input image,
Venus de Milo with a fur texture applied.
scene or geometric representation and produce an output image.
Computers excel at producing photorealistic images that are diffi-
cult for humans to reproduce by hand. On the other hand, artists
have developed systems for expressive abstraction to represent
man artists portray the fundamental meaning or feeling of a scene?”
complex systems of texture, geometry, tone, and lighting using a
A goal has been to find ways in which non-artists can use comput-
few simple pen and ink or paint strokes. This allows artists to con-
ers to generate expressive images or scenes. Evidence can be found
centrate on conveying an idea or feeling instead of being forced to
in the psychophysical research literature to support the idea that the
focus on the details that a photorealistic representation entails.
very simplicity of hand-crafted media serves as a means of interac-
Artists use different abstractions in different circumstances.
tion between the artwork and the viewer [8]. When an artist leaves a
They represent scenes of staggering visual complexity such as
scene incomplete, some of the marks on the medium act as “clues”
grass, trees, fur or scales using expressive strokes that are indicative
for the viewer. The viewer can use these simple ideas or clues to
of the texture but do not describe it in complete detail. To achieve
reconstruct or complete the image by inference [14]. This type of
additional effects, such as dramatic lighting on a smooth surface,
transaction between art and viewer allows the viewer to fill in de-
an artist may use a cross hatching technique to indicate the rela-
tails for himself and, hence, become more involved in the image.
tive light on the object at any point. While these methods are only
The more detailed the image becomes, the less able the viewer is
stylized approximations of the actual texture, object geometry, and
to “fill in the blanks.” When little is left to the imagination, there
lighting, they can be more expressive than photorealistic methods.
are fewer possibilities for meaning or feeling to be assigned to a
By expressive, we mean “effectively conveying the meaning or
piece of art by the viewer. The simple nature of art allows a greater
feeling”. A motivating question behind our work is : “How do hu-
personification of art on an individual level. Stroke based rendering
may enable us to use a computer to emulate handmade art.
Goals of this research were an algorithm and related system
framework that supports artistic rendering with complete frame-to-
frame coherence at interactive rates, to allow a user to completely
control particle placement, size, shape and orientation on a per
object basis, to generate a variety of artistic effects of significant
complexity, and to provide a framework though which other artistic
techniques can be rendered with ease. The program renders scenes
in a variety of artistic styles based on user defined parameters such
as shading models or texture and strokes styles.
Our technique associates particles with the geometry of subdi-
vision surface models. Particles are used to represent hand drawn

Figure 2: A blue fur/leaf geograftal has been placed on a green
regular quadrilateral surface. The white dot illustrates the point at
which the geograftal is located on the surface.
strokes or suggestive geometric features not present in the original
model. These particles can then be interactivly edited by a user
to create artistic effects. The geometry associated with the particles
are rendered at interactive speeds on top of the underlying geometry
based on information derived from the associated surface’s position
in screen space.
2
Related Work
Figure 3: Geograftals are painted onto a ellipsoid model: First two
Particle systems in general have been used extensively in photoreal-
geograftals representing eyes are placed. Then geograftal dots are
istic scenes to render complex textures and objects on top of simple
used to paint facial features on the model. Next, an area of the
geometric structures. Reeves [9] used particle systems to create
model is randomly annotated with geograftal a “hair” texture, and
trees and other complex objects. Fleischer et al. [2] used particle
finally the model and its associated geograftal textures are rotated.
systems to render biologically based cellular textures. Meier [7]
Character likeness courtesy of Comedy Central.
showed that particle based brush strokes could be used to produce
painterly renderings. Her work is a precursor to our technique,
since she introduced the method of using particles to locate fea-
ture defining strokes in order to maintain complete frame-to-frame
general polyhedral meshes. Salisbury et al. [10] demonstrated how
coherence.
impressive pen and ink drawings could be rendered when the user
Smith introduced the idea of graftals as parallel graph grammar
chose the principal directions for strokes to be rendered. Elber [1]
languages that were used with a particle system to create complex
showed that line art for freeform surfaces could be displayed inter-
tree models [12]. An inspiration for this research, Kowalski et
actively. This paper develops methods that use the principal curva-
al. [4] used graftals to render complex textures such as fur and fo-
tures of the polyhedral mesh to decide stroke directions automati-
liage on top of simple models. Their graftal textures demonstrated
cally, which can produce effects similar to both algorithms. Tone
how different hand drawn effects could be generated by a computer.
is defined as the relative amount of light at a surface seen by the
They also introduced the idea of a graftal texture as an aggregate
viewer. Pen and ink renderings have the property of changing tonal
of individual graftals with a fixed location on the visible part of a
values when the same strokes are drawn for a model seen at dif-
model.
ferent scales. Inspired by the method of Salisbury et al. [11] for
The word graftal has grown from Smith’s original definition to
creating scale independent tone for pen and ink drawings, we use
describe a structure that creates surfaces via an implicit model and
scaling functions on our geograftals to recreate the effect of scale
produces data upon request. We further generalize the definition of
independent image tone for pen and ink drawings.
graftals to include procedural geometric entities. In this way we can
precompute as much information as possible about the graftal, in-
cluding the normal, position, and color, while waiting until runtime
3
Geograftal Implementation
to calculate view or lighting dependent qualities such as size, ori-
entation, or highlight placement and color. For clarity, in the rest of
Section 3.1 describes the system implementation.
Section 3.2
this paper we will refer to graftals which use our augmented defini-
presents geograftal generation. In Section 3.3 we discuss draw-
tion as geograftals. Figure 2 illustrates the concept of a geograftal
ing geograftals, and the effect of stored attributes and scaling func-
being applied to a surface.
tions on how the geograftals are drawn on the screen. Finally, in
Our research combines and extends the work of both Meier and
Section 3.4, we introduce multilayer editing of geograftals in an
Kowalski et al. By using geograftal objects, viewpoint invariance
interactive environment to allow simple creation of more complex
is maintained for purposes of animation. Moreover, since each ge-
effects.
ograftal is statically placed on a model’s surface, the creator of a
scene can edit the attributes of any geograftal to obtain full control
over the look and feel of the hand drawn effects that are produced by
3.1
Software Framework
our system. We show how this system can be used to automatically
create other hand drawn effects such as pointillism, colored pencil,
The system renders a mesh of connected quadrilateral sufaces using
oil paintings, impressionist paintings and pen and ink drawings.
OpenGL. Each model within a scene is stored as a list of constituent
Winkenbach and Salesin [16] showed how pen and ink drawings
quadrilateral surfaces which define the mesh. Individual geograftal
could be created for parametric surfaces. Our system can create
objects are stored with each surface. Attributes such as location,
simulated pen and ink drawings that are similar to their results for
width, height, type and color are stored with each geograftal object.

Figure 6: Leaf geograftals on this sphere are shown at even intervals
(a)
(b)
along the
axis. Towards the interior, the geograftals disappear
X
completely.
Figure 4: (a) An imitation of Dr. Seuss’s truffula trees. (b) A mul-
tilayer geograftal texture.
Figure 5: Geograftals are drawn as triangle strips in OpenGL. The
Figure 7: As objects move away from the viewer some of the ge-
basis vectors for this geograftal are simply unit vectors on the
ograftals shrink in size while a randomly selected few grow in size.
X
and
axes.
Y
fur/leaf geograftal is shown in Figure 5. Points that make up these
The type value denotes both the shape of the geograftal and stroke
strips are described as a linear combination of two basis vectors.
effects such as pen, pencil, or paint brush.
Rather than forming an orthonormal basis with the view vector, we
The research we present uses geometry-based procedural objects
use the geograftal normal and the cross product of the geograftal
rather than the graftal texture approach used previously by others.
normal with the view vector as basis vectors. The length of the basis
We associate individual geograftal objects with a surface object that
vectors is specified by user defined width and height values. This
represents the geometry of the model. Each geograftal determines
has the effect of creating realistic foreshortening on the geograftals
at run time how it is to be drawn on the screen. Geograftals also
while maintaining a consistent orientation via the view vector.
have associated scaling functions to control their size and shape.
The hand drawn effect that we are trying to attain has the prop-
erty of being most evident near silhouette edges. Therefore, ge-
ograftal objects are drawn as flush to the screen and as large as
3.2
Generating Geograftals
possible when the geograftal’s normal nears perpendicular with the
There are two goals when generating geograftal objects. One is to
view vector. The property of foreshortening is desirable because it
achieve the simulation of random placement over the surface of the
maximizes the screen space of geograftal objects near silhouettes
object to imitate the hand drawn quality we desire. The other is
and interior cusps.
to have complete control over the placement of specific geograftals
Frame-to-frame coherence is maintained by drawing all of the
for special cases. We can achieve precision placement by allowing
geograftals for every frame. While it isn’t necessary to render back-
the user to select the point on the surface to place the geograftal.
facing surfaces, all of the geograftals must be drawn since they may
We achieve a random placement on a surface by parameterizing the
poke out from behind the object. In any case, they are more likely
surface quadrilateral and then choosing random
and
values.
to be visible after the surface with which they are associated dis-
U
V
These two cases are illustrated by Figure 3. Geograftal normals are
appears or before the surface appears. If only geograftals located
calculated as a linear combination of the normals at the four corner
on front facing surfaces are drawn, jarring “popping” effects occur
points. The type, width and height attributes are specified by the
when a geograftal’s associated surface switches between front or
user.
back facing. Popping occurs when a geograftal suddenly appears
We produce effects similar to those in Kowalski et al. by choos-
or disappears. The same disturbing popping occurs if geograftals
ing random geograftals, based on a user defined density, for all
are no longer drawn in the interior of an object. In order to create
of the surfaces to be textured. The system also allows the user
the illusion that geograftals gradually appear and disappear, we use
to add more geograftals interactively to create the appearance of
scaling functions that affect the size of a geograftal based on the
non-uniform or denser texture coverage of the surface. Due to the
geograftal’s position and orientation in relation to the view vector.
initial random placement of particles, the appearance of a random
Because all geograftals are drawn during every frame and because
texture is created. Since geograftals are associated with the surface
we now change the attributes of the geograftals to create the desired
rather than a texture, we can apply more than one distinct type of
effects, popping no longer occurs. We define the general scaling
geograftal to a surface with this method, resulting in the appear-
function:
ance of multiple textures on the model. An example of geograftal
Geograftal Normal View Vector
(1)
textures is given in Figure 4(a).
F
=
1
,
j

j
G
where
is the scaling factor. This scaling function produces a
F
G
3.3
Drawing Geograftals
value between 0 and 1, where 0 means the geograftal normal is di-
rectly opposite the view vector and 1 means that the geograftal’s
Each geograftal is displayed as an OpenGL triangle strip and each
normal is perpendicular to the view vector. Then, the basis vectors
geograftal silhouette as a OpenGL line strip. A triangle strip for a
that define each geograftal are multiplied by
. This has the effect
F
G

of changing the geograftal’s size and shape continuously over the
Global edits are also possible with our system. By changing
surface of the object. The popping effect is eliminated while main-
global attribute values, we can change the attributes of all of the
taining the style of drawing only geograftals near silhouettes. This
geograftals or just a subset of them. Since we may want to build
creates large geograftals near silhouettes and tiny geograftals in the
a geograftal texture with more than a single type of geograftal, we
interior.
allow for multilayer editing. Each geograftal texture applied to a
Unfortunately, the black edge lines of the small geograftals still
model is represented as a layer. A layer is a set of geograftals com-
disrupt the effect of displaying information only near silhouette
posed of a single geograftal type which are associated as a group.
edges. We solve this problem by creating additional scaling func-
By selecting a layer on a multilayer texture, we can apply changes
tions. The first scales the geograftal edge width, making the edges
just to the geograftals that belong to that specific texture layer. This
drawn near silhouettes more prominent and those drawn in the in-
allows us to composite multiple texture layers on a single model,
terior less visible. This is an effect that artists strive for, making the
achieving intricate multilayer textures as shown in Figure 4(b).
outline of an object bold to create a cohesive effect for the whole
object while giving less importance to individual details [6]. The
second scaling function changes the color of the geograftal edges
4
Shading
to match the color of the object. This creates the illusion that the
geograftal has disappeared near the interior but smoothly appears
Artists often use lighting effects to provide more information about
as it approaches an area where it needs to be drawn. We have found
the shape of an object. Geograftals can be used to convey the same
that constraining
between
and
works well. This enforces
shape information that is conveyed by traditional lighting and shad-
F
0
0:7
G
color scaling only in the interior of the object and draws geograftal
ing as described in Section 5.4. It is convenient to calculate and
silhouettes near model silhouettes in black. An example of how
save lighting information to scale and color geograftals rather than
geograftals scale their width, height and line color is shown in Fig-
use an automated lighting system, such as the one provided by
ure 6.
OpenGL. The particular lighting we present is occlusion free and
When an object is at a greater distance from the viewer,
simulates shadows with sources of negative light. We calculate the
many artists draw a smaller number of disproportionately large
light values for every point on the mesh and then apply smooth
strokes [13]. To avoid removing and adding geograftals as they pass
shading to the surfaces to obtain the appearance of a lit object. The
a distance threshold, we apply scaling functions to the geograftals
value of the light at a surface point is only sensitive to the direction
with distance. We can define a smooth scaling factor for distance:
of the normal at that point relative to the light source. This describes
the shape of the object uniformly over the surface without regard to
Actual Distance Maximum Distance
(2)
shadows. We use the following non-standard equation to describe
F
=
=
D
the light at any point:
where Actual Distance is the actual geograftal distance from the
viewer and Maximum Distance is the maximum distance from the
(3)
C
=
O
+

L
N

L

c
c
D
viewer possible in the viewing frustum. Each geograftal is assigned
a random scaling function of a predetermined type that allows for
where
is object color,
is light color,
is the point normal,
O
L
N
c
c
some of them to grow smaller and some to grow larger with dis-
is the light direction and
is the resultant color. This is a
L
C
D
tance. To minimize the geograftal’s features with distance, we mul-
simple additive light shader that maintains the color of the object.
tiply their feature values by
. To make geograftal features larger
After clamping the value to a valid color range, we apply smooth
F
D
with distance, their feature values are multiplied by
.
shading to the surfaces using the light values for the points to ob-
1
+
1
,
F

D
These are just two of the many scaling functions we have tested that
tain a smoothly lit model. We can obtain interactive rates for this
yield pleasing results.
calculation in complex scenes as reported in Table 1. Geograftals
Scaling by
has the desired effect as shown in Figure 7. We
are shaded by taking their color value from the nearest point on the
F
D
found, however, that leaving the size and number of the geograftals
surface. See Figures 10(a) and 12 for examples of these shading
the same while using a scaling function to decrease the width of
techniques.
the silhouette edges with distance may have a more pleasing ef-
fect. This interactively simulates the effect of line weight depth
cueing. Line weight depth cueing establishes the distance from the
5
Line Drawing
viewer to the model based on the boldness of the silhouette. Artists
use this method to portray three dimensions in a two-dimensional
A number of line drawing effects can be created by using ge-
medium [6].
ograftals to represent strokes on a surface. In Section 5.1 we de-
Quite different effects are created when non-linear functions are
scribe a method of calculating silhouettes and internal cusps. Next,
used to scale the geograftals. We have experimented with these
in Section 5.2 an algorithm for interactive line art is presented.
types of scaling functions but none seem to be as visually pleasing
Finally, in Section 5.5 this algorithm is extended to include other
as the linear examples we have presented.
painting techniques.
3.4
Editing Geograftals
5.1
Interactive silhouette and cusp calculation
Because we specify geograftals as individual objects and geograftal
Silhouettes are lines that describe the shape of the object near out-
textures as the sum of geograftals placed on the surfaces of the mod-
side edges along the polyhedral mesh. Here they are defined be an
els, we are able to edit the geograftal’s attributes individually or all
edge which joins both a front and a back facing surface. We define
at once and save the results. To edit an individual geograftal, the
a cusp as an edge that joins any surfaces whose normals have an
user chooses which geograftal to affect and then changes that ge-
angle of greater than 90 degrees between them.
ograftal’s parameters. The edits update interactively, so the changes
Cusps can be identified in a preprocess, since they are view-
can be seen as they are made. This allows individual geograftals to
independent. The cusp edges can be put in a list and displayed
be “sculpted” on an object as in Figure 3. With this method, dis-
quickly as a set of GL LINES.
tinguishing features can be designed. Since the attributes of every
Silhouettes, however, are defined only in relation to the view vec-
object are fully modifiable, this gives the user the ability to precisely
tor. One of the goals of this work is to provide scene invariance.
model an entire scene.
Markosian et al. [5] showed how to calculate silhouettes quickly,

Here,
is the silhouette width, RGB
S
w
Total is the sum of
the RGB color values at the corner points of the surface,
RGBMax is the maximum RGB color values for those points
and
is the maximum silhouette width. The inner term,
M
S
W
,

RGB
RGB
indicates the relative amount of light
1
,
Total=
Max
on an edge. We next multiply this by the largest pixel width value
for the given edge line to obtain the actual line width for a silhouette
edge
. This results in a silhouette width that changes smoothly
S
w
with the lighting on an object as in Figure 9(b).
5.2
Automatic Line Shading
Artists often use loose and sketchy cross-hatching techniques to il-
lustrate lighting effects on an object with black and white pen and
ink strokes [13] as in Figure 8. We use graftals as stroke objects
to define a texture that responds to light rather than view position.
Stroke computation methods, then interactive display methods are
presented.
5.3
Determining Stroke Attributes
We would like strokes to appear to be randomly placed lines on
the surface of the object. Represented as geograftals, strokes are
randomly placed on the surface using the method described in Sec-
tion 3.2. The geograftal position is used to locate the first point that
Figure 8: Venus model shaded with randomly placed geograftal
defines the stroke line. There are several strategies which may be
strokes.
employed to find the second point that defines the stroke line seg-
ment. To give the effect of random crosshatching, we choose a ran-
Model
Points
Polygons
0 g/p
1 g/p
100 g/p
dom unit vector on the surface plane. Then this vector is multiplied
Sphere
98
96
66
65.1
33
by the stroke length and the result is added to the original position
yielding a second point which defines the end of the stroke. We
3 Spheres
294
288
66
61
16.5
define the length of the stroke to equal the average of the lengths of
Refined Sphere
386
384
65.8
58.1
13.2
the
basis vectors for the local surface quadrilateral. This length
Venus De Milo
4257
4254
62
11.9
1.44
u;
v
is convenient because it prevents the stroke from protruding past
adjacent surfaces and affecting the perceived light of surfaces that
are not immediate neighbors. This constrains the stroke to provide
Table 1: Model information and timings, in frames per second, on a
information about local light only. Perceived light on the model
195Mhz MIPS R10K SGI Indigo 2 with an Extreme graphics card,
is blurred when strokes from a large number of non-local surfaces
for the number of geograftals per polygon. 100 g/p is presented as
overlap.
a pathological case.
Winkenbach et al. [16] previously showed that allowing a user to
choose vector directions in which to draw strokes for a two dimen-
sional scene yields pleasing results. (While this may be effective in
but did not guarantee that every silhouette edge would be found.
an image-based rendering approach, we found it impractical to have
Gooch et al. [3] showed how silhouettes could be rendered using
the user specify directions in our system, since after rotation and
environment maps. The shape of such silhouettes is intriguing but
translation, the vectors may not describe relevant strokes because
does not provide predictable effects. For our purposes, a brute
the objects they were associated with may be in a different screen
force search of all front-facing polygons proved fast enough. As
position.) It is noticeable that users of image-based approaches of-
an example, we were able to achieve 62 frames per second using a
ten choose vectors that seem to closely correspond to the principal
model with 4257 surfaces, displaying both surfaces and silhouettes
curvatures of the surface. We automatically generate this effect by
as shown in Table 1. After calculating the silhouettes for the new
deriving an estimate of the two principal curvatures at each point in
viewpoint, they are put in a list and can be displayed quickly in the
the polyhedral mesh as presented by Taubin [15]. These principal
same fashion as the cusps. Silhouettes calculated by this method are
curvatures can be used to calculate the second point to represent
demonstrated in Figure 9(a). The method presented by Kowalski et
the stroke. This method is similar in spirit to a method presented by
al. obtained a hand drawn look by perturbing the silhouette edges.
Elber [1] and yields strokes which appear consistent with model’s
It is clear that this method is viable here since points in the edge
curvature. The principal curvature vectors for the Venus de Milo
list can be perturbed to obtain this effect, but this may not be prac-
mesh are shown in Figure 9(a). The line art result of such strokes is
tical for preserving scene invariance since random perturbations of
shown in Figure 9(b).
silhouettes edges would lead to inconsistent renderings of a scene.
Since strokes are represented in this system as single lines, they
Artists often draw silhouettes with varying widths to indicate the
may overlap the edge of the mesh surface with which they are as-
lighting, curvature, or distance from the viewer of the object [13].
sociated. Indeed, it is desirable for them to do so. If strokes were
We emulate these effects by changing silhouette line widths with
drawn entirely within each polygon, the viewer would have a clear
a scaling function associated with the light on the surface along
sense of the mesh structure since no strokes would cross any edges.
silhouette edges.
However, strokes rendered in this manner hang off the edges of
silhouettes, leading to a loose and sketchy feel, which is often a
,
,

RGB
RGB
(4)
natural side effect of hand drawn art.
S
=
1
,
Max
M
S
W
w
Total=

5.4
Stroke Shading Model
The stroke shading algorithm requires a potentially large number of
geograftals for each surface. Calculating these strokes at run-time
might be too costly to achieve interactive rates. In order to achieve
interactive rates, we need to precompute a list of the strokes that
might be needed to render tone for each object. Tone (as defined
in Section 2) on a surface is represented by the number of strokes
drawn on each surface quadrilateral.
We define an array of
stroke geograftals for each surface.
N
When objects are initialized, we precompute N strokes and enter
them in this array. We use the lighting values that we calculated
in Section 4 to determine the number of strokes to draw to define
relative tones.
,
,

RGB
RGB
(5)
T
=
1
,
Total=
Max
N
Here,
is the number of strokes to draw to define the tone,
T
RGBTotal is the sum of the RGB color values at the corner
points of the surface, RGBMax is the maximum RGB color val-
ues for those points that make up the surface. The inner term
RGBTotal RGB
, between 0 and 1
=
Max defines a smooth scale S
that represents the relative amount of light at a surface.
is an in-
T
dex into the array of the strokes. When we display the strokes, we
use this index to determine how many strokes to draw. We draw
each stroke whose array index is less than our index bound
. This
T
calculation is quick to update since we never change the strokes.
This algorithm maintains interframe coherence because the same
strokes are drawn under identical lighting conditions. Since only
the lighting model affects the stroke index, viewpoint changes have
(a)
no effect on the strokes drawn. When the strokes are drawn there
is a recurrence of the popping effect. We have found that for suffi-
ciently large
(100 seems to work well in practice), this effect is
N
minimal since the popping occurs as a part of a smooth transition
between line drawn tones within a larger texture.
Salisbury pointed out that the tone of a line drawing is changed
when the drawing is scaled [11]. We use a scaling function that
increases the stroke index as distance from the viewer increases.
This effectively compensates for the relative tone of an object as its
distance from the viewer is changed. Our simulations have shown
that the results of the scaling function depends on factors such as
the surface area of the polygons in the system, and the size of the
viewing frustum relative to the stroke widths and the objects. We
achieve our best results using scaling functions that are tailored by
the user to the specific object and viewing volume. An example of
this is shown in Figure 10(f). Since a precise solution to the tone
matching problem may require significant run time computation for
every viewpoint change, and because we attempt to maintain inter-
active rates, it is currently beyond the scope of this work.
5.5
Colored Line Art
A variety of colored pencil or oil painting effects are achieved by
coloring the stroke lines. Since there is no inherent light or color in
the black strokes applied in the previous section, the strokes were
sufficient to imply the concept of light. When the strokes are col-
ored, they no longer imply lighting. They seem to reveal holes in
the model because lighting is now shown by the color of the strokes
rather than by stroke placement. We present two solutions to this
problem. The first solution is to shade the underlying surfaces. This
is analogous to a painter laying down an underpainting to establish
tone before applying detail. In this case, the strokes are used con-
ceptually as with the geograftal objects described in Section 3. The
strokes are a “hint” of a texture that allow the user to complete the
rest of the texture by inference. The second solution is to increase
(b)
the coverage of the strokes on each surface in an equal way. Here
we allow the user to set the line index into the stroke array for every
Figure 9: (a) shows the principal curvatures of the mesh at each
surface point. (b) shows the model shaded with curvature oriented
geograftal strokes.

vulnerable to distortion or cropping where the shape of the model
is irregular or where the parametric bounds of the texture map lie.
Moreover, the strokes of the geograftal paint system are fully ed-
itable. An example of this is shown in Figure 3 where the mouth
and chin of the character have been painted on by a user.
7
Future Work and Conclusion
We have presented a new technique for rendering artistic effects
within a coherent framework. We have shown a stable modeling
approach that encompasses and extends the artistic effects previ-
(a)
(b)
ously obtainable by various non-photorealistic rendering methods.
Our system provides an automated method for rendering complex
scenes with expressive artistic techniques from simple models. We
have proposed a method that maintains interframe coherence by in-
troducing the idea of geometric graftal objects to represent graftal
textures and have shown that such a system can generalize to many
other artistic effects. Moreover, the user of our system has com-
plete control over each geograftal object and we provide multilayer
editing techniques. The system renders at rates from 2 to 60 frames
per second on a low end workstation, depending on the complexity
of the scene and the effects desired. Our test scenes had meshes
containing between 512 to 16,000 polygons.
Extending the range of styles currently available for geograftal
(c)
(d)
rendering is one of the immediate goals of future work. It would
also be valuable to formalize notions of view dependent object be-
havior in ways that allow for easy geograftal design by users. Since
each model is represented as a subdivision surface mesh, it might be
easy to achieve higher frame rates by using lower resolution meshes
for rendering objects at a distance. It might also be useful to exam-
ine other intrinsic properties of the subdivision mesh to generate
line strokes. Our silhouettes currently only vary line width based
on lighting. Other types of data such as curvature might be useful
metrics for silhouette line width variation. Furthermore, our system
currently only handles straight line strokes. Strokes represented by
user defined curves or bitmaps would be a valuable addition.
(e)
(f)
References
Figure 10: The line art strokes that imply lighting in picture (b)
imply holes in the sphere in (c). To correct this we either draw
[1] Gershon Elber. Interactive line art rendering of freeform surfaces. Computer
enough strokes to obtain an adequate surface coverage as in (d), or
Graphics Forum, 18(3):1–12, September 1999. ISSN 1067-7055.
shade the surfaces on which the strokes lie as in (e). In (f), the tone
[2] Kurt Fleischer, David Laidlaw, Bena Currin, and Alan Barr. Cellular texture
of (b) has been maintained under translation by applying a scaling
generation. Proceedings of SIGGRAPH 95, pages 239–248, August 1995. ISBN
function.
0-201-84776-0. Held in Los Angeles, California.
[3] Bruce Gooch, Peter-Pike J. Sloan, Amy Gooch, Peter Shirley, and Rich Riesen-
feld. Interactive technical illustration. 1999 ACM Symposium on Interactive 3D
Graphics
, pages 31–38, April 1999. ISBN 1-58113-082-1.
surface to a value that is large enough to obtain a sufficient surface
coverage. We can simulate different painting effects by changing
[4] Michael A. Kowalski, Lee Markosian, J. D. Northrup, Lubomir Bourdev, Ronen
Barzel, Loring S. Holden, and John Hughes. Art-based rendering of fur, grass,
global attributes such as brush type, size and orientation. Using
and trees. Proceedings of SIGGRAPH 99, pages 433–438, August 1999. ISBN
this technique we produce effects similar to Meier’s painterly ren-
0-20148-560-5. Held in Los Angeles, California.
dering [7]. These techniques are illustrated in Figure 10. Other
[5] Lee Markosian, Michael A. Kowalski, Samuel J. Trychin, Lubomir D. Bourdev,
artistic techniques produced with this system such as impressionist
Daniel Goldstein, and John F. Hughes. Real-time nonphotorealistic rendering.
and pointillist are shown in Figure 11.
Proceedings of SIGGRAPH 97, pages 415–420, August 1997. ISBN 0-89791-
896-7. Held in Los Angeles, California.
6
A Graftal Painting System
[6] Judy Martin. Technical Illustration: Materials, Methods, and Techniques, vol-
ume 1. Macdonald and Co. Publishers, 1989.
[7] Barbara J. Meier. Painterly rendering for animation. Proceedings of SIGGRAPH
A geograftal system can be used to paint strokes onto the surface
96, pages 477–484, August 1996. ISBN 0-201-94800-1. Held in New Orleans,
of an object. After choosing a brush shape and size, it is possi-
Louisiana.
ble to paint on the object by choosing the position for the brush
[8] V.S. Ramachandran and William Hirstein. The science of art a neurological
stroke to be applied. We seed a geograftal object of the appropriate
theory of aesthetic experience. Journal of Consciousness Studies, 6(6-7):15–51,
brush type and attributes at that position and apply a stroke. Unlike
1999.
painting systems based on standard texture mapping, geograftals
[9] William T. Reeves and Ricki Blau. Approximate and probabilistic algorithms
sidestep the problems of surface distortion and parametric overlap-
for shading and rendering structured particle systems. Computer Graphics (Pro-
ping because only the position of the geograftal is tied to the object.
ceedings of SIGGRAPH 85), 19(3):313–322, July 1985. Held in San Francisco,
Because of this, geograftal features such as size and shape are not
California.

[10] Michael P. Salisbury, Michael T. Wong, John F. Hughes, and David H. Salesin.
Orientable textures for image-based pen-and-ink illustration. Proceedings of
SIGGRAPH 97
, pages 401–406, August 1997. ISBN 0-89791-896-7. Held in
Los Angeles, California.
[11] Mike Salisbury, Corin Anderson, Dani Lischinski, and David H. Salesin. Scale-
dependent reproduction of pen-and-ink illustrations. Proceedings of SIGGRAPH
96
, pages 461–468, August 1996. ISBN 0-201-94800-1. Held in New Orleans,
Louisiana.
[12] Alvy Ray Smith. Plants, fractals and formal languages. Computer Graphics
(Proceedings of SIGGRAPH 84), 18(3):1–10, July 1984. Held in Minneapolis,
Minnesota.
[13] Alvy Ray Smith, Michael Wright, and James Horton. An Introduction to Art
Techniques. DK Publishing Inc., 1995.
[14] Robert L. Solso. Cognition and the Visual Arts. MIT Press/Bradford Books
Series in Cognitive Psychology, 1999.
[15] Gabriel Taubin. Estimating the tensor of curvature of a surface from a polyhedral
approximation. ICCV95, pages 902–907, 1995.
[16] Georges Winkenbach and David H. Salesin. Rendering parametric surfaces in
pen and ink. Proceedings of SIGGRAPH 96, pages 469–476, August 1996. ISBN
0-201-94800-1. Held in New Orleans, Louisiana.
Figure 12: Bunnies with varied graftal fur textures applied. Model
Figure 11: By interactively varying input parameters, we achieve
courtesy of Stanford University.
different painterly effects. Examples shown here are, from top to
bottom, oriented impressionist, pointillist, and on the bottom two
pictures, random impressionist with different input parameters.