



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of b-splines, a type of non-uniform curve interpolation used in computer graphics and modeling. Unlike catmull-rom splines, b-splines do not interpolate control points, instead using knots and basis functions. Converting between different spline types, drawing spline curves, and modeling by subdivision. It also discusses linear subdivision and smoothing of curves.
Typology: Study notes
1 / 7
This page cannot be seen from the preview
Don't miss anything!




Like Catmull–Rom splines, start with sequence of points
Curves no longer interpolate control points
Lack of interpolation isn’t a big problem for interactive design
p
0
,... , p
n
− 3
2 3 − 2
− 1
i
i
i
i
u u u u
p
p
p
p
p
Non-negative functions
b ( u )
1
b ( u )
4
b ( u )
3
b ( u )
2
( )
( )
( )
b u u
b u u u
b u u u u
b u u
3
1
3 2
2
3 2
3
3
4
i i i i
b u b u b u b u
1 − 3 2 − 2 3 − 1 4
p + p + p + p
We saw a specific example of Bézier–Hermite conversion
Suppose we want to convert between two arbitrary splines
Given geometry matrix G
find equivalent G
for other spline
0 0
3 1
0 2
3 3
p p
p p
r p
r p
1 1 2 2
T T
u M G u M G
− 1
2 2 1 1
Method #1 — Direct evaluation
Method #1a — Direct evaluation with forward differencing
This approach has some problems
Recall that we can draw spline curves via subdivision
We can actually use this as a modeling primitive
Assume that we have some control polygon
Need two fundamental operations:
Split each edge of the curve at its barycenter (midpoint)
i
i+ 1
Reposition each vertex at weighted combination of neighbors
Can also rewrite the above in a matrix form
i − 1
i
i + 1
i i i i
1 − 1 2 + 1
i
i
i
i i
i
− 1
1 2 3
Points after k steps are linear combinations of previous points
k k k
i i
k
i i
n n
n n
x y
x y
x y x y
x y
x y
x y
− 1 − 1
1 1
1 1
2 2 2 2
− 1
2 + 1 2 + 1
2 2
=
=
p S p
S
M M
M M
M M
**1. Compute barycenters of adjacent edges
Same as weights [! " !] but works in higher dimensions too
i
′ v
i − 1
v
i
v
i + 1
v