1 dr. scott schaefer subdivision curves. 2/96 what is subdivision? set of rules s that take a curve...
Post on 21-Dec-2015
214 views
TRANSCRIPT
1
Dr. Scott Schaefer
Subdivision Curves
2/96
What is subdivision?
Set of rules S that take a curve as input and produce a more highly refined curve as output
Recursively applying S yields a sequence of curves which should converge to some limit shape
S S
3/96
Subdivision Rules
Typically chosen to be linear combinations of neighboring vertices
Rules usually depend only on local topology of shape
Reposition Old Vertices Insert New Vertices
43
81
81
21
21
4/96
Applying Subdivision Rules
5/96
Applying Subdivision Rules
21
21
6/96
Applying Subdivision Rules
81
43
81
7/96
Applying Subdivision Rules
21
21
8/96
Applying Subdivision Rules
81
81 4
3
9/96
Applying Subdivision Rules
21
21
10/96
Applying Subdivision Rules
81
81
43
11/96
Applying Subdivision Rules
21
21
12/96
Applying Subdivision Rules
81
81
43
13/96
Applying Subdivision Rules
14/96
Applying Subdivision Rules
15/96
Applying Subdivision Rules
16/96
Subdivision Rules Via Blossoming
Assume knot-spacing uniform 0,2,4,6,8,… Find control points for refined knots 0,1,2,3,…
17/96
)4,2,0(b
t6 t8 t100t 4t2t
t6 2t t8 4t
),,( tttb
t6 4t
),4,2( tb ),6,4( tb ),8,6( tb
),,4( ttb ),,6( ttb
)6,4,2(b )8,6,4(b )10,8,6(b
Subdivision Rules Via Blossoming
Assume knot-spacing uniform 0,2,4,6,8,… Find control points for refined knots 0,1,2,3,…
)4,2,0(b)6,4,2(b)8,6,4(b)10,8,6(b
Given)5,4,3(b)6,5,4(b
Find
18/96
21
21
)6,5,4(b
)6,4,2(b )8,6,4(b
Subdivision Rules Via Blossoming
Assume knot-spacing uniform 0,2,4,6,8,… Find control points for refined knots 0,1,2,3,…
)4,2,0(b)6,4,2(b)8,6,4(b)10,8,6(b
Given)5,4,3(b)6,5,4(b
Find
19/96
)4,2,0(b
21
65
21
61
41
43
)4,3,2(b )6,4,3(b
)5,4,3(b
)6,4,2(b )8,6,4(b
Subdivision Rules Via Blossoming
Assume knot-spacing uniform 0,2,4,6,8,… Find control points for refined knots 0,1,2,3,…
)4,2,0(b)6,4,2(b)8,6,4(b)10,8,6(b
Given)5,4,3(b)6,5,4(b
Find
20/96
Subdivision Rules Via Blossoming
Assume knot-spacing uniform 0,2,4,6,8,… Find control points for refined knots 0,1,2,3,…
)4,2,0(b)6,4,2(b)8,6,4(b)10,8,6(b
Given)8,6,4()6,4,2()4,2,0()5,4,3( 8
143
81 bbbb
)8,6,4()6,4,2()6,5,4( 21
21 bbb
Find
Works for arbitrary degree B-splines!!!
21/96
Lane Reisenfeld Subdivision
Linearly subdivide the curve by inserting the midpoint on each edge
Perform averaging by replacing each edge by its midpoint d times
22/96
Lane Reisenfeld Subdivision
0p 1p 2p210 pp
221 pp
232 pp
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
23/96
Lane Reisenfeld Subdivision
24/96
Lane Reisenfeld Subdivision
25/96
Lane Reisenfeld Subdivision
26/96
Lane Reisenfeld Subdivision
27/96
Lane Reisenfeld Subdivision
28/96
Lane Reisenfeld Subdivision
29/96
Lane Reisenfeld Subdivision
30/96
Lane Reisenfeld Subdivision
31/96
Interpolatory Subdivision
Interpolating control vertices may be desirable
Catmull-Rom splines are not refinable!!!
Reposition Old Vertices Insert New Vertices
1
00
? ?
??
32/96
Four-Point Subdivision
0p
1p
2p
3p 4p
0 1 2 3t
4
33/96
Four-Point Subdivision
0p
1p
2p
3p 4p
0 1 2 3t
4
34/96
Four-Point Subdivision
0p
1p
2p
3p 4p
0 1 2 3t
4
35/96
Four-Point Subdivision
3
2
1
0
3
2
1
0
33
233
32
222
31
211
30
200
1
1
1
1
p
p
p
p
c
c
c
c
ttt
ttt
ttt
ttt
0p
1p
2p
3p
0 1 2 3 t
36/96
Four-Point Subdivision
3
2
1
0
3
2
1
0
32
32
32
27931
8421
1
0001
p
p
p
p
c
c
c
c
0p
1p
2p
3p
0 1 2 3 t
37/96
Four-Point Subdivision
3
2
1
0
1
32
32
32
3
2
1
0
27931
8421
1
0001
p
p
p
p
c
c
c
c
0p
1p
2p
3p
0 1 2 3 t
38/96
Four-Point Subdivision
3
2
1
0
1
32
32
323
8272
49
23
3
2
1
0
38272
49
23
27931
8421
1
0001
11
p
p
p
p
c
c
c
c
0p
1p
2p
3p
0 1 2 3 t
39/96
Four-Point Subdivision
3
2
1
0
161
169
169
161
p
p
p
p
0p
1p
2p
3p
0 1 2 3 t
40/96
Four-Point Subdivision
41/96
Four-Point Subdivision
42/96
Four-Point Subdivision
169
169
161
161
43/96
Four-Point Subdivision
161
169
161
169
44/96
Four-Point Subdivision
161
161
169
169
45/96
Four-Point Subdivision
169
161
169
161
46/96
Four-Point Subdivision
47/96
Four-Point Subdivision
48/96
Four-Point Subdivision
49/96
Subdivision as Basis Function Refinement
i
ipixNxp )()(
50/96
Subdivision as Basis Function Refinement
i
ipixNxp )()(
)(xN
Cubic B-spline Basis Function
51/96
Subdivision as Basis Function Refinement
i
ipixNxp )()(
)(xN
Four-Point Basis Function
52/96
Subdivision as Basis Function Refinement
i
ipixNxp )()(
1
0
1
...)1()()1(...)(
p
p
p
xNxNxNxp
53/96
Subdivision as Basis Function Refinement
i
ipixNxp )()(
1
0
1
81
43
81
21
21
81
43
81
21
21
81
43
81
00
000
...00...
000
00
...)12()2()12(...)(
p
p
p
xNxNxNxp
54/96
Subdivision as Basis Function Refinement
1
0
1
81
43
81
21
21
81
43
81
21
21
81
43
81
00
000
...00...
000
00
...)12()2()12(...)(
p
p
p
xNxNxNxp
1
0
1
...)1()()1(...)(
p
p
p
xNxNxNxp
55/96
Subdivision as Basis Function Refinement
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
56/96
Subdivision as Basis Function Refinement
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
57/96
Subdivision as Basis Function Refinement
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
43
21
81
81
21
58/96
Subdivision as Basis Function Refinement
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
59/96
Subdivision as Basis Function Refinement
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
1
169
169
161
161
60/96
Limit Points of Curve Subdivision
0p 1p 2p2p 1p
i
ipixNxp )()(
61/96
Limit Points of Curve Subdivision
0p 1p 2p2p 1p
i
ipiNp )()0(
62/96
Limit Points of Curve Subdivision
0p 1p 2p2p 1p
),...2(),1(),0(),1(),2(..., NNNNN
63/96
Limit Points of Curve Subdivision
0p 1p 2p2p 1p
1)()()( ii
i ixNpixNxp
64/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
43
21
81
81
21
1)( i
ixN
65/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)2()1()0()1()2()0( 81
21
43
21
81 NNNNNN
66/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)2()1()0()1()2()0( 81
21
43
21
81 NNNNNN
Symmetry!!!
67/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)2()1()0()0( 41
43 NNNN
68/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)2()1()0()0( 41
43 NNNN
Zero!!!
0 1 2 33 2 1
69/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)1()0()0( 43 NNN
70/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)1()0()0( 43 NNN
)4()3()2()1()0()1( 81
21
43
21
81 NNNNNN
71/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)1()0()0( 43 NNN
)1()0()1( 21
81 NNN
72/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)1()0()0( 43 NNN
)1()0()1( 21
81 NNN
1)1(2)0( NN
73/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
1)( i
ixN
)1()0()0( 43 NNN
)1()0()1( 21
81 NNN
1)1(2)0( NN
0 1 2 33 2 1
32
61
61
74/96
Limit Points of Curve Subdivision
0 1 2 33 2 1
i
ipiNp )()( 31
31
75/96
Limit Points of Curve Subdivision
0 1 2 33 2 1
),...(),(),(),(),(..., 35
32
31
34
37 NNNNN
76/96
Evaluate scaling relationship at Solve linear system of equations with
constraint
Limit Points of Curve Subdivision
niN
32
5431
2710
61
814
1621
0 1 2 33 2 1
1Zd
ni dN
77/96
Limit Points of Curve Subdivision
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
1
55894240
55892000
0
5589410
5589256
0558916
55891
78/96
Limit Points of Curve Subdivision
Assume N(x) has finite support Let y be the smallest parameter such that N(y)=0 and for all x>y N(x)=0
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
79/96
Limit Points of Curve Subdivision
Assume N(x) has finite support Let y be the smallest parameter such that N(y)=0 and for all x>y N(x)=0
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
0)22()( yNyN
80/96
Limit Points of Curve Subdivision
Assume N(x) has finite support Let y be the smallest parameter such that N(y)=0 and for all x>y N(x)=0
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
0)22()( yNyN
22 yy
81/96
Limit Points of Curve Subdivision
Assume N(x) has finite support Let y be the smallest parameter such that N(y)=0 and for all x>y N(x)=0
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
0)22()( yNyN
2y
82/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
)2()1()0()1()2()0( 81
21
43
21
81 NNNNNN
)4()3()2()1()0()1( 81
21
43
21
81 NNNNNN
)0()1()2()3()4()1( 81
21
43
21
81 NNNNNN
83/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
)1()0()1()0( 21
43
21 NNNN
)1()0()1( 21
81 NNN
)0()1()1( 81
21 NNN
84/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
)1()0()1()0( 21
43
21 NNNN
)1()0()1( 21
81 NNN
)0()1()1( 81
21 NNN
21
21
81
43
81
21
21
0
0
)1(),0(),1()1(),0(),1( NNNNNN
85/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
)1()0()1()0( 21
43
21 NNNN
)1()0()1( 21
81 NNN
)0()1()1( 81
21 NNN
21
21
81
43
81
21
21
0
0
)1(),0(),1()1(),0(),1( NNNNNN
Limit mask is left-eigenvector corresponding to 1
86/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
)1()0()1()0( 21
43
21 NNNN
)1()0()1( 21
81 NNN
)0()1()1( 81
21 NNN
1,4,1)1(),0(),1( NNN
87/96
Limit Points of Curve Subdivision
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
)1()0()1()0( 21
43
21 NNNN
)1()0()1( 21
81 NNN
)0()1()1( 81
21 NNN
61
32
61 ,,)1(),0(),1( NNN
1)( i
ixN
88/96
Derivatives of Subdivision Curves
)22()12()2()12()22()( 81
21
43
21
81 xNxNxNxNxNxN
89/96
Derivatives of Subdivision Curves
)22(')12(')2(')12(')22('2)(' 81
21
43
21
81 xNxNxNxNxNxN
90/96
Derivatives of Subdivision Curves
)22(')12(')2(')12(')22('2)(' 81
21
43
21
81 xNxNxNxNxNxN
21
21
81
43
81
21
21
21
0
0
)1('),0('),1(')1('),0('),1(' NNNNNN
91/96
Derivatives of Subdivision Curves
)22(')12(')2(')12(')22('2)(' 81
21
43
21
81 xNxNxNxNxNxN
21
21
81
43
81
21
21
21
0
0
)1('),0('),1(')1('),0('),1(' NNNNNN
left-eigenvector corresponding to 1/2
92/96
Derivatives of Subdivision Curves
)22(')12(')2(')12(')22('2)(' 81
21
43
21
81 xNxNxNxNxNxN
1,0,1)1('),0('),1(' NNN
93/96
Four-Point Limits and Derivatives
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
94/96
Four-Point Limits and Derivatives
0,0,1,0,0)2(),1(),0(),1(),2( NNNNN
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
95/96
Four-Point Limits and Derivatives
0,0,1,0,0)2(),1(),0(),1(),2( NNNNN
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
01000
0
00100
0
00010
)2('),1('),0('),1('),2(')2('),1('),0('),1('),2('
161
169
169
161
161
169
169
161
21 NNNNNNNNNN
96/96
Four-Point Limits and Derivatives
0,0,1,0,0)2(),1(),0(),1(),2( NNNNN
)32()12()2()12()32()( 161
169
169
161 xNxNxNxNxNxN
1,8,0,8,1)2('),1('),0('),1('),2(' NNNNN