Game Development Reference
In-Depth Information
11.6.1 Uniform B-Splines
Like Hermite and Bézier curves, each piece of a B-spline can be expressed as a
cubic curve in terms of a basis matrix and geometry matrix. The letter “B” in
B-spline stands for “basis” and distinguishes the curve from the natural cubic
spline, which does not use the basis and geometry matrix formulation. The ge-
ometry matrix
G
used by the B-spline is the same as that used by the Catmull-
BS
Rom spline:
]
=
PPPP .
(11.63)
G
[
BS
i
1
i
i
+
1
i
+
2
Given a set of
n
+
1
control points
{
PP
,
,
, a B-spline is composed of
,
}
n
2
01
n
()
corresponding to the pair of points P and
P
cubic curves
Q
i t
. Each of these
i
+
1
pieces is expressed as the weighted sum
3
()
()
Q
t
=
B
t
P
,
(11.64)
i
k
i
+−
k
1
k
=
0
()
where the blending functions
k B t are determined by imposing the constraint
that the entire curve possess C continuity.
QQ where the pieces of the
B-spline join together are called knots . We also classify as knots the endpoints of
the curve,
The set of points
()
0,
()
0, ,
()
0
{
}
2
3
n
2
()
()
1 0
and
2 1
, and thus a curve having
n
+
1
control points pos-
Q
Q
n
sesses
knots. A B-spline is called uniform if the knots are spaced at equal
parameter values along the entire curve. At this point, we are only considering
the case that each piece
n
1
()
i t
of the curve corresponds to a parameter range of
Q
]
0,1 , so we are dealing with uniform B-splines. Nonuniform B-splines, in which
the knots may not be equally spaced with respect to the parameterization, are dis-
cussed in Section 11.6.3. Figure 11.10 shows the six knots belonging to a
B-spline curve having eight control points and thus five cubic pieces.
[
()
C continuity at each
The blending functions
t are found by requiring
B
k
knot, leading to the following equations.
()
( )
1
=
Q
0
Q
i
i
+
1
()
( )
Q
1
=
Q
0
i
i
+
1
′′
()
′′
( )
Q
1
=
Q
0
(11.65)
i
i
+
1
Expanding the first of these requirements with Equation (11.64), we have