curves and splines outline
play

Curves and Splines Outline Hermite Splines Catmull-Rom Splines - PowerPoint PPT Presentation

Curves and Splines Outline Hermite Splines Catmull-Rom Splines Bezier Curves Higher Continuity: Natural and B-Splines Drawing Splines Modeling Complex Shapes We want to build models of very complicated objects An


  1. Curves and Splines

  2. Outline • Hermite Splines • Catmull-Rom Splines • Bezier Curves • Higher Continuity: Natural and B-Splines • Drawing Splines

  3. Modeling Complex Shapes • We want to build models of very complicated objects • An equation for a sphere is possible, but how about an equation for a telephone, or a face? • Complexity is achieved using simple pieces – polygons, parametric curves and surfaces, or implicit curves and surfaces – This lecture: parametric curves 3

  4. What Do We Need From Curves in Computer Graphics? • Local control of shape (so that easy to build and modify) • Stability • Smoothness and continuity Demo • Ability to evaluate derivatives • Ease of rendering 4

  5. Curve Usage Demo

  6. Curve Representations • Explicit: y = f(x) y y mx b = + – Easy to generate points – Must be a function: big limitation—vertical lines? x 5

  7. Curve Representations • Explicit: y = f(x) y y mx b = + – Easy to generate points – Must be a function: big limitation—vertical lines? x y • Implicit: f(x,y) = 0 2 2 2 x y r 0 + ! = + Easy to test if on the curve x – Hard to generate points 6

  8. Curve Representations • Explicit: y = f(x) y y mx b = + + Easy to generate points – Must be a function: big limitation—vertical lines? x y • Implicit: f(x,y) = 0 u= " " /2 " " 2 2 2 x y r 0 + ! = u= " " " " u=0 + Easy to test if on the curve x – Hard to generate points • Parametric: (x,y) = ( f(u), g(u)) ( x , y ) (cos u , sin u ) = + Easy to generate points 7

  9. Parameterization of a Curve • Parameterization of a curve: how a change in u moves you along a given curve in xyz space. • There are an infinite number of parameterizations of a given curve. Slow, fast, speed continuous or discontinuous, clockwise (CW) or CCW… 8

  10. Polynomial Interpolation • An n -th degree polynomial fits a curve to n+1 points – called Lagrange Interpolation – result is a curve that is too wiggly, change to any control point affects entire curve (nonlocal) – this method is poor • We usually want the curve to be as smooth as possible – minimize the wiggles – high-degree polynomials are bad 9

  11. Linear Interpolation Chalkboard

  12. Spline Interpolation

  13. Spine Interpolation Demo

  14. Splines: Piecewise Polynomials • A spline is a piecewise polynomial - many low degree polynomials are used to interpolate (pass through) the control points • Cubic piecewise polynomials are the most common: – piecewise definition gives local control 10

  15. Piecewise Polynomials • Spline: lots of little polynomials pieced together • Want to make sure they fit together nicely Continuous in Continuous in Continuous in position, tangent, position position and tangent vector and curvature 11

  16. Splines • Types of splines: – Hermite Splines – Catmull-Rom Splines – Bezier Splines – Natural Cubic Splines – B-Splines – NURBS 12

  17. Hermite Curves • Cubic Hermite Splines P 2 P 1 P o That is, we want a way to specify the end points and the slope at the end points! 7

  18. Splines chalkboard 13

  19. The Cubic Hermite Spline Equation • Using some algebra, we obtain: & # & # p 2 2 1 1 " 1 $ ! $ ! 3 3 2 1 p " " " $ ! $ ! [ ] 2 3 2 p ( u ) u u u 1 = $ ! $ ! 0 0 1 0 p ! 1 $ ! $ ! % " 1 0 0 0 % p " ! 2 point that basis control matrix gets drawn (what the user gets to pick) • This form typical for splines – basis matrix and meaning of control matrix change with the spline type 14

  20. The Cubic Hermite Spline Equation • Using some algebra, we obtain: & # & # p 2 2 1 1 " 1 $ ! $ ! 3 3 2 1 p " " " $ ! $ ! [ ] 2 3 2 p ( u ) u u u 1 = $ ! $ ! 0 0 1 0 p ! 1 $ ! $ ! % " 1 0 0 0 % p " ! 2 point that basis control matrix gets drawn (what the user gets to pick) T & # 3 2 & # 2 u 3 u 1 " + p $ ! 1 $ ! 3 2 $ ! p 2 u 3 u " + $ ! 4 Basis Functions 2 p ( u ) = $ ! $ ! 3 2 p ! u 2 u u " + $ ! 1 $ ! $ ! % p " ! 3 2 % " u u " 2 15

  21. Four Basis Functions for Hermite splines T & # 3 2 & # 2 u 3 u 1 " + p $ ! 1 $ ! 3 2 $ 2 u 3 u ! p " + $ ! 2 p ( u ) = $ ! $ ! 3 2 p ! u 2 u u " + $ ! 1 $ ! $ ! % p " ! 3 2 % u u " " 2 4 Basis Functions u Every cubic Hermite spline is a linear combination (blend) of these 4 functions 16

  22. Piecing together Hermite Curves • It's easy to make a multi-segment Hermite spline – each piece is specified by a cubic Hermite curve – just specify the position and tangent at each “joint” – the pieces fit together with matched positions and first derivatives – gives C1 continuity • The points that the curve has to pass through are called knots or knot points 17

  23. Outline • Hermite Splines • Catmull-Rom Splines • Bezier Curves • Higher Continuity: Natural and B-Splines • Drawing Splines

  24. Problem with Hermite Splines? • Must explicitly specify derivatives at each endpoint! • How can we solve this?

  25. Catmull-Rom Splines • Use for the roller-coaster assignment • With Hermite splines, the designer must specify all the tangent vectors • Catmull-Rom: an interpolating cubic spline with built- in C 1 continuity . P 2 P 1 tangent at p i = s(p i+1 - p i-1 ) P o 8

  26. Catmull-Rom Splines • Use for the roller-coaster (next programming assignment) • With Hermite splines, the designer must arrange for consecutive tangents to be collinear, to get C 1 continuity. This gets tedious. • Catmull-Rom: an interpolating cubic spline with built- in C 1 continuity . chalkboard 18

  27. Catmull-Rom Spline Matrix & # & # p s 2 s s 2 s ! ! ! 1 $ ! $ ! p 2 s s 3 3 2 s s ! ! ! $ ! $ ! [ ] 2 3 2 p ( u ) u u u 1 = $ ! $ ! s 0 s 0 p ! 3 $ ! $ ! % " 0 1 0 0 % p " 4 CR basis spline coefficients control vector • Derived similarly to Hermite • Parameter s is typically set to s=1/2. 19

  28. Catmull-Rom Spline Matrix & # & # x y z s 2 s s 2 s ! ! ! 1 1 1 $ ! $ ! 2 s s 3 3 2 s s x y z ! ! ! $ ! $ ! ] [ ] [ 2 2 2 3 2 x y z u u u 1 = $ ! $ ! s 0 s 0 x y z ! 3 3 3 $ ! $ ! % " 0 1 0 0 % x y z " 4 4 4 CR basis spline coefficients control vector 20

  29. Catmull-Rom Splines • Use for the roller-coaster assignment • With Hermite splines, the designer must specify all the tangent vectors • Catmull-Rom: an interpolating cubic spline with built- in C 1 continuity . 9

  30. Catmull-Rom Spline Matrix & # & # p s 2 s s 2 s ! ! ! 1 $ ! $ ! p 2 s s 3 3 2 s s ! ! ! $ ! $ ! [ ] 2 3 2 p ( u ) u u u 1 = $ ! $ ! s 0 s 0 p ! 3 $ ! $ ! % " 0 1 0 0 % p " 4 CR basis control vector • Derived similarly to Hermite • Parameter s is typically set to s=1/2. 10

  31. Cubic Curves in 3D • Three cubic polynomials, one for each coordinate – x(u) = a x u 3 +b x u 2 +c x u+d x – y(u) = a y u 3 +b y u 2 +c y u+d y – z(u) = a z u 3 +b z u 2 +c z u+d z • In matrix notation & # a a a x y z $ ! b b b ] [ ] $ ! x y z 3 2 [ x ( u ) y ( u ) z ( u ) u u u 1 = $ ! c c c x y z $ ! d d d % " x y z 11

  32. Catmull-Rom Spline Matrix in 3D & # & # x y z s 2 s s 2 s ! ! ! 1 1 1 $ ! $ ! 2 s s 3 3 2 s s x y z ! ! ! $ ! $ ! ] [ ] [ 2 2 2 3 2 x ( u ) y ( u ) z ( u ) u u u 1 = $ ! $ ! s 0 s 0 x y z ! 3 3 3 $ ! $ ! % " 0 1 0 0 % x y z " 4 4 4 CR basis control vector 12

  33. Outline • Hermite Splines • Catmull-Rom Splines • Bezier Curves • Higher Continuity: Natural and B-Splines • Drawing Splines

  34. Problem with Catmull-Rom Splines? • No control of derivatives at endpoints! • How can we solve this? • We want something intuitive.

  35. Bezier Curves* • Another variant of the same game • Instead of endpoints and tangents, four control points – points P0 and P3 are on the curve: P(u=0) = P0, P(u=1) = P3 – points P1 and P2 are off the curve – P'(u=0) = 3(P1-P0), P'(u=1) = 3(P3 – P2) • Convex Hull property – curve contained within convex hull of control points • Gives more control knobs (series of points) than Hermite • Scale factor (3) is chosen to make “velocity” approximately constant 13

  36. Bezier Spline Example

  37. The Bezier Spline Matrix* & # & # x y z 1 3 3 1 ! ! 1 1 1 $ ! $ ! 3 6 3 0 x y z ! $ ! $ ! ] [ ] [ 2 2 2 3 2 x y z u u u 1 = $ ! $ ! x y z 3 3 0 0 ! 3 3 3 $ ! $ ! % 1 0 0 0 " % x y z " 4 4 4 Bezier Bezier basis control vector 14

  38. Bezier Blending Functions* Also known as the order 4, degree 3 Bernstein polynomials Nonnegative, sum to 1 The entire curve lies inside the polyhedron bounded by the control points 15

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