blossoms
play

Blossoms CS 419 Advanced Topics in Computer Graphics John C. Hart - PowerPoint PPT Presentation

Blossoms CS 419 Advanced Topics in Computer Graphics John C. Hart Borrowed somewhat from Tom Sederbergs notes p 1 de Casteljau p 12 p 2 p 012 1- t de Casteljau algorithm p 123 p 0123 evaluates a point on a p 01 Bezier curve by t


  1. Blossoms CS 419 Advanced Topics in Computer Graphics John C. Hart Borrowed somewhat from Tom Sederberg’s notes

  2. p 1 de Casteljau p 12 p 2 p 012 1- t • de Casteljau algorithm p 123 p 0123 evaluates a point on a p 01 Bezier curve by t scaffolding lerps p 23 • Blossoming renames the p 0 control and intermediate p 3 points, like p 12 , using a polar form, like p (0, t ,1)

  3. p (1,0,0) de Casteljau p 12 p (1,1,0) p 012 1- t • de Casteljau algorithm p 123 p 0123 evaluates a point on a p 01 Bezier curve by t scaffolding lerps p 23 • Blossoming renames the p (0,0,0) control and intermediate p (1,1,1) points, like p 12 , using a polar form, like p (0, t ,1)

  4. p (1,0,0) de Casteljau p (1, t ,0) p (1,1,0) p 012 1- t • de Casteljau algorithm p 123 p 0123 evaluates a point on a p ( t ,0,0) Bezier curve by t p (1,1, t ) scaffolding lerps • Blossoming renames the p (0,0,0) control and intermediate p (1,1,1) points, like p 12 , using a polar form, like p (0, t ,1)

  5. p (1,0,0) de Casteljau p (1, t ,0) p (1,1,0) p ( t , t ,0) 1- t • de Casteljau algorithm p (1, t , t ) p 0123 evaluates a point on a p ( t ,0,0) Bezier curve by t p (1,1, t ) scaffolding lerps • Blossoming renames the p (0,0,0) control and intermediate p (1,1,1) points, like p 12 , using a polar form, like p (0, t ,1)

  6. p (1,0,0) de Casteljau p (1, t ,0) p (1,1,0) p ( t , t ,0) 1- t • de Casteljau algorithm p (1, t , t ) evaluates a point on a p ( t , t , t ) p ( t ,0,0) Bezier curve by t p (1,1, t ) scaffolding lerps • Blossoming renames the p (0,0,0) control and intermediate p (1,1,1) points, like p 12 , using a polar form, like p (0, t ,1)

  7. p (1,0,0) Blossoming Rules p (1, t ,0) p (1,1,0) p ( t , t ,0) 1- t • # of parameters = degree p (1, t , t ) • Order doesn’t matter p ( t , t , t ) p ( t ,0,0) p ( a , b , c ) = p ( b , a , c ) t p (1,1, t ) • Linear in any parameter p (0,0,0) a p ( a , b , c ) = p ( a a , b , c ) = p ( a , a b , c ) p (1,1,1) p ( a , b + c , d ) = p ( a , b , d ) + p ( a , c , d ) • Lerping: (1- t ) p (0,0,0) + t p (1,0,0) = p (0 (1- t ),0,0) + p (1 t ,0,0) = p (0 (1- t ) + 1 t ,0,0) = p ( t ,0,0)

  8. p (1,0,0) Evaluation p (1, t ,0) p (1,1,0) p ( t , t ,0) 1- t • Goal is to find p ( t ) by p (1, t , t ) diagonalization, by p ( t , t , t ) p ( t ,0,0) manipulating blossoms t p (1,1, t ) into p ( t , t , t ) • de Casteljau algorithm blossoms p (0,0,0) into Bernstein polynomials p (1,1,1) p ( t ) = p ( t , t , t ) = (1- t ) p ( t , t ,0) + t p ( t , t ,1) = (1- t )[(1-t) p ( t ,0,0) + t p ( t ,0,1)] + t [(1- t ) p ( t ,0,1) + t p ( t ,1,1)] = (1- t ) 2 p ( t ,0,0) + 2 (1- t ) t p ( t ,0,1) + t 2 p ( t ,1,1) = (1- t ) 2 [(1- t ) p (0,0,0)+ t p (1,0,0)] +2 (1- t ) t [(1- t ) p (0,0,1)+ t p (1,0,1)] + t 2 [(1- t ) p (0,1,1)+ t p (1,1,1)] = (1- t ) 3 p (0,0,0) + 3 (1- t ) 2 t p (0,0,1) + 3 (1- t ) t 2 p (0,1,1) + t 3 p (1,1,1)

  9. B-Spline Blossoms • Three segments: [2,3],[3,4],[4,5] p (2,3,4) p (3,4,5) • Points within each segment influenced by four surrounding t =3 t =4 control points p (1,2,3) • Knots influenced by three p (4,5,6) t =2 t =5 surrounding control points • Need two extra knots at each end of knot vector p (0,1,2) p (5,6,7) (in general, d -1 extra knots at each end) knot vector: [0 1 2 3 4 5 6 7]

  10. Bohm Blossoms • Trick: Think of each segment p (2,3,4) p (3,4,5) as a Bezier curve t =3 t =4 p (1,2,3) p (4,5,6) t =2 t =5 p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 4 5 6 7]

  11. Bohm Blossoms • Trick: Think of each segment p (2,3,4) p (3,4,5) as a Bezier curve p (3,3,3) p (4,4,4) p (1,2,3) p (4,5,6) p (2,2,2) p (5,5,5) p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 4 5 6 7]

  12. Bohm Blossoms • Trick: Think of each segment p (2,3,4) p (3,4,5) as a Bezier curve • Where should the other p (3,3,3) two control points go p (1,2,3) for the [2,3] segment? p (4,5,6) p (2,2,2) p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 4 5 6 7]

  13. Bohm Blossoms • Trick: Think of each segment p (4,2,3) p (3,4,5) as a Bezier curve • Where should the other p (3,2,3) p (3,3,3) p (2,2,3) two control points go p (1,2,3) for the [2,3] segment? p (4,5,6) p (2,2,2) • Need to find: p (2,2,3) = 2/3 p (1,2,3) + 1/3 p (4,2,3) p (0,1,2) p (3,2,3) = 1/3 p (1,2,3) + 2/3 p (4,2,3) p (5,6,7) knot vector: [0 1 2 3 4 5 6 7]

  14. Bohm Blossoms • Where are the endpoints located? p (3,4,2) p (3,4,3) p (3,4,5) • Need to find: p (3,2,3) p (3,3,3) p (2,1,2) = 1/3 p (0,1,2) + 2/3 p (3,1,2) p (2,3,2) p (3,4,3) = 2/3 p (3,4,2) + 1/3 p (3,4,5) p (3,1,2) p (2,2,2) p (2,2,2) = 1/2 p (2,1,2) + 1/2 p (2,3,2) p (2,1,2) p (3,3,3) = 1/2 p (3,2,3) + 1/2 p (3,4,3) p (0,1,2) • Reveals how to turn a B-spline into a Bezier curve! knot vector: [0 1 2 3 4 5 6 7]

  15. Knot Insertion • Suppose we want to add a p (2,3,4) p (3,4,5) knot at t = 3.5 t =3 t =4 p (1,2,3) p (4,5,6) t =2 t =5 p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 4 5 6 7]

  16. Knot Insertion • Suppose we want to add a p (3,3.5,4) p (2,3,4) p (3,4,5) knot at t = 3.5 p (3.5,4,5) p (2,3,3.5) • Then we need new cp’s t =3 t =4 p (2,3,3.5), p (3,3.5,4) p (1,2,3) and p (3.5,4,5) p (4,5,6) t =2 t =5 and can get rid of p (2,3,4) and p (3,4,5) p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 4 5 6 7]

  17. Knot Insertion • Suppose we want to add a p (3,3.5,4) knot at t = 3.5 p (3.5,4,5) p (2,3,3.5) • Then we need new cp’s t =3.5 p (2,3,3.5), p (3,3.5,4) p (1,2,3) and p (3.5,4,5) p (4,5,6) t =2 t =5 and can get rid of p (2,3,4) and p (3,4,5) p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 3.5 4 5 6 7]

  18. de Boor Algorithm • What if we want to p (3,3.5,4) evaluate p (3.5)? p (3.5,4,5) p (2,3,3.5) • Then create a triple knot t =3.5 at t = 3.5 and figure out p (1,2,3) where to put the control p (4,5,6) t =2 t =5 point p (3.5,3.5,3.5) p (0,1,2) p (5,6,7) knot vector: [0 1 2 3 3.5 4 5 6 7]

  19. de Boor Algorithm • What if we want to p (3,3.5,4) p (3.5,3.5,4) p (3,3.5,3.5) evaluate p (3.5)? p (3.5,4,5) p (2,3,3.5) • Then create a triple knot p (3.5,3.5,3.5) at t = 3.5 and figure out p (1,2,3) where to put the control p (4,5,6) point p (3.5,3.5,3.5) • Need p (3,3.5,3.5) and p (3.5,3.5,4) p (0,1,2) p (5,6,7) • Also subdivides B-spline into [0,1,2,3,3.5,3.5,3.5] and [3.5,3.5,3.5,4,5,6,7] knot vector: [0 1 2 3 3.5 3.5 3.5 4 5 6 7]

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