pen-and-ink

advertisement
Computer-Generated Penand-Ink Illustration
Georges Winkenbach, David H.
Salesin
Why Pen-and-Ink?
• Can convey information better by
omitting extraneous detail (ex,
medical & hardware manuals)
• Less storage than photorealistic
images, and more easily reproduced
and transmitted
• Ideal for outlines, tones and texture.
• Blend nicely with text.
Basics of Pen-and-Ink
Illustration-Strokes
• A thin stroke can give a washed-out
appearance; a thick stroke can
detract from the details
• Vary the pen position
• Strokes must look natural; the
thickness of a line should vary along
its length
• Wavy lines are good
Basics-Tones and texture
• The tone is achieved by a combination of
strokes.
• Strokes can convey both tone and texture
• Use equal weight and spacing of lines to
create tones
• Correct arrangement of tones among
adjacent regions is important
• Use of indication
Basics-Tones and texture
Force tone by enhancing contrast or shadows
to disambiguate objects
• The character of strokes is important:
– Crisp, straight lines are good for glass
– Horizontal surfaces should be hatched with
mostly horizontal lines
– Absence of detail indicates glare
– Sketchy lines are good for old materials;
careful stippling is good for new material
Basics-Outlines
• Use outlines to convey texture (crisp
lines for hard objects)
• Use outlines to bring one object
forward in the scene
• Using indication for drawing outlines
is important
Computer-generated penand-ink illustration
• Two fundamental differences from
traditional graphics rendering
pipeline:
– Dual nature of strokes
– Need to combine 2D and 3D information
• Stroke density
• 2D adjacent regions
• Level of contrast
Non-photorealistic Rendering
Pipeline
• Standard pipeline (unchanged)
–
–
–
–
–
Model
Assignment of texture (strokes)
Lighting model (phong model)
Visible surface algorithm (BSP)
Shadow algorithm
–
–
–
–
Maintaining 2D spatial subdivision
Rendering of texture and tone (strokes)
Clipping (stroke base)
Outlining (boundary & interior)
• Differences from the standard pipeline:
Rendering process
• Compute visible surfaces and shadow
polygon
• Project polygon to build 2D BSP tree
and planar map
• Visible surface is rendered
• Procedural texture for each surface
• Clip strokes
• Draw outlines
Strokes
• Nib moving along a basic straight path
• Use waviness and pressure function
to add character to the strokes
Stroke textures
• Stroke texture – a collection of
strokes used to produce texture and
tone
• Prioritized stroke texture:
– Strokes of highest priority are drawn
first
– Continue until the proper tone is
achieved
Resolution Dependence
• Existing drawing program do not scale well
when printed at different sizes or
resolution
– Pixel replication yields aliasing artifacts
– Drawing same stroke at higher resolution yields
overall lighter illustration
– Reduction yields large black mass of overlapping
strokes
• Prioritized stroke textures do not suffer
from these problems!!
Indication
• Indication lends economy to an illustration
• Suggest texture without drawing every
stroke
• Hard to do, paper suggests semiautomated method
• W(x, y) = (a + b*distance((x, y), l))^(-c)
Indication
Expression texture with
outline
• Associate each stroke texture with
boundary or interior outline texture
Minimizing outline
• Outline is omitted in the presence of
sharp changes in tone, and added in
the absence of tone changes
Accented outlines for
shadowing and relief
• Thickened lines can provide cues
about the 3D aspects of a scene
• Edges that cast shadows are
rendered with thickened lines
Dependence of viewing direction
• Viewing direction should be taken into
account
• Each stroke texture is associated with
BRDF
– describes outline features in terms of light
and viewing directions.
Conclusion
• Traditional pen-and-ink illustration can be
used to communicate visual information
effectively
• Showed a large number of these techniques
can be incorporated as part of the
rendering pipeline
• Introduced prioritized stroke texture to
allow resolution-dependent rendering
Robie House
Questions?
Computer-Generated Penand-Ink Illustration of
Trees
Oliver Deussen, Thomas
Strothotte
Presented by Johnny Chang
Traditional Illustration of
Trees
• Tree skeleton is drawn up to the
second branching level with silhouette
lines and crosshatching on the stem
surface.
• Use abstract lines or collection of
small objects to draw foliage.
Traditional Illustration of Trees
• Three areas of foliage:
– Top of the tree- visualized by few
details and its outline.
– Half shadow area – more details are
drawn to achieve gray level.
– Shaded area
Synthetic Illustration of Trees
• Stem skeleton is represented by
silhouette lines and crosshatching
• Different types of leaves and
illustration styles for abstract leaf
representation
• Drawing of leaf is modulated by three
areas: top, half and deep shadow.
Automated Illustration
• Create 3D tree model, using xfrog
– Store geometry of the tree skeleton
– Store leaves as particles each with a
position and a normal vector
• Draw the trunk and branches
(silhouette lines+cross-hatching)
• Draw foliage using depth difference
algorithm
Drawing the tree skeleton
• Apply analytical silhouette algorithms
(Markosian, Rakarand Cohen)
• Skeleton is shaded to find dark regions.
Dark regions are crosshatched in the
illustration.
– Use gray scale to determine
stroke size.
– Direction of the strokes affected
by normal vector of the geometry.
Drawing the foliage
• Each leaf is represented by the
outline of an abstract drawing
primitives
• Position is determined by 3D leaf
position.
• Size of primitive is controlled by the
user
Depth Differences
• Use depth-buffer to determine the
outline of objects.
• Use zero order derivatives for
determining lines
• The outline of a primitive is drawn if
depth difference is above a threshold
Depth Differences
• Depth z in the camera coordinates is
determined from a depth value d
Z=
z1 z0(d1 - d0)/(z1 - z0)
d -(z 1+z0)(d1 - d0)/2(z1 - z0) -(d 1+d0)/2
Abstract Drawing Primitives
• 9 polygons was generated to
represent leaves from different
views
• Normals were used to interpolate the
shapes of the leaves
Level of Abstraction
• Visual level of abstraction can be
supported by scaling the primitive
size
• Scale factor: r=w(d/s)+(1-w) , w [0..1]
Conclusion
• A Framework for pen-and-ink illustration
of trees
• Tree skeleton is represented by silhouette
lines and crosshatching in dark areas.
• Foliage is drawn using abstract drawing
primitives.
• An interpolation scheme to adapt the form
of the primitives to the normal vector of
the leaves
• Depth differences are used to determine
what part of the primitives is drawn.
Download