SLIDE 1
Global Knot Insertion Algorithms Scott Schaefer Ron Goldman - - PowerPoint PPT Presentation
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 = {
SLIDE 2
SLIDE 3
Knot Insertion Algorithm Input
- T = {t1,K,tν+n} -- knot sequence
- P = {P
0,K,P ν } -- control points
- Γ = {τ1,K,τµ+n} -- new knot sequence -- Γ ⊃ T
Output
- Q = {Q0,K,Qµ} -- new control points
Constraint
- Nk,n(t |T)P
k k=0 ν
∑ =
Nk,n(τ |Γ)Qk
k=0 µ
∑
SLIDE 4
B-spline Curve
P P
1
P
2
P
3
- S(τ)
SLIDE 5
Knot Insertion
Q0 = P0 P
1
P
2
Q4 = P3 Q1 Q2 Q3
- S(τ)
SLIDE 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.
SLIDE 7
Applications of Knot Insertion
- Rendering
- Intersection
- Conversion from B-spline to Piecewise Bezier Form
- Proof of the Variation Diminishing Property
SLIDE 8
Types of Knot Insertion Algorithms Local Knot Insertion
- T = {t1,K,tν+n}
- Γ = {t1,K,tk ,uk,1,K,uk,d k ,tk+1,K,tv+n}
Global Knot Insertion
- T = {t1,K,tν+n}
- Γ = {t1,u1,1,K,u1,d1,t2,K,tv+n −1,uv+n−1,1,K,uv+n−1,dv+n−1,tv+n}
SLIDE 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
SLIDE 10
Myths Global Knot Insertion
- Works Only for Uniform Knot Sequences
- Knots in Arithmetic Progression -- Lane-Riesenfeld (1973)
tk+1 = tk +α
- Knots in Geometric or Affine Progression -- Goldman-Warren (1993)
tk+1 = βtk +α
- Does not Apply to Arbitrary Knot Sequences
Blossoming
- Provides Only New Proofs of Already Known Results
- No New Results
- No New Insights
SLIDE 11
Part II: Local Knot Insertion Algorithms
SLIDE 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
SLIDE 13
Blossoming Symmetry
- p(u1,...,un) = p(uσ (1),...,uσ (n)) for any permutation σ of {1,...,n}
Multiaffine
- p(u1,...,(1−α)uk +αwk ,...,un) = (1−α)p(u1,...,uk,...,un)+αp(u1,...,wk,...,un)
Diagonal
- p(t,...,t
n
{) = P(t)
Dual Functional Property
- P(t) =
Nk,n(t)P
k k
∑
⇒ Pk = p(tk+1,K,tk+n) (B-spline Curves)
- P(t) =
Bk
n(t)P k k
∑
⇒ Pk = p(a,K,a
n−k
1 2 3 ,b,K,b
k
1 2 3 ) (Bezier Curves)
SLIDE 14
Properties of the Blossom Existence and Uniqueness
- Every Degree n Polynomial P(t) has a Unique Blossom p(u1,...,un)
Power Law
- Each Parameter u1,..., un Appears to at Most the First Power
- Equivalent to Multiaffine Axiom
SLIDE 15
Examples (Existence) Monomials P(t) = 1 ⇒ p(u1,u2,u3) =1 P(t) = t ⇒ p(u1,u2,u3) = u1 + u2 + u3 3 P(t) = t2 ⇒ p(u1,u2,u3) = u1u2 + u2u3 + u3u1 3 P(t) = t3 ⇒ p(u1,u2,u3) = u1u2u3 Cubics P(t) = a3t3 + a2t2 + a1t + a0 p(u1,u2,u3) = a3u1u2u3 + a2 u1u2 + u2u3 + u3u1 3 + a1 u1 + u2 + u3 3 + a0
SLIDE 16
Blossoming Diagrams -- Multiaffine Property
p(t1,t2,t3) p(t2,t3,t4) p(t2,t3,u) t4 − u t4 − t1 u − t1 t4 − t1
t1t2t3 t2t3t4 t2t3u t4 − u u − t1
Normalized Unnormalized u = t4 − u t4 −t1 t1 + u − t1 t4 −t1 t4 ⇒ p(t2,t3,u) = t4 − u t4 −t1 p(t1,t2t3)+ u − t1 t4 −t1 p(t2,t3,t4) p(t2,t3,u) = t4 − u t4 − t1 p(t1,t2t3)+ u −t1 t4 −t1 p(t2,t3,t4) ⇔ t2t3u = t4 − u t4 − t1 t1t2t3 + u −t1 t4 −t1 t2t3t4
SLIDE 17
Blossoming Diagrams -- Multiaffine Property
t1Ltn t2Ltn+1 t2Ltnu tn+1 − u
u − t1
u = tn+1 − u tn+1 −t1 t1 + u −t1 tn+1 −t1 tn+1 p(t2,K,tn,u) = tn+1 − u tn+1 −t1 p(t1,K,tn)+ u −t1 tn+1 −t1 p(t2,K,tn+1) t2Ltnu = tn+1 − u tn+1− t1 t1Ltn + u − t1 tn+1− t1 t2Ltn+1
SLIDE 18
Boehm’s Algorithm
t2t3u t3t4u t4t5u t1t2t3 t2t3t4 t3t4t5 t4t5t6 t4 − u u − t
1
u − t3 t5 − u t6 − u u − t2 Original Control Points New Control Points
Original Knot Sequence:
K,t1,t2,t3,t4,t5,t6,K
New Knot Sequence:
K,t1,t2,t3,u,t4,t5,t6,K
SLIDE 19
Oslo Algorithm New Control Point
u1u2u3 u3 − t3 u2 − t3 u2 − t2 t2t3u1 t3t4u1 t4t5u1 t3u1u2 t4u1u2 t1t2t3 t2t3t4 t3t4t5 t4t5t6 t4 − u1 t4 − u2 t4 − u3 u1 − t
1
u1 − t3 t5 − u2 t5 − u
1
t6 − u1 u1 − t2 Original Control Points
Original Knot Sequence:
K,t1,t2,t3,t4,t5,t6,K
New Knot Sequence:
K,t1,t2,t3,u1,K,ud,t4,t5,t6,K
SLIDE 20
Part III: Global Knot Insertion Algorithms
SLIDE 21
Chaikin’s Algorithm: Quadratic B-splines -- Uniform Knots
P 3P
0 +P 1
4 P
0 +P 1
2 P
1+ P 2
2 P
2 + P 3
2 P P
1
P
2
P3 P
0 + 3P 1
4 3P
1 +P 2
4 P
1+ 3P 2
4 3P
2 +P3
4 P
2 + 3P3
4
P P
1
P
1
P
2
P
2
P3 P3
L L
L
Split and Average
SLIDE 22
Lane-Riesenfeld Algorithm: Cubic B-splines -- Uniform Knots
3P
0 + P 1
4 P
0 + P 1
2 P
1 + P 2
2 P
2 + P 3
2 P P
1
P
2
P3 P
0 + 3P 1
4 3P
1+ P 2
4 P
1 + 3P 2
4 3P
2 + P 3
4 P
2 + 3P 3
4 P
P
1
P
1
P
2
P
2
P3 P3 4P
0 + 4P 1
8 P
0 +6P 1+ P 2
8 4P
1 + 4P 2
8 P
1 +6P 2 +P3
8 4P
2 + 4P 3
8 P
L
L
L
L
Split and Average
SLIDE 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.
SLIDE 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.
SLIDE 25
Lane-Riesenfeld Algorithm -- Blossoming Interpretation Quadratic B-splines
22 33 1,12
1
2,22
1
3,32
1
01 01
12 23 01 12 11
12
23
34
34 23
34
2 1 ,1
12
1 ,2
22
1 ,3
Uniform Knots
SLIDE 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
SLIDE 27
Lane-Riesenfeld Algorithm -- Quadratic B-splines
t0t1 t1t1 u0t1 u1t2 t0t1 t0t1 t1t2 t1t2 t1t2
t2t2
t2t3 t2t3 t2t3 t3t4
t3t4 t3t4
t3t3 t1u1
t2u2
t3u3 u2t3
Arbitrary Knots u = tk+1 − u
tk+1− tk tk + u − tk tk+1− tk tk+1
SLIDE 28
Schaefer’s Algorithm -- Quadratic B-splines
t0t1 u0t1 u1t2 t0t1 t0t1 t1t2 t1t2 t1t2
t2t3
t2t3 t2t3
t3t4
t1u1 t2u2 u2t3
L L L
u0t1 u1t2 u2t3
Arbitrary Knots u = tk+1 − u
tk+1− tk tk + u − tk tk+1− tk tk+1
SLIDE 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
SLIDE 30
Knot Insertion: Quadratic B-splines
t1t2 t2t3 t3t4 t4t5 u1t2 t2u2 u2t3 u3t4 t3u3 t4u4 = tktk+1 = uktk+1 Lane− Riesenfeld: Schaefer:
SLIDE 31
Lane-Riesenfeld Algorithm -- Cubic B-splines
3,32
1 ,4 4 7,2,3 4 13,2,3
3, 4
11,4
3,4, 4
17
012
123 234 123 234 345 345
4 3,1,2
012
012 123 234 345
4 9 ,1,2
1,12
1 ,2
?
? 1,12
1 ,2
2,22
1 ,3
2,22
1 ,3
3,32
1 ,4
12
1 ,2,22 1
22
1 ,2,32 1
L L L
L
Uniform Knots
SLIDE 32
Lane-Riesenfeld Algorithm -- Cubic B-splines
4 7,2,3 4 13,2,3
012 123
234 123 234
4 3,1,2
012 012 123 234
4 9 ,1,2
1,12
1 ,2
? 1,12
1 ,2
2,22
1 ,3
2,22
1 ,3
12
1 ,2,22 1
(4
9,1,2) = 1
2 (1,12
1 ,2)+ 1
2 (1,2,3) (4
7,2,3) = 1
2 (1,2,3)+ 1 2 (2,22
1 ,3)
⇒ ? = 1 4 (1,12
1 ,2)+ 2
4 (1,2,3)+ 1 4 (2,22
1 ,3)
? = 1 4 (1,12
1 ,2)+ 3
4 2 3(1,2,3)+ 1 3(2,22
1 ,3)
? = 1 4 (1,12
1 ,2)+ 3
4 (12
1 ,2,3) = 12 1 ,2,22 1
( )
SLIDE 33
Lane-Riesenfeld Algorithm -- Quartic B-splines
3445 2234 2344
3345 3455 0123 1234
2345
1234 2345 3456 3456 1123 0123 0123 1234 2345 3456 1233 1223
? ? 1223 2334 2334
3445 ?? ?? ?? ??
Uniform Knots
SLIDE 34
Lane-Riesenfeld Algorithm
- Build Algorithm for Next Degree Atop Algorithm for Previous Degree
- Append One Additional Round of Averaging
- Harder and Harder to Prove by Blossoming
SLIDE 35
Schaefer’s Algorithm -- Cubic B-splines
t0t1t2 u0t1t2 t0t1t2 t0t1t2 t1t2t3 t1t2t3 t1t2t3 u1t2t3 t2t3t4 t2t3t4 t2t3t4 t3t4t5 u2t3t4 t1u1t2 u2t3t4
L L L
t3t4t5 t3t4t5 u0t1t2 u1t2t3 t2u2t3 t3u3t4 u1t2u2
L
t1u1t2 t2u2t3 u2t3u3 t3u3t4
Arbitrary Knots u = tk − u tk − tj t j + u −tj tk −tj tk
SLIDE 36
Schaefer’s Algorithm Cubic B-splines
- Build Atop Algorithm for Quadratic B-splines
- Append Next Original Knot to Each of the Blossoms on the First Two Stages
- Example: u0t1 → u0t1t2
- Promote Every Other Point to the Next Stage with No Additional Computation
- Introduce New Knots Using the Multiaffine Property of the Blossom
- Easy to Prove by Blossoming
SLIDE 37
Alternative Algorithm -- Cubic B-splines
t0t1t2 t1t1t2 t0t1t2 t1t2t3 t2t2t3 t2t3t4 t2t3t4 t3t4t5 t3t4t5 t3t3t4 u0t1t2 u1t2t3 t1u1t2 t2u2t3 t3u3t4 u2t3t4 t1t2t3 t0t1t2 t1t2t3 t2t3t4 t3t4t5 u1t2u2 t1u1t2 t2u2t3 t3u3t4 u2t3u3 L L L L
Arbitrary Knots u = tk − u tk − tj t j + u −tj tk −tj tk
SLIDE 38
Problem Observation
- Schaefer’s Algorithm does not Reduce to the Lane-Riesenfeld Algorithm
when the Knots are Uniformly Spaced. Questions
- Does there Exist a Global Knot Insertion Algorithm that Reduces to the
Lane-Riesenfeld Algorithm for Uniform Knots?
- If Such an Algorithm Exists, is it Unique?
SLIDE 39
Lane-Riesenfeld Algorithm: Cubic B-splines -- Arbitrary Knots t0t1t2 t1t2t3 t1t2t3 t2t3t4 t2t3t4 t3t4t5 t1u1t2 t2u2t3 u1t2u2 t3 −t2 t3 −t1 t3 − u2 t3 −t2 t3 − u1 t3 −t0 t1t2t3 u2t3u3 t4 − u3 t4 −t3 t2u2t3 v3 − u2 v3 − w2 t2 − u1 t2 −t1 t4 − u2 t4 −t1 t3 − u2 t3 −t2 t5 − u3 t5 −t2 t4 −t3 t4 −t2 t3u3t4 t2t3t4 t1t2v2 t2t3w2 t2t3v3 t3t4w3
L L L L
vk = tk+1− (tk+1− uk−1)(tk+1 − uk ) (tk+1− tk ) wk = uk − (uk −tk−1)(tk − uk−1) (tk − tk−1)
.
SLIDE 40
Lane-Riesenfeld Algorithm: Cubic B-splines -- Arbitrary Knots t0t1t2 t1t2t3 t1t2t3 t2t3t4 t2t3t4 t3t4t5 t1t2(t0 +t3)/ 2 t2t3(t1 +t4 )/ 2 u1t2u2 1 2 1 2 t1t2t3 u2t3u3 1 2 t2u2t3 1 2 1 2 t3t4(t2 +t5)/ 2 t2t3t4 t2t3v2 t3t4v3 1 2 1 2 α2 1− β2 β2 α3 1− α3 1− β3 β3 t1t2(t0 + 3t3)/ 4 t2t3(t1 + 3t4 )/ 4 γ2 1− γ2 1− α2
L L L L
SLIDE 41
Parameters for Lane-Riesenfeld Algorithm αk = 4(tk+1− uk−1)(tk+1 − uk ) (tk+1 −tk−2)(tk+1 −tk−1) βk = 2(uk − tk−1)(uk−1 − tk−1) (tk+2 − tk−1)(tk+1 −tk−1)(1−αk ) γk = 4(uk − vk ) tk−1 + 3tk+2 − 4vk
vk = tk−1+ βk (tk+2 − tk−1)
2
.
SLIDE 42
Summary Global Knot Insertion Algorithms
- Exist for Arbitrary Knot Sequences
- Are Easily Derived from Blossoming
SLIDE 43
Open Problems 1. Find a Global Knot Insertion Algorithm for Arbitrary Degree that Reduces to the Lane-Riesenfeld Algorithm for Uniform Knots. 2. Find the Simplest Knot Insertion Algorithm for Arbitrary Degree that Reduces to the Lane-Riesenfeld Algorithm for Uniform Knots.
- How Complicated are the Labels Along the Edges?