CS 284: CAGD
Lecture #12 -- Th 10/5, 2006.
PREVIOUS
< - - - - > CS
284 HOME < - - - - > CURRENT
< - - - - > NEXT
Preparation:
Chapters 2 and 3 from:
C.
Loop, "Smooth Subdivision Surfaces Based on Triangles"
This is also a nice review of B-spline subdivision!
Topic: Subdivision (cont.)
Subdivision Schemes for Surfaces
Tensor-product patches,
e.g., cubic tensor-product Bezier patches;
readily do in the "u" and in "v" directions what we have learned about
curves.
We can also use with triangular patches, but need a different
interpolation scheme:
Barycentric coordinates: three numbers, but with constraint that they
must sum to 1.0.
DeCasteljau evaluation technique can also be applied to triangular
patches!
-
Tensor
Product Splines
-
E. Catmull and J. Clark (1978)
- D. Doo and M. Sabin (1978)
-
Triangle
Splines
-
C. Loop (1987);
Construction : Chapter 3;
Analysis: Chapter 4:
- D. Zorin, P. Schroeder, W. Sweldens (1996): Interpolating !
Evaluation / Analysis of Subdivision Schemes
How do we know whether a particular interpolation
or subdivision scheme is any good ?
Testing / Evaluation by Visual Inspection
-
Subject your scheme to many tough test cases: -- ideally move control points interactively and continuously,
because "transition cases" (e.g., extra inflection points) often show the
weaknesses of a scheme.
Formal Analysis of Blending / Subdivision Methods
-
If curve is formed with analytical functions (e.g., for Bezier,
Lagrange, Circle Splines ...)
-
Cn continuity can readily be inferred form behavior of the polynomial
or trigonometric functions.
-
Gn continuity needs a separate analysis; perhpas a bound on
curvature can be established;
or it may be sufficient to show that the velocity cannot get to zero (Circle
Spline paper, section 3.4)
-
Subdivision curves/surfaces are harder to analyze:
-
How do you prove that final curve points do not have small fractal oscillations
?
-
or that the tangents converge to a well defined value at every point ?
-
Doo & Sabin, extraorinary points in quadratic B-spline surfaces:
-
Do not analyze the behavior of individual points, but of the whole ring
of vertices around an extraordinary point.
-
Do a discrete Fourier analysis of this ring of vertices; needs frequencies
from w=0 to n/2 (n=valence) to capture all DoF.
-
Repeated application of the subdivision matrix converges to a vector corresponding
to largest eigenvector of the matrix.
-
For the regular (valence 4) vertex we observe this behavior:
-
Largest eigenvalue for w=0 is 1.0;
this guarantees translation invariance of the process (i.e., does not
"run away").
-
Largest eigenvalue for w=1 is 0.5;
this implies that the region around this vertex shrinks towards an
affinely distorted regular n-gon;
this n-gon is used to define a reference plane (= tangent plane).
-
Second eigenvalue for w=0 is 0.25; describes
hill/bowl-like behavior at this point.
-
Largest eigenvalue for w=2 is 0.25; describes
the amount of warping (into a saddle) at this point.
-
Doo&Sabin
found subdivision coefficients for the extraordinary cases that also
give these eigenvalues,
and thus also guarantee tangent plane continuity at these points (page
360): wij = (3+2cos(2p(i-j)/n))/4n
-
Loop thesis, triangular spline N222, (chapter 4):
-
New extraordinary vertex Vk+1 = anVk
+ (1-an)Qk, where Qk
is the centroid of the surrounding vertices Pki
-
Pick an for best performance; convergence
occurs for -5/8 < an <
11/8.
-
Convergence proof in two steps: Show: Vk
--> Qk, and also for each i: Pki
--> Qk
-
The explicit point of convergence is: Qk = bnV0
+ (1-bn)Q0, where bn
= 3 / (11 - 8an
).
-
Tangent Plane Continuity -- gives narrower bounds on an
:
-0.25
cos 2p/N <
an
< 0.75 + 0.25 cos 2p/N.
-
Again, use discrete Fourier transform to capture the behavior of all edges
converging in V0.
-
Tangent plane is defined by ring of neighbors only !
-
Curvature Continuity --
-
Rather than explicitly develop the periodic normal-curvature function around
an extraordinary vertex,
study the rate of change of the tangent function with respect to the
subdivision process !
-
Analysis shows: No choice of an can
assure a well-defined curvature function around an extraordinary point
! :-(
-
I.e., well-define Gaussian curvature does not exist at extraordinary points
!
-
A reasonable choice that gives good-looking surfaces: an
= (3/8 + 0.25 cos(2p/N))2 + 3/8
Reading Assignments:
Zorin
et al: "Interpolating Subdivision Meshes with Arbitrary Topology"
Chapters 4 and 5 from:
C.
Loop, "Smooth Subdivision Surfaces Based on Triangles"
New Homework Assignment: Devise an Interpolating Subdivision Scheme for Quad-Meshes.
Continue with the Warm-up Exercise in the same five groups.
Exchange phone numbers, e-mails, available time slots ... NOW.
Meet as a group at least twice between now and Tuesday to discuss this task.
As a team, e-mail me an interim report (less than 1 page) describing your scheme and its preliminary evaluation.
DUE: TUESDAY 10/10/2006, Noon!:
Last Phase of current Homework Assignment: Create a Subdivision Surface
Create a doubly or triply spiralling surface.
Similar to the Creative Thinking Exercise on Koch's Snowflake Curve, you should try to find a surface in 3D space that is inspired by a logarithmic spiral in the plane.
However, you must not just extrude a logarithmic spiral in a direction
perpendicular to the spiral plane. You should create a surface that
shows some spiralling cut lines when cut in as many different
orientaions as possible. The surface will probably have to have some
(spiralling?) edges -- which is good, because this will define some
windows through which one can look inwards to the inner parts of the
surface.
Keep your surface modular. Model as little as absolutely needed; then put
multiple copies suitably re-oriented together to make the complete
surface.
In addition to exploiting symmetry at one (spherical) level of the
surface, you should then extend the surface inward or outward by simply
making suitably scaled copies of one layer of that "onion-like"
assembly. The use of one or two parameters to optimize the look of the
surface is encouraged.
I have put some SLIDE starting file "spiral.slf" into the CODE
directory. It has most of the basic elements that you will need to
build such a surface and shows how to do mirroring, scaled
instanciation, and subdivision. I also have included some token
parameters so you can get started with something that already works and
then do incremental modifications.
Here are also some (hopefully inspirational) images!
PHASE I --DUE: Tu. 10/3/2006, 2:10pm:
Plan the topology (connectivity and rims) of your surface to get
the desired spiral patterns locked in. Give me something by Tuesday at
the latest that allows me to give you feedback whether you are on a
good track. You can either give me a paper and pencil sketch, or a
rudimentary slide file that shows the basic geometry, even though not
all pieces fit together seamlessly yet. Feel free to e-mail me images
or SLF files before Tuesday.
PHASE II --DUE: Th. 10/5/2006, Noon!:
- Send me an SLF file showing your control mesh for the critical module;
- Include sliders for the control parameters that you use to fine-tune your mesh.
PHASE III --DUE: Tu. 10/10/2006, Noon!:
- The complete, final, subdivided, and thickened surface (I have added an offset-surface module to "spiral.slf");
- send me an SLF file and captured image showing best view.
PREVIOUS
< - - - - > CS
284 HOME < - - - - > CURRENT
< - - - - > NEXT
Page Editor: Carlo H. Séquin