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

Search Nedrilad ::

Custom Search