CS 284: CAGD
Lecture #12  Tue 10/02, 2012.
PREVIOUS
<     > CS
284 HOME <     > CURRENT
<     > NEXT
Preparation:
Review: "Intrinsic Properties of a Surface" by M. E. Mortenson (handout).
Optionally: Read: "Root3 Subdivision" by Leif Kobbelt (SIGGRAPH 2000).
Even more optionally: Read: "Interpolatory Root3 Subdivision" by Labsik and Greiner.
Warmup: Define Schemes for Adaptive Mesh Refinement
Evaluation / Analysis of Subdivision Schemes
Testing / Evaluation by Visual Inspection
 Any new subdivision scheme should be subjected to many tough test cases.
Ideally the control points should be moved around 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 welldefined 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 an eigenvector corresponding
to largest eigenvalue 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
"slide 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 same 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., welldefined 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
Discussion of: "Root3 Subdivision" by Leif Kobbelt (SIGGRAPH 2000).
The basic root3 scheme.
Typical mesh generated.
The "rotation" implied by a single subdivision step.
Adaptive refinement to different levels  may cause cracks.
Bad triangles or a large "transition zone" are generated to reach a desired deep level of subdivision.
Root3 scheme has no crack problem and generates good transition zones.
Nice adptive refinement meshes on "the bunny".
Maintaining smooth boundaries in the root3 scheme.
Forming cusps or creases by joining two patches along a common boundary curve.
The root3 scheme allows finer gradation of uniform subdivision than the Loop scheme.
How would you do adaptive refinement in a quad scheme ?
The topological aspect is the same as in the above paper.
However the geometrical functions are different:
Because this is an
interpolatory scheme, and vertices are place once and then left in
place,
a more careful computation using a larger neighborhood of vertices needs to be used:  the Butterfly stencil.
Mesh Data Structures
Tailored to 2manifolds. Goals: efficiency, robustness.
 describes a nonhierarchical boundary representation.
 every edge connects to exactly two polygons, one on each side.
 a lean and regular variant for 2manifolds.
 can use fixedsize data structures, even if valences and number of sides in meshes are not all the same!
 in the triangle subdivision process, every halfedge gets subdivided, and new pairs of halfedges get introduced for the new central triangle.
A lean triangle hierarchy: just enough to do the dyadic Triangle subdivision for your homework
 vertex list
 triangle list (referencing the vertex list); each triangle also carries: surface pointer (material,color)
 halfedge list with just enough connectivity information to find all vertices needed for the smoothing or interpolation step.
 probably best to keep all subdivision generations separately side by side.
Assignments for Thu. Oct. 4, 2012:
Study: SS'98: Subdivision Surfaces in Character Animation (Sharp Features)
As you study the paper, try to find the answers to the following questions:

What subdivision scheme are they using ?

What are the key additions to the basic scheme that they have made ?

Why do they prefer quadrilaterals ?

What is the basic approach to creating semisharp edges ?

What is the underlying model for cloth simulation ?

How is excessive wrinkling of the cloth avoided ?

What are virtual threads ?  and what is their purpose ?

What is the data structure to make collision detection efficient ?

How is it made possible to apply texture maps and procedural shaders ?

What was one of the general implementation requirements for the Pixar production
environment ?
Sketch a control mesh for an interesting mug to be used as test object in future subdivision assignments.
Start thinking about possible course projects.
PREVIOUS
<     > CS
284 HOME <     > CURRENT
<     > NEXT
Page Editor: Carlo H. Séquin