Subdivision Primer CS426, 2000 Robert Osada [DeRose 2000]
What is it? A form of interpolation Goal: create a smooth curve or surface that follows a set of data points Q: Why not just use a polynomial?
Polynomial +’s: explicit, easy, smooth, interpolates a set of n points (x i, y i ) using a single (n-1) th order polynomial but…
Polynomial -’s: wild oscillations, unpredictable behavior bad
Polynomial Analysis Look at basis function – zero all y i except one P(x) is linear combination of basis functions Why? Not stable Basis function
Piecewise Polynomials Linear not smooth Cubic splines derivatives match at joints +’s: local support, smooth, stable Cubic Piecewise Polynomial Basis Function finite support
Surfaces Direct product: P(u,v)=P(u)P(v) Curves are piecewise polynomial in each variable Domain is regular Bicubic surface
Surfaces Q: What to do when domain is irregular? Direct product construction doesn’t apply, need something more general Go back to 1D case [Siggraph 2000]
Another approach Instead of producing the curve parametrically, approximate it piece by piece e.g.: each line segment subdivides into two Q: How should vertices update? A: Analyze rules to produce desired limit curve/surface [Siggraph 2000] subdivision
Cubic BSpline 1D Stencil [Siggraph 2000] [4 4] [1 6 1]
Surfaces Create stencils for surfaces E. Catmull and J. Clark (1978) Loop (1987) [Siggraph 2000]
Catmull Clark Need rules for edges and borders Generalize to arbitrary topology [Siggraph 2000]
Loop Works with triangles and has fewer rules [Siggraph 2000]
Loop How to choose k? Analyze properties of limit surface Interested in continuity of surface and smoothness Involves calculating eigenvalues of matrices Original Loop Warren
Summary Subdivision produces smoother version of original mesh / curve Can reason about limit surface given rules Position, tangents General enough for arbitrary topology Subdivide position, color, texture coordinates