global knot insertion algorithms
play

Global Knot Insertion Algorithms Scott Schaefer Ron Goldman - PowerPoint PPT Presentation

Global Knot Insertion Algorithms Scott Schaefer Ron Goldman Department of Computer Science Department of Computer Science Texas A&M University Rice University Part I: Introduction to Knot Insertion Knot Insertion Algorithm Input T = {


  1. Global Knot Insertion Algorithms Scott Schaefer Ron Goldman Department of Computer Science Department of Computer Science Texas A&M University Rice University

  2. Part I: Introduction to Knot Insertion

  3. Knot Insertion Algorithm Input T = { t 1 , K , t ν + n } -- knot sequence • 0 , K , P • P = { P ν } -- control points Γ = { τ 1 , K , τ µ + n } -- new knot sequence -- Γ ⊃ T • Output Q = { Q 0 , K , Q µ } -- new control points • Constraint µ ν = ∑ ∑ • N k , n ( t | T ) P N k , n ( τ | Γ ) Q k k k = 0 k = 0

  4. B-spline Curve P 1 P • • 2 • S ( τ ) • • P P 3 0

  5. Knot Insertion Q 2 P 1 P • • 2 • Q 3 S ( τ ) Q 1 • • Q 0 = P 0 Q 4 = P 3

  6. Theorems Existence • All splines are B-splines. Convergence • The control polygons generated by knot insertion converge to the B-spline curve for the original control polygon as the knot spacing approaches zero. Corner Cutting • Knot insertion is a corner cutting procedure.

  7. Applications of Knot Insertion • Rendering • Intersection • Conversion from B-spline to Piecewise Bezier Form • Proof of the Variation Diminishing Property

  8. Types of Knot Insertion Algorithms Local Knot Insertion T = { t 1 , K , t ν + n } • Γ = { t 1 , K , t k , u k ,1 , K , u k , d k , t k + 1 , K , t v + n } • Global Knot Insertion T = { t 1 , K , t ν + n } • Γ = { t 1 , u 1,1 , K , u 1, d 1 , t 2 , K , t v + n − 1 , u v + n − 1,1 , K , u v + n − 1, d v + n − 1 , t v + n } •

  9. Examples of Knot Insertion Algorithms Local Knot Insertion Algorithms Global Knot Insertion Algorithms • Boehm’s Algorithm • Chaikin’s Algorithm • Oslo Algorithm • Lane-Riesenfeld Algorithm • Sablonniere’s Algorithm • Goldman-Warren Algorithm • Factored Knot Insertion • Schaefer’s Algorithm -- NEW

  10. Myths Global Knot Insertion • Works Only for Uniform Knot Sequences -- Knots in Arithmetic Progression -- Lane-Riesenfeld (1973) t k + 1 = t k + α -- Knots in Geometric or Affine Progression -- Goldman-Warren (1993) t k + 1 = β t k + α • Does not Apply to Arbitrary Knot Sequences Blossoming • Provides Only New Proofs of Already Known Results -- No New Results -- No New Insights

  11. Part II: Local Knot Insertion Algorithms

  12. Knot Insertion Algorithms from Blossoming • Boehm’s Algorithm -- Inserts one new knot at a time • Oslo Algorithm -- Computes one new control point at a time • Sablonniere’s Algorithm -- Local change of basis algorithm • Factored Knot Insertion -- Forward differencing for knot insertion

  13. Blossoming Symmetry • p ( u 1 ,..., u n ) = p ( u σ (1) ,..., u σ ( n ) ) for any permutation σ of {1,..., n } Multiaffine • p ( u 1 ,...,(1 − α ) u k + α w k ,..., u n ) = (1 − α ) p ( u 1 ,..., u k ,..., u n ) + α p ( u 1 ,..., w k ,..., u n ) Diagonal • p ( t ,..., t { ) = P ( t ) n Dual Functional Property ∑ ⇒ P k = p ( t k + 1 , K , t k + n ) • P ( t ) = N k , n ( t ) P (B-spline Curves) k k n ( t ) P ∑ ⇒ P k = p ( a , K , a , b , K , b • P ( t ) = B k ) (Bezier Curves) 1 2 3 1 2 3 k k n − k k

  14. Properties of the Blossom Existence and Uniqueness • Every Degree n Polynomial P ( t ) has a Unique Blossom p ( u 1 ,..., u n ) Power Law • Each Parameter u 1 ,..., u n Appears to at Most the First Power • Equivalent to Multiaffine Axiom

  15. Examples (Existence) Monomials P ( t ) = 1 ⇒ p ( u 1 , u 2 , u 3 ) = 1 P ( t ) = t ⇒ p ( u 1 , u 2 , u 3 ) = u 1 + u 2 + u 3 3 P ( t ) = t 2 ⇒ p ( u 1 , u 2 , u 3 ) = u 1 u 2 + u 2 u 3 + u 3 u 1 3 P ( t ) = t 3 ⇒ p ( u 1 , u 2 , u 3 ) = u 1 u 2 u 3 Cubics P ( t ) = a 3 t 3 + a 2 t 2 + a 1 t + a 0 u 1 u 2 + u 2 u 3 + u 3 u 1 u 1 + u 2 + u 3 p ( u 1 , u 2 , u 3 ) = a 3 u 1 u 2 u 3 + a 2 + a 1 + a 0 3 3

  16. Blossoming Diagrams -- Multiaffine Property p ( t 2 , t 3 , u ) t 2 t 3 u t 4 − u u − t 1 t 4 − u u − t 1 t 4 − t 1 t 4 − t 1 p ( t 1 , t 2 , t 3 ) p ( t 2 , t 3 , t 4 ) t 1 t 2 t 3 t 2 t 3 t 4 Normalized Unnormalized u = t 4 − u t 1 + u − t 1 t 4 ⇒ p ( t 2 , t 3 , u ) = t 4 − u p ( t 1 , t 2 t 3 ) + u − t 1 p ( t 2 , t 3 , t 4 ) t 4 − t 1 t 4 − t 1 t 4 − t 1 t 4 − t 1 p ( t 2 , t 3 , u ) = t 4 − u p ( t 1 , t 2 t 3 ) + u − t 1 p ( t 2 , t 3 , t 4 ) ⇔ t 2 t 3 u = t 4 − u t 1 t 2 t 3 + u − t 1 t 2 t 3 t 4 t 4 − t 1 t 4 − t 1 t 4 − t 1 t 4 − t 1

  17. Blossoming Diagrams -- Multiaffine Property t 2 L t n u u − t 1 t n + 1 − u t 1 L t n t 2 L t n + 1 u = t n + 1 − u t 1 + u − t 1 t n + 1 t n + 1 − t 1 t n + 1 − t 1 p ( t 2 , K , t n , u ) = t n + 1 − u p ( t 1 , K , t n ) + u − t 1 p ( t 2 , K , t n + 1 ) t n + 1 − t 1 t n + 1 − t 1 t 2 L t n u = t n + 1 − u t 1 L t n + u − t 1 t 2 L t n + 1 t n + 1 − t 1 t n + 1 − t 1

  18. Boehm’s Algorithm New Control Points t 4 t 5 u t 3 t 4 u t 2 t 3 u t 6 − u t 4 − u u − t t 5 − u u − t 2 u − t 3 1 t 1 t 2 t 3 t 4 t 5 t 6 t 3 t 4 t 5 t 2 t 3 t 4 Original Control Points Original Knot Sequence: K , t 1 , t 2 , t 3 , t 4 , t 5 , t 6 , K K , t 1 , t 2 , t 3 , u , t 4 , t 5 , t 6 , K New Knot Sequence:

  19. Oslo Algorithm New Control Point u 1 u 2 u 3 t 4 − u 3 u 3 − t 3 t 3 u 1 u 2 t 4 u 1 u 2 u 2 − t 2 t 4 − u 2 t 5 − u 2 u 2 − t 3 t 2 t 3 u 1 t 3 t 4 u 1 t 4 t 5 u 1 t 6 − u 1 t 4 − u 1 t 5 − u u 1 − t u 1 − t 2 u 1 − t 3 1 1 t 1 t 2 t 3 t 4 t 5 t 6 t 3 t 4 t 5 t 2 t 3 t 4 Original Control Points Original Knot Sequence: K , t 1 , t 2 , t 3 , t 4 , t 5 , t 6 , K K , t 1 , t 2 , t 3 , u 1 , K , u d , t 4 , t 5 , t 6 , K New Knot Sequence:

  20. Part III: Global Knot Insertion Algorithms

  21. Chaikin’s Algorithm: Quadratic B-splines -- Uniform Knots 3 P 1 + P 3 P 0 + P P 0 + 3 P L P 1 + 3 P 3 P 2 + P 3 P 2 + 3 P 3 2 1 1 2 4 4 4 4 4 4 P 0 + P L P P 1 + P P 2 + P 1 0 P 2 P P 3 3 1 2 2 2 2 L P P 0 P 3 P 0 P P P P 3 1 1 2 2 Split and Average

  22. Lane-Riesenfeld Algorithm: Cubic B-splines -- Uniform Knots L 4 P 0 + 4 P 4 P 1 + 4 P P 1 + 6 P 2 + P 3 P 0 + 6 P 1 + P 4 P 2 + 4 P 1 2 2 3 8 8 8 8 8 3 P 1 + P 3 P 0 + P P 0 + 3 P P 1 + 3 P L P 2 + 3 P 2 3 P 2 + P 1 1 2 3 3 4 4 4 4 4 4 P 0 + P P 1 + P L P 1 2 P 2 + P 0 P P 3 P 3 1 2 2 2 2 L P P 0 P 3 0 P 3 P P P P 1 1 2 2 Split and Average

  23. Proofs of Lane-Riesenfeld Algorithm 1. Continuous Convolution of B-spline Basis Functions J. LANE and R. RIESENFELD (1980): A theoretical development for the computer generation and display of piecewise polynomial surfaces. IEEE Transactions on Pattern Analysis and Machine Intelligence 2 , pp. 35–46. 2. De Boor Recurrence (Induction) R. GOLDMAN and J. WARREN (1993): An extension of Chaikin’s algorithm to B-spline curves with knots in geometric progression, CVGIP: Graphical Models and Image Processing , Vol. 35, pp. 58-62. 2 . De Boor Recurrence (Induction) ⇒ Oslo Algorithm ′ H. PRAUTZSCH (1984): A short proof of the Oslo Algorithm, Computer Aided Geometric Design , Vol. 1, pp. 95-96.

  24. New Proof of Lane-Riesenfeld Algorithm 3. Blossoming E. VOUGA and R. GOLDMAN (2006): Two Blossoming Proofs of the Lane-Riesenfeld Algorithm -- Dagstuhl Conference on Geometric Modeling 2005 , to appear in Computing.

  25. Lane-Riesenfeld Algorithm -- Blossoming Interpretation Quadratic B-splines 1 ,2 1 ,1 1 ,3 1 1 1 1 2 1,1 2 2 2 2,2 2 3,3 2 2 01 12 34 11 23 22 33 01 01 12 12 23 34 23 34 Uniform Knots

  26. Lane-Riesenfeld Algorithm Quadratic B-splines 1. Double the Control Points 2. Convert to Piecewise Bezier Form 3. Insert New Knots Using Boehm’s Knot Insertion Algorithm

  27. Lane-Riesenfeld Algorithm -- Quadratic B-splines u 0 t 1 t 1 u 1 u 1 t 2 t 2 u 2 u 2 t 3 t 3 u 3 t 1 t 1 t 1 t 2 t 2 t 2 t 2 t 3 t 0 t 1 t 3 t 3 t 3 t 4 t 0 t 1 t 3 t 4 t 0 t 1 t 1 t 2 t 2 t 3 t 2 t 3 t 1 t 2 t 3 t 4 Arbitrary Knots u = t k + 1 − u t k + u − t k t k + 1 t k + 1 − t k t k + 1 − t k

  28. Schaefer’s Algorithm -- Quadratic B-splines u 0 t 1 t 1 u 1 u 1 t 2 t 2 u 2 u 2 t 3 L L t 1 t 2 u 0 t 1 t 2 t 3 t 0 t 1 u 1 t 2 u 2 t 3 t 0 t 1 t 0 t 1 t 2 t 3 L t 1 t 2 t 2 t 3 t 1 t 2 t 3 t 4 Arbitrary Knots u = t k + 1 − u t k + u − t k t k + 1 t k + 1 − t k t k + 1 − t k

  29. Quadratic B-splines Schaefer’s Algorithm • Inserts New Knots in First Round • Not Necessary to Convert to Piecewise Bezier Form • Faster than Lane-Riesenfeld -- Half the Work in the Second Round

  30. Knot Insertion: Quadratic B-splines u 2 t 3 t 3 u 3 t 2 t 3 t 3 t 4 u 3 t 4 t 2 u 2 t 4 u 4 u 1 t 2 t 4 t 5 t 1 t 2 Lane − Riesenfeld : = t k t k + 1 Schaefer : = u k t k + 1

  31. Lane-Riesenfeld Algorithm -- Cubic B-splines ? ? 1 ,2,3 2 1 ,2,2 2 1 ,3 1 1 ,4 1 ,2 1 L 2 2 1 2 2,2 2 3,3 2 1,1 2 9 ,1,2 3 ,1,2 7 ,2,3 13 ,2,3 11 ,4 L 17 3, 4 3,4, 4 4 4 4 4 1 ,3 1 ,2 L 1 ,4 012 123 234 345 2,2 2 1,1 2 3,3 2 L 012 123 012 234 123 234 345 345 Uniform Knots

  32. Lane-Riesenfeld Algorithm -- Cubic B-splines ? 1 ,3 1 ,2 1 ,2,2 2 1 2,2 2 1,1 2 1 2 9 ,1,2 7 ,2,3 13 ,2,3 3 ,1,2 4 4 4 4 1 ,3 1 ,2 012 123 234 2,2 2 1,1 2 012 012 123 234 123 234 ? = 1 1 ,2) + 2 4 (1,2,3) + 1 1 ,3) 4 (1,1 2 4 (2,2 2 9 ,1,2) = 1 1 ,2) + 1 ( 4 2 (1,1 2 2 (1,2,3) ? = 1 1 ,2) + 3  3(1,2,3) + 1 2  1 ,3) 4 (1,1 2 3(2,2 2 ⇒   7 ,2,3) = 1 2 (1,2,3) + 1 4   1 ,3) ( 4 2 (2,2 2 ? = 1 1 ,2) + 3 1 ,2,3) = 1 2 1 ,2,2 2 1 ( ) 4 (1,1 2 4 (1 2

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