Subdivision Surfaces 1
Geometric Modeling Geometric Modeling • Sometimes need more than polygon meshes • Sometimes need more than polygon meshes – Smooth surfaces • Traditional geometric modeling used NURBS – Non uniform rational B-Spline N if ti l B S li – Demo 2
Problems with NURBS Problems with NURBS • A single NURBS patch is either a topological • A single NURBS patch is either a topological disk, a tube or a torus • Must use many NURBS patches to model complex geometry • When deforming a surface made of NURBS • When deforming a surface made of NURBS patches, cracks arise at the seams 3
Subdivision Subdivision “Subdivision defines a smooth curve or surface as Subdivision defines a smooth curve or surface as the limit of a sequence of successive refinements” refinements 4
Subdivision Surfaces Subdivision Surfaces • Generalization of spline curves / surfaces • Generalization of spline curves / surfaces – Arbitrary control meshes – Successive refinement (subdivision) – Converges to smooth limit surface g – Connection between splines and meshes 5
Subdivision Surfaces Subdivision Surfaces • Generalization of spline curves / surfaces • Generalization of spline curves / surfaces – Arbitrary control meshes – Successive refinement (subdivision) – Converges to smooth limit surface g – Connection between splines and meshes 6
Example: Geri’s Game (Pixar) Example: Geri s Game (Pixar) • Subdivision used for • Subdivision used for – Geri’s hands and head – Clothing – Tie and shoes 7
Example: Geri’s Game (Pixar) Example: Geri s Game (Pixar) Woody’s hand (NURBS) Geri’s hand (subdivision) 8
Example: Geri’s Game (Pixar) Example: Geri s Game (Pixar) • Sharp and semi sharp features • Sharp and semi-sharp features 9
Example: Games Example: Games Supported in hardware in DirectX 11 Supported in hardware in DirectX 11 10
Subdivision Curves Subdivision Curves Given a control polygon... Given a control polygon... ...find a smooth curve related to that polygon. 11
Subdivision Curve Types Subdivision Curve Types • Approximating • Interpolating • Interpolating • Corner Cutting 12
13 Approximating Approximating
Splitting step: split each edge in two 14 Approximating Approximating
Approximating Approximating Averaging step: relocate each (original) vertex according to some (simple) rule... 15
16 Approximating Approximating Start over ... Start over ...
17 Approximating Approximating ...splitting... ...splitting...
18 Approximating Approximating ...averaging... ...averaging...
19 Approximating Approximating ...and so on... ...and so on...
Approximating Approximating If the rule is designed carefully... If the rule is designed carefully... ... the control polygons will converge to a smooth limit curve! smooth limit curve! 20
Equivalent to … Equivalent to … • Insert single new point at mid edge • Insert single new point at mid-edge • Filter entire set of points. p Catmull-Clark rule: Filter with (1/8, 6/8, 1/8) 21
Corner Cutting Corner Cutting • Subdivision rule: • Subdivision rule: – Insert two new vertices at ¼ and ¾ of each edge – Remove the old vertices – Connect the new vertices 22
B-Spline Curves B Spline Curves • Piecewise polynomial of degree n • Piecewise polynomial of degree n B spline curve B-spline curve control points control points parameter value parameter value basis functions 23
B-Spline Curves B Spline Curves • Distinguish between odd and even points • Distinguish between odd and even points • Linear B spline • Linear B-spline – Odd coefficients (1/2, 1/2) – Even coefficient (1) 24
B-Spline Curves B Spline Curves • Quadratic B Spline (Chaikin) • Quadratic B-Spline (Chaikin) – Odd coefficients (¼, ¾) demo – Even coefficients (¾ , ¼) • Cubic B-Spline (Catmull-Clark) – Odd coefficients (4/8, 4/8) – Even coefficients (1/8, 6/8, 1/8) Even coefficients (1/8, 6/8, 1/8) 25
26 Cubic B-Spline Cubic B Spline odd even
27 Cubic B-Spline Cubic B Spline even odd
28 Cubic B-Spline Cubic B Spline even odd
29 Cubic B-Spline Cubic B Spline even odd
30 Cubic B-Spline Cubic B Spline even odd
31 Cubic B-Spline Cubic B Spline even odd
32 Cubic B-Spline Cubic B Spline even odd
33 Cubic B-Spline Cubic B Spline even odd
34 Cubic B-Spline Cubic B Spline even odd
35 Cubic B-Spline Cubic B Spline even odd
36 Cubic B-Spline Cubic B Spline even odd
37 Cubic B-Spline Cubic B Spline even odd
38 Cubic B-Spline Cubic B Spline even odd
39 Cubic B-Spline Cubic B Spline even odd
B-Spline Curves B Spline Curves • Subdivision rules for control polygon • Subdivision rules for control polygon • Mask of size n yields C n -1 curve 40
Interpolating (4-point Scheme) Interpolating (4 point Scheme) • Keep old vertices • Keep old vertices • Generate new vertices by fitting cubic curve to y g old vertices • C 1 continuous limit curve C 1 ti li it 41
42 Interpolating Interpolating
43 Interpolating Interpolating
44 Interpolating Interpolating
45 Interpolating Interpolating
demo 46 Interpolating Interpolating
Subdivision Surfaces Subdivision Surfaces • No regular structure as for curves • No regular structure as for curves – Arbitrary number of edge-neighbors – Different subdivision rules for each valence 47
Subdivision Rules Subdivision Rules • How the connectivity changes • How the connectivity changes • How the geometry changes – Old points – New points e po ts
Subdivision Zoo Subdivision Zoo • Classification of subdivision schemes • Classification of subdivision schemes Primal Faces are split into sub-faces Dual D l V Vertices are split into multiple vertices ti lit i t lti l ti Approximating Control points are not interpolated Interpolating Interpolating Control points are interpolated Control points are interpolated 49
Subdivision Zoo Subdivision Zoo • Classification of subdivision schemes • Classification of subdivision schemes Primal (face split) T i Triangular meshes l h Q Quad Meshes d M h Loop(C 2 ) Catmull ‐ Clark(C 2 ) Approximating Mod Butterfly (C 1 ) Mod. Butterfly (C 1 ) Kobbelt (C 1 ) Kobbelt (C 1 ) Interpolating Interpolating Dual (vertex split) Doo ‐ Sabin, Midedge(C 1 ) Biquartic (C 2 ) Biquartic (C ) • Many more... 50
Subdivision Zoo Subdivision Zoo • Classification of subdivision schemes • Classification of subdivision schemes Primal Dual Triangles Triangles Rectangles Rectangles Approximating Loop Catmull-Clark Doo-Sabin Doo-Sabin Midedge Interpolating Butterfly Kobbelt 51
Catmull Clark Subdivision Catmull-Clark Subdivision • Generalization of bi cubic B Splines • Generalization of bi-cubic B-Splines • Primal, approximation subdivision scheme • Applied to polygonal meshes • Generates G 2 continuous limit surfaces: G 2 G t ti li it f – C 1 for the set of finite extraordinary points • Vertices with valence ≠ 4 – C 2 continuous everywhere else C co t uous e e y e e e se 52
Catmull Clark Subdivision Catmull-Clark Subdivision 53
Catmull Clark Subdivision Catmull-Clark Subdivision 54
Classic Subdivision Operators Classic Subdivision Operators • Classification of subdivision schemes • Classification of subdivision schemes Primal Dual Triangles Triangles Rectangles Rectangles Approximating Loop Catmull-Clark Doo-Sabin Doo-Sabin Midedge Interpolating Butterfly Kobbelt 55
Loop Subdivision Loop Subdivision • Generalization of box splines • Generalization of box splines • Primal, approximating subdivision scheme • Applied to triangle meshes • Generates G 2 continuous limit surfaces: G 2 G t ti li it f – C 1 for the set of finite extraordinary points • Vertices with valence ≠ 6 – C 2 continuous everywhere else C co t uous e e y e e e se 56
Loop Subdivision Loop Subdivision 57
Loop Subdivision Loop Subdivision 58
Subdivision Zoo Subdivision Zoo • Classification of subdivision schemes • Classification of subdivision schemes Primal Dual Triangles Triangles Rectangles Rectangles Approximating Loop Catmull-Clark Doo-Sabin Doo-Sabin Midedge Interpolating Butterfly Kobbelt 59
Doo Sabin Subdivision Doo-Sabin Subdivision • Generalization of bi quadratic B Splines • Generalization of bi-quadratic B-Splines • Dual, approximating subdivision scheme • Applied to polygonal meshes • Generates G 1 continuous limit surfaces: G 1 G t ti li it f – C 0 for the set of finite extraordinary points • Center of irregular polygons after 1 subdivision step – C 1 continuous everywhere else C co t uous e e y e e e se 60
Doo-Sabin Subdivision Doo Sabin Subdivision 61
Doo-Sabin Subdivision Doo Sabin Subdivision 62
Recommend
More recommend