the essentials of cagd
play

The Essentials of CAGD Chapter 12: Composite Surfaces Gerald Farin - PowerPoint PPT Presentation

The Essentials of CAGD Chapter 12: Composite Surfaces Gerald Farin & Dianne Hansford CRC Press, Taylor & Francis Group, An A K Peters Book www.farinhansford.com/books/essentials-cagd 2000 c Farin & Hansford The Essentials of


  1. The Essentials of CAGD Chapter 12: Composite Surfaces Gerald Farin & Dianne Hansford CRC Press, Taylor & Francis Group, An A K Peters Book www.farinhansford.com/books/essentials-cagd � 2000 c Farin & Hansford The Essentials of CAGD 1 / 30

  2. Outline Introduction to Composite Surfaces 1 Composite B´ ezier Surfaces 2 B-spline Surfaces 3 B-Spline Surface Approximation 4 B-Spline Surface Interpolation 5 Subdivision Surfaces: Doo-Sabin 6 Subdivision Surfaces: Catmull-Clark 7 Farin & Hansford The Essentials of CAGD 2 / 30

  3. Introduction to Composite Surfaces Composite surface: surface composed of more than one patch One B´ ezier patch rarely flexible enough to model a real life part More common: many patches stitched together ⇒ Composite B´ ezier surface or B-spline surface Subdivision surfaces are another popular type of composite surface – Used by many animation studios – Figure taken from “A Bug’s Life” from Pixar Studios. Farin & Hansford The Essentials of CAGD 3 / 30

  4. Composite B´ ezier Surfaces “Left” bicubic B´ ezier patch: b i , j 0 ≤ i , j ≤ 3 domain: [ u 0 , u 1 ] × [ v 0 , v 1 ] ”Right” bicubic B´ ezier patch: b i , j 3 ≤ i ≤ 6 0 ≤ j ≤ 3 domain: [ u 1 , u 2 ] × [ v 0 , v 1 ] Both share a common control point and domain boundary Farin & Hansford The Essentials of CAGD 4 / 30

  5. Composite B´ ezier Surfaces Smoothness between patches Composite control net contains four rows of control points: b 0 , 0 , . . . , b 6 , 0 b 1 , 0 , . . . , b 6 , 1 b 2 , 0 , . . . , b 6 , 2 b 3 , 0 , . . . , b 6 , 3 Each row interpreted as the piecewise B´ ezier polygon of a composite cubic curve over the knot sequence u 0 , u 1 , u 2 Surface is C 1 if all rows satisfy curve C 1 conditions Farin & Hansford The Essentials of CAGD 5 / 30

  6. Composite B´ ezier Surfaces Knots: u i : 0 , 1 , 3 , 4 “horizontal” v j : 0 , 1 , 2 , 3 For bicubics: b 3 , j = ∆ 1 ∆ b 2 , j + ∆ 0 ∆ b 4 , j j = 0 , 1 , 2 , 3 ∆ 0 = u 1 − u 0 ∆ 1 = u 2 − u 1 ∆ = u 2 − u 0 ⇒ Points b 2 , j , b 3 , j , b 4 , j must be collinear and in the same ratio: ratio ( b 2 , j , b 3 , j , b 4 , j ) = ∆ 0 ∆ 1 Farin & Hansford The Essentials of CAGD 6 / 30

  7. Composite B´ ezier Surfaces C 1 conditions for composite surfaces are quite simple to handle Rectangular network of patches with u - and v -knot sequences ⇒ Inflexibility in shape control If not all u − isoparametric curves have similar shape, then a common knot sequence for all of them is problematic Same holds for the v -curves Farin & Hansford The Essentials of CAGD 7 / 30

  8. B-spline Surfaces B-spline curve: x ( u ) = d 0 N n 0 ( u ) + . . . + d D − 1 N n x ( u ) = N T D D − 1 ( u ) ⇒ B-spline surface x ( u , v ): N n     d 0 , 0 d 0 , E − 1 0 ( v ) . . . . . . � N m N m D − 1 ( u ) � . . . x ( u , v ) = 0 ( u ) . . .     . . .     N n E − 1 ( v ) d D − 1 , 0 d D − 1 , E − 1 . . . Abbreviated to x ( u , v ) = M T D N Over knot sequences u 0 , u 1 , . . . , u R − 1 v 0 , v 1 , . . . , v S − 1 Farin & Hansford The Essentials of CAGD 8 / 30

  9. B-spline Surfaces B-spline surfaces enjoy all the properties of B´ ezier patches – Symmetry – Affine invariance – Convex hull property – Etc. One difference: Boundary polygons/boundary curves correspondence – Only with full multiplicity of end knots Bicubic B-spline surface – Analogous to endpoint over knot sequences interpolation property of B-spline u i = 0 , 1 , 2 , 3 , 4 , 5 curves v j = 0 , 1 , 2 , 3 , 4 Farin & Hansford The Essentials of CAGD 9 / 30

  10. B-spline Surfaces Local control: If one control point is moved Only up to ( m + 1)( n + 1) patches in vicinity affected Two control nets differ by only one control point – Marked in gray for either net – Surface differences appear through Moir´ e patterns “waves” not part of either surface Farin & Hansford The Essentials of CAGD 10 / 30

  11. B-spline Surfaces Isoparametric curve: curve on surface formed by fixing one parameter – For example: u = ¯ u Represent isocurve as B-spline curve C = M T D = [ c 0 , . . . , c E − 1 ] Factor x ( u , v ) = M T D N as x (¯ u , v ) = C N ⇒ B-spline curve with variable v – As v varies, x (¯ u , v ) traces out the desired isocurve Try forming isocurve x ( u , ¯ v ) An isocurve control polygon may be treated as any other curve Farin & Hansford The Essentials of CAGD 11 / 30

  12. B-spline Surfaces B-spline surface consists of a collection of individual polynomial patches Each may be written in B´ ezier form Obtain patch control nets: Convert each row of control 1 points into piecewise B´ ezier form Convert each column of result 2 into piecewise B´ ezier form Top: bicubic B-spline surface Middle: B-spline control polygon Bottom: piecewise B´ ezier control net Farin & Hansford The Essentials of CAGD 12 / 30

  13. B-spline Surfaces Another example: B-spline control net the same as previous figure Different knot sequence in the u − direction Knot sequences: u i : 0 , 3 , 4 v j : 0 , 1 , 2 , 3 Farin & Hansford The Essentials of CAGD 13 / 30

  14. B-Spline Surface Approximation Given : Data points p k ; k = 0 , . . . , K − 1 Find : a B-spline surface that approximates the data Need more information to solve problem: B-spline surface specifications u - and v -knot sequences u - and v -degrees Each data point p k associated with a pair of parameters ( u k , v k ) – Parameters expected to be in domain of B-spline surface B-spline surface (written with linearized ordering of terms)   d 0 , 0 . N m 0 ( u ) N n 0 ( v ) , . . . , N m D − 1 ( u ) N n . � � x ( u , v ) = E − 1 ( v )   .   d D − 1 , E − 1 Farin & Hansford The Essentials of CAGD 14 / 30

  15. B-Spline Surface Approximation For the k th data point: p k = x ( u k , v k )   d 0 , 0 . N m 0 ( u k ) N n 0 ( v k ) , . . . , N m D − 1 ( u k ) N n � � . x ( u k , v k ) = E − 1 ( v k )   .   d D − 1 , E − 1 Combining all K of these equations N m 0 ( u 0 ) N n N m D − 1 ( u 0 ) N n    0 ( v 0 ) E − 1 ( v 0 )  p 0 . . . . . . .       . . d 0 , 0     . . .     . . . =       . . .        .   .  d D − 1 , E − 1 . .     . .     N m 0 ( u K − 1 ) N n N m D − 1 ( u K − 1 ) N n 0 ( v K − 1 ) E − 1 ( v K − 1 ) p K − 1 . . . P = M D Least squares solution found by solving M T P = M T M D ⇒ System of normal equations Farin & Hansford The Essentials of CAGD 15 / 30

  16. B-Spline Surface Approximation Least squares solution – may have unsatisfactory shape in some cases – may not be solvable if “holes” exist in data distribution Shape equations are a tool to overcome these problems Motivation: In a “nice” mesh, each control mesh quadrilateral is a parallelogram d i , j + d i +1 , j +1 − d i +1 , j − d i , j +1 = 0 Add each of the equations to the overdetermined system Solve system using normal equations Farin & Hansford The Essentials of CAGD 16 / 30

  17. B-Spline Surface Approximation Example: least squares B-spline surface fit to a shoe last Farin & Hansford The Essentials of CAGD 17 / 30

  18. B-Spline Surface Interpolation Bicubic B-spline surfaces interpolation problem Given : a P × Q rectangular array of data points p i , j Find : an interpolating bicubic B-spline surface Corners of the patch go through the given data points Surface knot sequences u i for 0 ≤ i < R and v i for 0 ≤ i < S where R = P + 4 and S = Q + 4 Surface control net d i , j 0 ≤ i < D , 0 ≤ j < E must have D = P + 2 and E = Q + 2 control points Farin & Hansford The Essentials of CAGD 18 / 30

  19. B-Spline Surface Interpolation Solution : reduce it to a series of curve interpolation problems Interpret the given P × Q array of data points as a set of P rows of points To each row with Q points, fit a B-spline curve ⇒ Q + 2 control points in each row Produces a P × ( Q + 2) net of control points c i , j c i , j treated in a column-by-column fashion: To each of these ( Q + 2) columns, fit a B-spline curve through P points ⇒ results in P + 2 control points in each column Final result : ( P + 2) × ( Q + 2) control net d i , j ⇒ Surface interpolating the given P × Q array of data points This curve-based approach saves computing time: Solve tridiagonal linear systems – One matrix for all row problems and one matrix for all column problems Farin & Hansford The Essentials of CAGD 19 / 30

  20. B-Spline Surface Interpolation Example: Given : a 2 × 3 array of data points � p 0 , 0 � p 0 , 1 p 0 , 2 p 1 , 0 p 1 , 1 p 1 , 2 To each row, fit a B-spline curve ⇒ resulting in two control polygons � � c 0 , 0 c 0 , 1 c 0 , 2 c 0 , 3 c 0 , 4 c 1 , 0 c 1 , 1 c 1 , 2 c 1 , 3 c 1 , 4 Treat each of five columns as a set of curve data points   d 0 , 0 d 0 , 1 d 0 , 2 d 0 , 3 d 0 , 4 d 1 , 0 d 1 , 1 d 1 , 2 d 1 , 3 d 1 , 4     d 2 , 0 d 2 , 1 d 2 , 2 d 2 , 3 d 2 , 4   d 3 , 0 d 3 , 1 d 3 , 2 d 3 , 3 d 3 , 4 d i , j form the interpolating surface control mesh Farin & Hansford The Essentials of CAGD 20 / 30

Recommend


More recommend