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

global knot insertion algorithms
SMART_READER_LITE
LIVE PREVIEW

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-1
SLIDE 1

Global Knot Insertion Algorithms

Scott Schaefer Ron Goldman Department of Computer Science Department of Computer Science Texas A&M University Rice University

slide-2
SLIDE 2

Part I: Introduction to Knot Insertion

slide-3
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
SLIDE 4

B-spline Curve

P P

1

P

2

P

3

  • S(τ)
slide-5
SLIDE 5

Knot Insertion

Q0 = P0 P

1

P

2

Q4 = P3 Q1 Q2 Q3

  • S(τ)
slide-6
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
SLIDE 7

Applications of Knot Insertion

  • Rendering
  • Intersection
  • Conversion from B-spline to Piecewise Bezier Form
  • Proof of the Variation Diminishing Property
slide-8
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
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
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
SLIDE 11

Part II: Local Knot Insertion Algorithms

slide-12
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
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
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
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
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
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
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
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
SLIDE 20

Part III: Global Knot Insertion Algorithms

slide-21
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 42

Summary Global Knot Insertion Algorithms

  • Exist for Arbitrary Knot Sequences
  • Are Easily Derived from Blossoming
slide-43
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?