CS-184: Computer Graphics Lecture #14: Subdivision Prof. James O’Brien University of California, Berkeley V2009-F-14-1.0 Subdivision • Start • Given control points for a curve or surface, find new control points for a sub-section of curve/surface • Key • with: extension to basic idea: Generalize to non-regular surfaces 2 Consider NURBS Surface Coarse mesh Displaced CV Large bump Control mesh dictates feature size. 3 Consider NURBS Surface Fine mesh Displaced CV Small bump Control mesh dictates feature size. Excessive detail 4 Tensor Product Surface Refinement must be constant across u or v directions 5 Bézier Subdivision x(u) = ∑ bi(u) pi i x(u) = [1, u, u2, u3] βz P Vector of control points u ∈ [0..1] 1 0 0 −3 3 0 βz = 3 −6 3 −1 3 −3 0 0 0 1 6 Bézier Subdivision x(u) = [1, u, u2, u3] βz P u ∈ [0..1/2] u ∈ [1/2..1] 1 0 0 −3 3 0 βz = 3 −6 3 −1 3 −3 0 0 0 1 7 Bézier Subdivision x(u) = [1, u, u2, u3] βz P Can’t change these.... u ∈ [0..1] u ∈ [0..1] 1 0 0 −3 3 0 βz = 3 −6 3 −1 3 −3 0 0 0 1 8 Bézier Subdivision x(u) = [1, u, u2, u3] βz P 1 u ∈ [0.. ] 2 u u2 u3 x(u) = [1, , , ]βzP 2 4 8 u ∈ [0..1] x(u) = [1, u, u2, u3]S1βzP 1 0 0 0 0 1/2 0 0 S1 = 0 0 1/4 0 0 0 0 1/8 x(u) = [1, u, u2, u3]βzβ−1 z S1βzP x(u) = [1, u, u2, u3]βzHz1P 9 Bézier Subdivision x(u) = [1, u, u2, u3]βzHz1P x(u) = [1, u, u2, u3]βzP1 Hz1 = 1 1 2 1 4 1 8 0 1 2 1 2 3 8 0 0 1 4 3 8 0 0 0 P1 = Hz1P 1 8 10 Bézier Subdivision x(u) = [1, u, u2, u3]βzP2 P2 = Hz2P 1 8 0 Hz2 = 0 0 3 8 1 4 0 0 3 8 1 2 1 2 0 1 8 1 4 1 2 1 1 0 S2 = 0 0 1 2 1 2 0 0 1 4 1 2 1 4 0 1 8 3 8 3 8 1 8 11 Bézier Subdivision P2· = HZ2 P x(u, v) = [1, u, u2, u3]βzPβTz[1, v, v2, v3]T 4 x 4 matrix of control points 12 Bézier Subdivision P21 = HZ2 P HTZ1 x(u, v) = [1, u, u2, u3]βzPβTz[1, v, v2, v3]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, u2, u3]βB P βTB[1, v, v2, v3]T P11 = HB1 P HTB1 16 Regular B-Spline Subdivision P11 = HB1 P HTB1 In this parametric view these knot points are collocated. The 3D control points are not. 17 Regular B-Spline Subdivision P11 = HB1 P HTB1 P12 = HB1 P HTB2 18 Regular B-Spline Subdivision P11 = HB1 P HTB1 P12 = HB1 P HTB2 P22 = HB2 P HTB2 19 Regular B-Spline Subdivision P11 = HB1 P HTB1 P12 = HB1 P HTB2 P22 = HB2 P HTB2 P21 = HB2 P HTB1 1 2 1 8 HB1 = 0 0 1 2 3 4 1 2 1 8 0 0 1 8 1 2 3 4 1 8 3 4 1 2 1 8 0 0 HB2 = 0 0 1 0 0 8 1 8 1 2 3 4 1 2 0 0 1 8 1 2 Regular B-Spline Subdivision Length 16 vector of coarse CPs 25 x 16 subdivision matrix Length 25 vector of fine CPs Pi+1 = H Pi Regular B-Spline Subdivision Pi+1 = H Pi Inspection would reveal a pattern • Face points • Edge points • Vertex points Regular B-Spline Subdivision v1 Face point v4 f v2 m1 f 2 f1 m4 f3 v3 p v m2 m3 f4 f= v1 + v2 + v3 + v4 4 Edge point e= v1 + v2 + f1 + f2 4 f1 v1 e v2 Vertex point v= f1 + f2 + f3 + f4 + 2(m1 + m2 + m3 + m4) + 4p 16 m midpoint of edge, not “edge point” p old “vertex point” Regular B-Spline Subdivision • Recall f2 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 f1 + f2 + v1 + v2 e= 4 f¯ 2m̄ p(n − 3) v= + + n n 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 Catmull-Clark Subdivision 32 Catmull-Clark Subdivision 33 Catmull-Clark Subdivision 34 Catmull-Clark Subdivision 35
© Copyright 2026 Paperzz