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 = { 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
B-spline Curve P 1 P • • 2 • S ( τ ) • • P P 3 0
Knot Insertion Q 2 P 1 P • • 2 • Q 3 S ( τ ) Q 1 • • Q 0 = P 0 Q 4 = P 3
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.
Applications of Knot Insertion • Rendering • Intersection • Conversion from B-spline to Piecewise Bezier Form • Proof of the Variation Diminishing Property
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 } •
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
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
Part II: Local Knot Insertion Algorithms
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
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
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
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
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
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
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:
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:
Part III: Global Knot Insertion Algorithms
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
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
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.
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.
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
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
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
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
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
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
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
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
Recommend
More recommend