Game Development Reference
In-Depth Information
function is then defined by the following recurrence formula:
1if u i
u
u i + 1
N i , o ( u )
=
0 else
(14.6)
u i
u i + p
u
u i + p + 1
u
N i , p ( u )
=
N i , p 1 ( u )
+
N i + 1, p 1 ( u )
u i
u i + p + 1
u i + 1
Equation (14.6) can give a 0/0 quotient, which is then defined at 0. The knot vector
of a non-uniform B-spline curve is thus a non-periodic and non-uniform vector of the
shape:
U
=
( a , . .. , a ,
p
u p + 1 , ...u m p + 1 , b , .. .b
)
(14.7)
p
+
1
+
1
The polygon obtained by joining all control points P i is called the control polygon of
a B-spline curve.
We generalise the result obtained to rational curves and define the rational and
non-uniform B-spline curves, i.e. the NURBS curves:
i = 0 N i , p ( u ) w i P i
i = 0 N i , p ( u ) w i
C( u )
=
a
u
b
(14.8)
where P i are control points, w i are weights and N i are basic B-spline functions defined
on the non-periodic and non-uniform knot vector U of the equation (14.7). We can rep-
resent a rational curve with n dimensions as a polynomial curve with n
1 dimensions
using homogenous coordinates. The control points in homogenous coordinates are
written as P i
+
0. This
operation is equivalent to a perspective projection on the origin. We can then rewrite
the equation (14.8)
=
( w i x i , w i y i , w i z i , w i ) in a four-dimensional space where w i
=
n
C w ( u )
N i , p ( u ) P i
=
(14.9)
i
=
0
It is this equation that we will use to define the NURBS surfaces in homogenous
coordinates:
n
S w ( u , v )
=
N i , p ( u ) N j , q ( v ) P i , j
(14.10)
i
=
0
j
=
0