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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend