# 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).

"Root-3 Subdivision" by Leif Kobbelt (SIGGRAPH 2000).
Even more optionally: Read:  "Interpolatory Root-3 Subdivision" by Labsik and Greiner.

Warm-up: 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 ...)
• 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 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 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 same 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-defined 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

## Discussion of: "Root-3 Subdivision" by Leif Kobbelt (SIGGRAPH 2000).

The basic root-3 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.
Root-3 scheme has no crack problem and generates good transition zones.
Nice adptive refinement meshes on "the bunny".
Maintaining smooth boundaries in the root-3 scheme.
Forming cusps or creases by joining two patches along a common boundary curve.
The root-3 scheme allows finer gradation of uniform subdivision than the Loop scheme.

## Discussion of: "InterpolatoryRoot-3 Subdivision" by Labsik and Greiner.

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 2-manifolds. Goals: efficiency, robustness.

### Winged-edge data structure for orientable 2-manifolds (Baumgart)

-- describes a non-hierarchical boundary representation.
-- every edge connects to exactly two polygons, one on each side.

### Half-edge data structure (e.g. http://www.flipcode.com/articles/article_halfedge.shtml)

-- a lean and regular variant for 2-manifolds.
-- can  use fixed-size data structures, even if valences and number of sides in meshes are not all the same!
-- in the triangle subdivision process, every half-edge gets subdivided, and new pairs of half-edges 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)
-- half-edge 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:
1. What subdivision scheme are they using ?
2. What are the key additions to the basic scheme that they have made ?
3. Why do they prefer quadrilaterals ?
4. What is the basic approach to creating semi-sharp edges ?
5. What is the underlying model for cloth simulation ?
6. How is excessive wrinkling of the cloth avoided ?
7. What are virtual threads ? -- and what is their purpose ?
8. What is the data structure to make collision detection efficient ?
9. How is it made possible to apply texture maps and procedural shaders ?
10. 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