Title: Bspline Notes
1Bspline Notes
- Jordan Smith
- UC Berkeley
- CS184
2Outline
- Bézier Basis Polynomials
- Linear
- Quadratic
- Cubic
- Uniform Bspline Basis Polynomials
- Linear
- Quadratic
- Cubic
- Uniform Bsplines from Convolution
3Review of Bézier CurvesDeCastlejau Algorithm
V001
V011
V111
V000
Insert at t ¾
4Review of Bézier CurvesDeCastlejau Algorithm
001
011
111
Insert at t ¾
000
5Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
00¾
¾11
111
Insert at t ¾
000
6Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾1
¾11
111
Insert at t ¾
000
7Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
8Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
9Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
10Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
11Bézier Curves Summary
- DeCastlejau algorithm
- Evaluate Position(t) and Tangent(t)
- Subdivides the curve into 2 subcurves with
independent control polygons - Subdivision of Bézier curves and convex hull
property allows for - Adaptive rendering based on a flatness criterion
- Adaptive collision detection using line segment
tests
12Linear Bézier Basis Polys
V0
Vt
V1
Vt
Bez1(t)
(1-t) V0 t V1
1-t
t
V0
V1
Knots
13Quadratic Bézier Basis Polys
V01
Vtt
Vt1
V0t
V00
V11
14Quadratic Bézier Basis Polys
Bez2(t) (1-t)2 V00 2(1-t)t V01 t2 V11
Knots
15Cubic Bézier Basis Polys
0t1
001
011
ttt
tt1
0tt
00t
t11
111
000
16Cubic Bézier Basis Polys
Bez3(t) (1-t)3 V000 3(1-t)2t V001 3(1-t)t2
V011 t3 V111
Knots
17Blossoming of Bsplines
234
345
456
123
Knots
0
1
7
6
5
4
3
2
18Blossoming of Bsplines
234
345
33.54
233.5
3.545
456
123
Knots
0
1
7
6
5
4
3
2
3.5
19Blossoming of Bsplines
234
345
33.54
33.53.5
3.53.54
233.5
3.545
456
123
Knots
0
1
7
6
5
4
3
2
3.5
20Blossoming of Bsplines
234
345
33.54
33.53.5
3.53.54
3.53.53.5
233.5
3.545
456
123
Knots
0
1
7
6
5
4
3
2
3.5
21Bspline Blossoming Summary
- Blossoming of Bsplines is a generalization of the
DeCastlejau algorithm - Control point index triples on the same control
line share 2 indices with each other - Inserting a knot (t value)
- Adds a new control point and curve segment
- Adjusts other control points to form a control
polygon - Inserting the same t value reduces the parametric
continuity of the curve - A control point triple with all 3 indices equal
is a point on the Bspline curve
22Uniform Linear Bspline Basis Polys
V0
Vt
V1
Vt
B1(t)
(1-t) V0 t V1
1-t
t
V0
V1
Knots
23Uniform Quadratic Bspline Basis Polys
V01
Vt1
V0t
Vtt
V-10
V12
B2(t)
24Uniform Quadratic Bspline Basis Polys
V-10
V01
V12
Knots
-2
-1
0
1
3
2
25Uniform Cubic Bspline Basis Polys
B3(t)
26Uniform Cubic Bspline Basis Polys
V-2-10
V-101
V012
V123
27Uniform Bsplines from Convolution
?
?
?