Subdivision surfaces Construction and analysis Martin Reimers CMA/IFI, University of Oslo September 24th 2004
Subdivision: concept Piecewise linear geometry with vertices P 0 Refine and reposition using subdivision rule P 0, P 1, P 2
Subdivision Surfaces The same concept for surfaces: Piecewise linear geometry refined: P 0, P 1, P 2 P 0 P 1 P 2 P 1 P 0 P 1 P 2 P 1 Properties of P 1 ? Continuous, smooth, fair…?
Overview Introduction Subdivision schemes ConstructionAnalysis
Spline curve subdivision Control polygon P=P 0 Cut corners recursively, get P 1, P 2 Subdivision rule: p 2k =(3p k-1 + p k )/4 p 2k =(3p k-1 + p k )/4 p 2k+1 =( p k-1 +3p k )/4 p 2k+1 =( p k-1 +3p k )/4 Subdivision matrix S: Limit P 1 is a quadratic spline (smooth curve)
Spline curve subdivision Generalization: refine and average d-1 times P j converge to spline of degree d Linear operations in a subdivision matrix S s.t. P j+1 =SP j P j+1 =SP j Cubic splines: Many curve subdivision methods Next: surfaces
Spline surface subdivision P 0 – regular control mesh (grid) in 3D – e.g. points and quadrilaterals Refine P 0 by a certain subdivision rule yields new mesh P 1 Linear operations, collect in a matrix S P j+1 =SP j P j+1 =SP j Control mesh converge to spline bi-degree 2 Generalize: d-1 averages gives bi-degree d Mask
Doo Sabin Subdivision (‘78) Generalization: General mesh N-sided faces Any valence (Not only 4) Masks: Still have P j+1 =SP j (linearity) Generalize bi-quadratic spline to arbitrary mesh C 1 continuous (smooth) limit surface [Peters&Reif98]
Doo Sabin Subdivision Example
Catmull-Clark Subdivision (‘78) Generalize bi-cubic spline to quad mesh Edge mask Face mask Vertex mask P j+1 =SP j As before: P j+1 =SP j Constants:3/2n =1/4n (others possible)
Catmull-Clark scheme Implementation version FACE VERTEX EDGE
Catmull-Clark scheme P j converge to a C 1 surface, C 2 a.e [Peters&Reif98]
Catmull-Clark, special rules Crease/bdy masks Piecewise smooth surface
Loop’s scheme (‘87) EdgeVertex
EdgeVertex Implementation version
Loop boundary mask Use cubic B-spline refinement rules Edge Rule Vertex Rule
Loop’s scheme Generalize 3-direction (quartic) box-splines C 1 everywhere, not C 2 in irregular points Special masks for features (Hoppe et al) Alternative view 1.Refine linearly 2.Smooth all vertices by ( Laplacian smoothing )
Loop example
Spline based schemes All schemes up to now Affine invariance Convex hull property Polynomials locally Splines in regular regions Approximates the control mesh (like splines)
Butterfly scheme (‘90) [Dyn,Levin,Gregory]InterpolatingTriangles Not polynomials No convex hull property Not C 1 for n=3 or n>7 Modified scheme [zorin] is C 1 but not C 2 Edge mask
Examples Famous schemes
Subdivision rules/schemes Many categories, ways to refine mesh etc. Mesh types: tris, quads, hex…, combinations Interpolating/Approximating(Non)Uniform(Non)Stationary(Non)Linear ”Subdivision zoo” Midpoint scheme [Peters&Reif] √3 scheme [Kobbelt] ”Refine&average” [Stam/Warren et al] 4-8 subdivision [Velho&Zorin] Tri/Quad schemes …many more Rules constructed to obtain objective: Mimic splines, interpolation, smoothness/fairness, features,…
Surface subdivision Is this a toy? Pros: Many of the pros of splines Flexibility, wrt. topology/mesh Spline surfaces without gaps and seams! Simple to implement Simple/intuitive to manipulate Cons: No global closed form (but locally) Evaluation not straight forward (but…) C k, k>1 is hard Artefacts (ripples etc.) CC cannot make convex surface if n>5 [Peters&Reif04] Geri’s Game (Pixar studios) Splines Toy Story 1
NEXT: ANALYSIS Consider primal spline schemes (e.g. Loop, C-C) Linear Affine invariant Convex hull property StationarySymmetric Smooth in regular regions Have vertex correspondency Start with control mesh P 0 with vertices in R 3 Subdivision yields finer meshes P 1,P 2, What properties does limit surface P 1 have? Study Limit points and normals / tangent planes C 1 smoothness ( Curvature, C 2 )
Regular regions If mesh is regular, limit surface P 1 is known (spline) Analyze irregular regions Subdivision Preserves valence Insert new regular vertices ) regular regions grow and ) regular regions grow and irregular regions shrink Limit surface def on the green rings are C 2 quartic splines over triangles of P j Each subdivision adds a spline ring to the neighbourhood of an irregular point Loop scheme
The local subdivision matrix Study irregular vertex p and neighbourood P 0 Stationary scheme: subdivision matrix S s.t. P j+1 =S P j P j+1 =S P j map neighbourhood to neighbourhhood S determines limit surface around p Assume S is non-defective S=QQ -1 P j = S P j-1 =S j P 0 = Q j Q -1 P 0 P j = S P j-1 =S j P 0 = Q j Q -1 P 0 Spectral properties of S are fundamental!!! p
Spectral analysis S = QQ -1 Q = (q 0,q 1, q L ) eigenvectors Q = (q 0,q 1, q L ) eigenvectors = diag( 0, 1, , L ) eigenvalues, | 0 | ¸ | 1 | ¸ ¸ | L | = diag( 0, 1, , L ) eigenvalues, | 0 | ¸ | 1 | ¸ ¸ | L | S often block symmetric with circulant blocks ) Can find Q and with Fourier techniques ) Can find Q and with Fourier techniques Dominant eigenpair: 0 =1>| 1 | and q 0 =(1, ,1) (Affine invariance) Controls convergence Subdominant eigenpairs: := 1 ¸ 2 ¸ Controls tangent plane continuity Want 1> 1 = 2 >| 3 | Sub-subdominant eigenpairs: := 3 ¸ 4 ¸ Controls curvature Want 2 ¸ ||
Limit points Have S j = Q j Q -1 Eigen expansion: P 0 = q i a i a i 2 R 3 P j = i j q i a i P j = i j q i a i Since 0 =1>| i | and q 0 = (1, ,1) P j ! (a 0, a 0, ) T as j ! 1 P j ! (a 0, a 0, ) T as j ! 1 Limit point: p 1 = a 0 =l 0 P 0 Left eigenvector l 0 can be determined from a n+1 matrix Also: Control mesh converge to continuous surface
Spline rings Limit surface P 1 is union of limit point and spline rings x j : x j : n ! P 1 ½ R P 1 = x j ( n ) [ p 1 x j : n ! P 1 ½ R P 1 = x j ( n ) [ p 1 Where n = {1, ,n} £ L (quad based scheme) Limit surface can be parameterized over squares Basis functions B 1, ,B N : n ! R s.t. B i =1 and x j = B i p i j =B P j x j = B i p i j =B P j Define eigenfunctions i : n ! R i :=B i q i x j = P j = i j i a i x j = P j = i j i a i Note that 0 ´ 1 since q 0 =(1,1, ) L xj(n)xj(n) X j+1 ( n )
Tangent plane Each spline x j ring is C 1 Assume: 1> 1 = 2 > 3 and q 1,q 2 lin.indep. Also that a 1,a 2 lin.indep x j = a 0 + j 1 a 1 + j 2 a 2 + j x j = a 0 + j 1 a 1 + j 2 a 2 + j D u x j = j (D u 1 a 1 + D u 2 a 2 + D u x j = j (D u 1 a 1 + D u 2 a 2 + D v x j = j (D v 1 a 1 + D v 2 a 2 + D v x j = j (D v 1 a 1 + D v 2 a 2 + Normal is well defined and continuous if Normal(x j ) = D u x j £ D v x j /||D u x j £ D v x j || ! a 1 £ a 2 /||a 1 £ a 2 || Normal(x j ) = D u x j £ D v x j /||D u x j £ D v x j || ! a 1 £ a 2 /||a 1 £ a 2 || Tangent vectors a 1, a 2 found using left eigenvectors of S a1a1 a2a2 N
Smoothness – C 1 ) tangent plane cont. if det D ( , ) 0 Analysis only relevant if generic data: det (a 1, a 2 ) 0 Want C 1, more than tangent plane cont. P 1 is C 1 if it is C 1 fcn. over the Tangent Plane x j = a 0 + j ( 1 a 1 + 2 a 2 )+o( j ) x j = a 0 + j ( 1 a 1 + 2 a 2 )+o( j ) ”ring x j converge uniformly to tangent plane” Big question[Reif]: is limit x j injective? Yes if 1 e 1 + 2 e 2 =(1, 2) is injective a1a1 a2a2 a1a1 a0a0
Characteristic map [Reif95] Defined as :=( 1, 2 ): n ! R 2 (i,u,v)=B(i,u,v)(q 1,q 2 ) (i,u,v)=B(i,u,v)(q 1,q 2 ) Theorem [Reif95]: P 1 is a C 1 surface for generic initial data if := 1 = 2 >| 3 | with q 1,q 2 lin. independent:= 1 = 2 >| 3 | with q 1,q 2 lin. independent is regular and injective Conditions means has a cont. Inverse (can be used to parameterize P 1 ) Major point: P 1 is a graph over TP near p 1, thus C 1 regular Not injective Image: n )
Verifying C 1 regularity [Peters&Reif98] Showed C 1 of DS & CC [Umlauf] Showed C 1 for Loop Check conditions: 1= 0 > 1 = 2 >| 3 | Check regularity and injectivity of Rotationally symmetric ) study segments Regular: Use Bezier form to show that u £ v 0 Injectivity: show that boundary is simple Generalizations/simplifications Zorin, Umlauf,…
Continuous Curvature – C 2 MUCH harder to get Holy grail: C 2, local, stationary, 0,low polynomial degree Large support? Not stationary? 0 in irregular points[Umlauf&Prautzsch] High degree? [Prautzsch/Reif]: polynomial scheme must have d ¸ 2k+2 for C k Thus C 2 requires degree 6 in regular regions Neccessary condition for bounded curvature : || 2 ¸ | 3 | Has been used to find good schemes (CC/DS)
Scheme manipulation Take a scheme S Spectral analysis: find S=Q Q -1 Manipulate Set e.g. | 3 | · || 2 New eigenvalues 2 New scheme S 2 =Q 2 Q -1 with better properties e.g. bounded curvature
Conclusion Subdivision is very usefull in some applications Better methods needed for high end CAD Construction: generalize splines, tune spectrum Analysis of linear schemes based on linear algebra Nonlinear/Nonstationary: Not much is known??, harder!