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 Bspline subdivision!
Topic: Subdivision (cont.)
Subdivision Schemes for Surfaces
Tensorproduct patches,
e.g., cubic tensorproduct 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 ...)

C^{n} continuity can readily be inferred form behavior of the polynomial
or trigonometric functions.

G^{n }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 Bspline 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 ngon;
this ngon is used to define a reference plane (= tangent plane).

Second eigenvalue for w=0 is 0.25; describes
hill/bowllike 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): w_{ij} = (3+2cos(2p(ij)/n))/4n

Loop thesis, triangular spline N^{222}, (chapter 4):

New extraordinary vertex V^{k+1} = a_{n}V^{k}
+ (1a_{n})Q^{k}, where Q^{k}
is the centroid of the surrounding vertices P^{k}_{i}

Pick a_{n} for best performance; convergence
occurs for 5/8 < a_{n} <
11/8.

Convergence proof in two steps: Show: V^{k}
> Q^{k}, and also for each i: P^{k}_{i}
> Q^{k}

The explicit point of convergence is: Q^{k} = b_{n}V^{0}
+ (1b_{n})Q^{0}, where b_{n}
= 3 / (11  8a_{n}
).

Tangent Plane Continuity  gives narrower bounds on a_{n
}:
0.25
cos 2p/N <
a_{n}
< 0.75 + 0.25 cos 2p/N.

Again, use discrete Fourier transform to capture the behavior of all edges
converging in V^{0}.

Tangent plane is defined by ring of neighbors only !

Curvature Continuity 

Rather than explicitly develop the periodic normalcurvature 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 a_{n} can
assure a welldefined curvature function around an extraordinary point
! :(

I.e., welldefine Gaussian curvature does not exist at extraordinary points
!

A reasonable choice that gives goodlooking surfaces: a_{n}
= (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 QuadMeshes.
Continue with the Warmup Exercise in the same five groups.
Exchange phone numbers, emails, available time slots ... NOW.
Meet as a group at least twice between now and Tuesday to discuss this task.
As a team, email 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 reoriented 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 "onionlike"
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 email 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 finetune your mesh.
PHASE III DUE: Tu. 10/10/2006, Noon!:
 The complete, final, subdivided, and thickened surface (I have added an offsetsurface 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