CS 284: CAGD
Lecture #10 -- Mo 9/29, 2003.
PREVIOUS
< - - - - > CS
284 HOME < - - - - > CURRENT
< - - - - > NEXT
Preparation:
Rockwood: pp 133-151 (Spline Surface Patches)
Warren + Weimer: Chapter 1 (Subdivision: Functions as Fractals)
Topics: Surface Patches; Subdivision Techniques
Introduction to "General Subdivision (with modification)" Techniques
-
Conceptual introduction via iterated refinement
- - carving a rounded object from wood.
- - cutting a rounded shape from paper by "repeated corner cutting."
- - adding extra "bulges" on the segments of a linear spline.
- - re-adjusting the mid-points of all control segments.
- - averaging vertices among their neighbors.
-
Key points about useful subdivision schemes:
- - the number of points (line segments) must grow at a geometrical
rate with each generation.
- - the newly introduced points should have a smoothing effect and
converge towards a limit function.
- - this can typically be achieved with affine mapping schemes described
with a subdivision matrix.
- - the infinite application of this matrix then leads directly to
a point on the curve or surface.
- - the subdivision approach failed with the circle splines, because
there is no affine invariance.
-
Special
case study:
- - interpolating four points with a cubic polynomial, to find new mid
point for subdivision.
- - this is the same as averaging two quadratic interpolants through three
points each.
Formal Subdivision
-
Iterated affine transformations (Warren+Weimer, p 9)
- - Defined by the transformation of three non-collinear points ==>
Barycentric coordinates.
-
Fractals: a set of contractive transformations. Examples:
- - Sierpinski triangle
- - Koch snowflake
- - Bezier curve (iterated mid-point evaluation) based on de Casteljau
-
Subdivision as the limit of of an increasingly faceted sequence of polygons
(WW p 19)
- - each is related to successor by a simple linear transformation.
-
Subdivision as a multiresolution rendering algorithm that generates increasingly
dense plots
- - by taking convex combinations of points used in previous plots
(WW p 24).
-
Importance of the subdivision matrix (WW p 25).
From Curves to Surfaces Patches
-
Do in "u" and in "v" directions what we have learned in "t" direction ...
-
Bilinear Bezier patch = Coons Patch
-
Cubic
tensor-product Bezier patch
-
Symmetry in u,v: interchange roles of "rails" and "curves"
-
Biquintic
Bezier patch
-
DeCasteljau evaluation of tensor product patches (p140)
-
Patch subdivision, degree elevation ... All still works as in the 1D case!
-
Putting Bezier patches together with G1 or better continuity becomes difficult
and painful.
-
If you want a high degree of continuity, consider the approximating B-spline
surfaces:
-
Bicubic
and biquintic B-spline patches
-
Rectangular B-spline surfaces
-
Comparison, trade-offs between Bezier and B-Spline surfaces
Next time: Topological Limitations of the B-spline Control Mesh
-
A rectilinear mesh of quadrilaterals can be nicely mapped onto a torus.
-
It cannot be mapped onto a sphere without either
- - crunching the u-v-coordinates together at the N- and S- poles,
or
- - or introducing vertices with valences different from 4.
-
It cannot be mapped nicely onto surfaces of genus higher than 1.
-
For these kinds of surfaces, we need a different, more general scheme ==>
Subdivision surfaces!
-
The classical subdivision surface by Catmull & Clark = foundation
for all modern subdivision algorithms.
Take-home Quiz on Curves.
DUE: WEDNESDAY, October 1, 9:10am
Next Homework Assignment: (to be done individually)
Experimenting with Curve Subdivision Schemes
Given a sequence of points that define a control polygon, form two smooth
subdivision curves,
- one interpolating and one approximating -- using some subdivision
schemes of your own design.
-
For instance, form an approximating curve by repeatedly chopping off the
corners of the control polygon (as demonstrated in class).
-
To make an interpolating curve, repeatedly subdivide the polygon edges
by introducing a new vertex somewhere near its middle (or perhaps ratioed
by the lengths of the adjacent segments of the control polygon -- or by
the cube root of that ratio), then move that point to a place that will
help to make an overall smooth curve (perhaps place on best-fitting circle).
Build those exploratory subdivision routines on top of the Java applet
provided in the last assignment. We have provided the framework of last
weeks Java code, called pa4, in which we have stripped out all Bezier machinery,
but left you with the drawing/editing, and display functionalities. Add
to that your new curve drawing routines based on subdivision. Place your
new demonstration applet in a directory hw/pa4/. Let me know whether this
is on the Mamba/UNIX file system, or on the Windows "fileservice".
Also submit a window capture for each applet, showing an interesting
case of a control polygon with rather irregularly spaced points and sharp
angles in the control polygon. Add to each one a description of how you
chose to place the new subdivision vertices.
For
more information see the instructional pages.
DUE: WED 10/8/03, 9:10am.
On line: Follow submission instructions on the instructional pages.
Hand in: Pictures of two interesting curves and descriptions of your
subdivision schemes.
Next Reading Assignment:
Handout: Paper by "Catmull and Clark"
Warren + Weimer: Chapter 2.1.
PREVIOUS
< - - - - > CS
284 HOME < - - - - > CURRENT
< - - - - > NEXT
Page Editor: Carlo H. Séquin