# 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!

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

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