Subdivision: Making Meshes into Smooth Surfaces CS 101 – Meshing Winter 2007 1 B-Splines (Uniform) Through repeated integration 1 0 1 B 4 (x) CS 101 – Meshing Winter 2007 2
B-Splines Obvious properties � piecewise polynomial: � unit integral: � non-negative: � partition of unity: � support: CS 101 – Meshing Winter 2007 3 B-Splines Repeated convolution � box function x CS 101 – Meshing Winter 2007 4
Refinability I B-Spline refinement equation � a B-spline can be written as a linear combination of dilates and translates of itself � example � linear B-spline 1 1/2 1/2 � and all others… CS 101 – Meshing Winter 2007 5 Refinability II Refinement equation for B-splines � take advantage of box refinement CS 101 – Meshing Winter 2007 6
Refinability CS 101 – Meshing Winter 2007 7 B-Spline Refinement Examples 1/2 (1, 2, 1) 1/8 (1, 4, 6, 4, 1) CS 101 – Meshing Winter 2007 8
Spline Functions I Refine each B-spline in sum � example: linear B-spline 1/2 1/2 1 CS 101 – Meshing Winter 2007 9 Spline Functions II Refinement for functions � refine each B-spline in sum refined refinement bases of control points CS 101 – Meshing Winter 2007 10
Refinement of Fncts. Linear operation on control points � succinctly CS 101 – Meshing Winter 2007 11 Refinement of Fncts. Bases and control points CS 101 – Meshing Winter 2007 12
Subdivision Operator Example � cubic splines ⎛ ⎞ O M M M M O ⎜ ⎟ ⎜ L L ⎟ 1 0 0 0 ⎜ ⎟ L L 4 0 0 0 ⎜ ⎟ ⎜ ⎟ L L 6 1 0 0 ⎜ ⎟ L L 4 4 0 0 ⎜ ⎟ ⎜ ⎟ L L 1 6 1 0 ⎜ ⎟ 1 = L L S ⎜ 0 4 4 0 ⎟ 8 ⎜ ⎟ L L 0 1 6 1 ⎜ ⎟ ⎜ L L ⎟ 0 0 4 4 ⎜ ⎟ L L 0 0 1 6 ⎜ ⎟ ⎜ L L ⎟ 0 0 0 4 ⎜ ⎟ L L 0 0 0 1 ⎜ ⎟ 1/8 (1, 4, 6, 4, 1) ⎜ ⎟ O M M M M O ⎝ ⎠ CS 101 – Meshing Winter 2007 13 Subdivision Apply subdivision to control points � draw successive control polygons rather than curve itself CS 101 – Meshing Winter 2007 14
Summary so far Splines through refinement � B-splines satisfy refinement eq. � basis refinement corresponds to control point refinement � instead of drawing curve, draw control polygon � subdivision is refinement of control polygon CS 101 – Meshing Winter 2007 15 Analysis How smooth is the limit? � the subdivision matrix � a finite submatrix representative of overall subdivision operation � based on invariant neighborhoods � structure of this matrix key to understanding subdivision CS 101 – Meshing Winter 2007 16
Example Cubic B-spline � 5 control points for 1 segment on either side of the origin j S j+1 CS 101 – Meshing Winter 2007 17 Neighborhoods Which points influence a region? � for analysis around a point -1 1 CS 101 – Meshing Winter 2007 18
Eigen Analysis What happens in the limit? � behavior in neighborhood of point � apply S infinitely many times… � suppose S has complete set of EVs eigen vectors control points in invariant neighborhood CS 101 – Meshing Winter 2007 19 Convergence Limit position � let j go to infinity � if λ 0 =1 and | λ i |<1 , i= 1 ,…,n -1 � example: cubic B-spline CS 101 – Meshing Winter 2007 20
Geometric Behavior Move limit point to origin � look at higher order behavior tangent vector CS 101 – Meshing Winter 2007 21 Eigen Analysis Summary � invariant neighborhood to understand behavior around point � Eigen decomposition of subdivision matrix helpful � limit point: a 0 , tangent: a 1 General setting more complicated... CS 101 – Meshing Winter 2007 22
Surfaces Arbitrary topology input mesh � assume it is 2-manifold (with boundary) � what is 2-manifold? � non-manifold subdivision possible � mostly triangles or quads � more general allowed though CS 101 – Meshing Winter 2007 23 Subdivision in 2D Quadrilateral � interpolating � Kobbelt scheme CS 101 – Meshing Winter 2007 24
Subdivision in 2D Triangular � approximating � Loop scheme CS 101 – Meshing Winter 2007 25 The Basic Setup Topological rule � modify connectivity CS 101 – Meshing Winter 2007 26
The Basic Setup Geometric rule � compute geometric positions � local linear combination of points even at level i odd at level i CS 101 – Meshing Winter 2007 27 Irregular Vertices Triangle meshes Quad meshes regular valence 6 valence 4 irregular valence ≠ 4 valence ≠ 6 CS 101 – Meshing Winter 2007 28
Some Conditions Subdivision rules should � be simple � only a small set of different stencils � preferably precomputed offline � achieve some order of smoothness � C 1 easy, C 2 much harder � perhaps we really want fairness... CS 101 – Meshing Winter 2007 29 Some Conditions Subdivision rules should � have local definition � stencil weights only depend on the structure of a small neighborhood CS 101 – Meshing Winter 2007 30
Constructing the Rules � invariance under rotations and translations � small support � smoothness and Fairness CS 101 – Meshing Winter 2007 31 Loop Scheme (1987) Generalizes quartic box splines � simple affine combinations β =3/8k 1 1 β β 1 1-k β 6 β 3 3 β 1 1 1 β β boundary CS 101 – Meshing Winter 2007 32
Catmull-Clark (1978) Generalizes bi-cubic B-splines � Biermann et al., 2000 convex concave crease smooth boundary corner corner α 6 1 1 1 1 1-k α -k β β 1 1 6 6 1 1 1 1 boundary 1 1 CS 101 – Meshing Winter 2007 33 Control Points Vertices of initial mesh � define the surface � each influences finite part of surface CS 101 – Meshing Winter 2007 34
Constructing the Rules Start with some regular rules � define rules for Irregular Boundaries Creases etc. vertices CS 101 – Meshing Winter 2007 35 Subdivision Schemes Primal Dual � no interpolation Approx. Interp. Doo-Sabin, Kobbelt Catmull- Midedge Clark Loop Oswald & Butterfly Schröder CS 101 – Meshing Winter 2007 36
General Principle Start with rule from regular setting � repeated refinement only inserts regular vertices � almost everywhere the regular setting applies Example � generalize B-splines CS 101 – Meshing Winter 2007 37 Specific Examples D00-Sabin (CAD, 1978) � generalizes bi-quadratics 3 9 1 face degree 3 CS 101 – Meshing Winter 2007 38
Specific Examples Catmull-Clark (CAD, 1978) � generalizes bi-cubics 1 1 1 1 6 6 1 1 valence 1 1 CS 101 – Meshing Winter 2007 39 B-Spline Quad Schemes Primal schemes � based on face splits � Catmull-Clark Dual schemes � based on vertex splits � Doo-Sabin, Mid-Edge � quartic (Zorin/Schröder) CS 101 – Meshing Winter 2007 40
Quad Spline Schemes B-splines � upsampling followed by repeated averaging (Lane-Riesenfeld) � bi-linear: single average � bi-quadratic: dual average � bi-cubic: triple average � bi-quartic: quadruple average CS 101 – Meshing Winter 2007 41 Quad Schemes Topological split � every vertex splits into k (valence) � 1 step: all vertices have k=4 � 2 steps: at most one irregular face incident on each vertex CS 101 – Meshing Winter 2007 42
Smoothing Operators Two primitive operators 1/k � vertex replication 1/k 1/k � face barycenter 1/k 1/k bi-linear Doo-Sabin Catmull-Clark bi-quartic (CC variant) (variant) (new) CS 101 – Meshing Winter 2007 43 Fundamental Solutions k=4 k=9 Degrees 2 through 9 CS 101 – Meshing Winter 2007 44
Examples Control Mesh Degree 2 Degree 3 Degree 4 Degree 9 Degree 2 through 9 CS 101 – Meshing Winter 2007 45 Adaptive Subdivision 0.1 0.05 0.01 0.03 CS 101 – Meshing Winter 2007 46
Recommend
More recommend