CS-184: Computer Graphics Lecture #14: Subdivision Prof. James O’Brien University of California, Berkeley V2016-F-14-1.0 Subdivision • Start with: • Given control points for a curve or surface, find new control points for a sub-section of curve/surface • Key extension to basic idea: • Generalize to non-regular surfaces 2
Consider NURBS Surface Displaced CV Coarse mesh Large bump Control mesh dictates feature size. 3 Consider NURBS Surface Displaced CV Fine mesh Small bump Control mesh dictates feature size. Excessive detail 4
Tensor Product Surface Refinement Refinement must be constant across u or v directions 5 Bézier Subdivision x ( u ) = ∑ b i ( u ) p i i x ( u ) = [ 1 , u , u 2 , u 3 ] β z P Vector of control points 1 0 0 0 u ∈ [ 0 .. 1 ] − 3 3 0 0 β z = 3 − 6 3 0 − 1 3 − 3 1 6
Bézier Subdivision x ( u ) = [ 1 , u , u 2 , u 3 ] β z P 1 0 0 0 u ∈ [ 0 .. 1 / 2 ] − 3 3 0 0 β z = u ∈ [ 1 / 2 .. 1 ] 3 − 6 3 0 − 1 3 − 3 1 7 Bézier Subdivision x ( u ) = [ 1 , u , u 2 , u 3 ] β z P Can’t change these.... 1 0 0 0 u ∈ [ 0 .. 1 ] − 3 3 0 0 β z = u ∈ [ 0 .. 1 ] 3 − 6 3 0 − 1 3 − 3 1 8
Bézier Subdivision x ( u ) = [ 1 , u , u 2 , u 3 ] β z P u ∈ [ 0 .. 1 2 ] 2 , u 2 4 , u 3 x ( u ) = [ 1 , u 8 ] β z P u ∈ [ 0 .. 1 ] x ( u ) = [ 1 , u , u 2 , u 3 ] S 1 β z P x ( u ) = [ 1 , u , u 2 , u 3 ] β z β − 1 z S 1 β z P 1 0 0 0 0 1 / 2 0 0 S 1 = 1 / 4 0 0 0 x ( u ) = [ 1 , u , u 2 , u 3 ] β z H z 1 P 1 / 8 0 0 0 9 Bézier Subdivision x ( u ) = [ 1 , u , u 2 , u 3 ] β z H z 1 P x ( u ) = [ 1 , u , u 2 , u 3 ] β z P 1 P 1 = H z 1 P 1 0 0 0 1 1 0 0 2 2 H z 1 = 1 1 1 0 4 2 4 1 3 3 1 8 8 8 8 10
Bézier Subdivision x ( u ) = [ 1 , u , u 2 , u 3 ] β z P 2 P 2 = H z 2 P 1 1 1 1 3 3 1 1 2 4 8 8 8 8 8 1 1 1 1 1 3 0 0 4 2 4 S 2 = 2 2 8 H z 2 = 1 3 1 1 0 0 0 0 4 8 2 2 1 0 0 0 1 0 0 0 8 11 Bézier Subdivision P 2 · = H Z 2 P x ( u , v ) = [ 1 , u , u 2 , u 3 ] β z P β T z [ 1 , v , v 2 , v 3 ] T 4 x 4 matrix of control points 12
Bézier Subdivision P 21 = H Z 2 P H T Z 1 x ( u , v ) = [ 1 , u , u 2 , u 3 ] β z P β T z [ 1 , v , v 2 , v 3 ] T 4 x 4 matrix of control points 13 Regular B-Spline Subdivision Orthographic top-down view 3D Perspective view 14
Regular B-Spline Subdivision Orthographic top-down view 3D Perspective view 15 Regular B-Spline Subdivision x ( u , v ) = [ 1 , u , u 2 , u 3 ] β B P β T B [ 1 , v , v 2 , v 3 ] T P 11 = H B1 P H T B1 16
Regular B-Spline Subdivision P 11 = H B1 P H T B1 In this parametric view these knot points are collocated. The 3D control points are not. 17 Regular B-Spline Subdivision P 11 = H B1 P H T B1 P 12 = H B1 P H T B2 18
Regular B-Spline Subdivision P 11 = H B1 P H T B1 P 12 = H B1 P H T B2 P 22 = H B2 P H T B2 19 Regular B-Spline Subdivision P 11 = H B1 P H T B1 P 12 = H B1 P H T B2 P 22 = H B2 P H T B2 P 21 = H B2 P H T B1 1 3 1 0 1 1 0 0 8 4 8 2 2 1 1 0 0 1 3 1 0 2 2 8 4 8 H B2 = H B1 = 1 3 1 0 1 1 0 0 8 4 8 2 2 1 1 0 0 1 3 1 0 2 2 8 4 8
Regular B-Spline Subdivision P i + 1 = H P i 25 x 16 subdivision matrix Length 16 vector of coarse CPs Length 25 vector of fine CPs Regular B-Spline Subdivision P i + 1 = H P i Inspection would reveal a pattern • Face points • Edge points • Vertex points
Regular B-Spline Subdivision f = v 1 + v 2 + v 3 + v 4 Face point Edge point 4 v 1 v 4 v 1 f e = v 1 + v 2 + f 1 + f 2 e f 1 f 2 4 v 2 v 3 v 2 Vertex point m 1 f 1 f 2 v = f 1 + f 2 + f 3 + f 4 + 2 ( m 1 + m 2 + m 3 + m 4 )+ 4 p p 16 m 4 v m 2 m midpoint of edge, not “edge point” f 3 f 4 m 3 p old “vertex point” Regular B-Spline Subdivision • Recall that control mesh approaches surface
Regular B-Spline Subdivision • Limit of subdivision is the surface Irregular B-Spline Subdivision • Catmull-Clark Subdivision • Generalizes regular B-Spine subdivision An irregular patch Non-quad face Extraordinary vertex
Irregular B-Spline Subdivision • Catmull-Clark Subdivision • Generalizes regular B-Spine subdivision • Rules reduce to regular for ordinary vertices/faces f = average of surrounding vertices e = f 1 + f 2 + v 1 + v 2 4 ¯ n + 2 ¯ f n + p ( n − 3 ) m v = n m = average of adjacent midpoints ¯ ¯ f = average of adjacent face points n = valence of vertex Catmull-Clark Subdivision 28
Catmull-Clark Subdivision 29 Catmull-Clark Subdivision 30
Catmull-Clark Subdivision 31 Continuity of Catmull-Clark • In “ordinary” regions C 2 • Surface is fully everywhere except extraordinary points • Fast evaluation by matrix exponentiation • See “ Exact Evaluation Of Catmull-Clark Subdivision Surfaces At Arbitrary Parameter Values” by Jos Stam, SIGGRAPH 1998. • At extraordinary points C 1 • Surface is at least • Curvature is Lipschitz continuous at extraordinary points 32
Catmull-Clark Subdivision 33 Catmull-Clark Subdivision 34
Catmull-Clark Subdivision 35 Catmull-Clark Subdivision 36
Recommend
More recommend