Game Development Reference
In-Depth Information
makers use models based on skew surfaces, which are later triangulated in order to
simplify the rendering calculations. Triangulation, a complicated problem addressed
in section 14.4, is necessarily a compromise between the precision of the triangulated
model, the time required for rendering and the time taken for the triangulation.
These days, the model makers favour NURBS surfaces for modelling objects.
For example, CATIA for CAD and also 3DS Max for computer graphics. With
file formats dedicated to virtual reality (for example, VRML), it is also possible to
directly incorporate NURBS surfaces, even though they are triangulated for real time
visualisation.
14.3.3 Nurbs surfaces
Most of the attributes of NURBS surfaces are described in the explanation of the
initials:
NU: NURBS surfaces are non-uniform;
R: The equations describing them are rational;
BS: These are Bezier splines.
In short, theNURBS are rational parametric surfaces constructed using two param-
eters u and v , a set of control points, a sequence of knots and the weight assigned to
each of these control points. They make it possible to represent the surfaces used in
CAD with greater precision, and also to consider different types of continuity between
surfaces of the same object. The NURBS surfaces are generalisations of non-rational
B-splines which result from rational Bezier curves. We can further add that these are
the generalisations of Bezier curves.
Let's start from the very beginning: A Bezier curve of degree n is a C ( u ) parametric
curve defined by:
n
C( u )
=
B i , n ( u ) P i
0
u
1
(14.1)
i
=
0
The P i are called the control points of the curve. The basic B i , n functions are the
standard Bernstein polynomials of degree n defined by:
n
!
u i (1
u ) n i
B i , n ( u )
=
(14.2)
i
!
( n
i )
!
The Bezier curves are very useful in a two-dimensional interactive design; you can see
them in all Windows applications, for example. Typically, we use a 3 degree curve
(which then has four control points) like shown in figure 14.11. Unfortunately, the
Bezier curves cannot be used for representing conic sections. A conic section (for exam-
ple a circle) can be represented using a rational function (quotient of two polynomials),
i.e. in dimension 3:
X ( u )
W ( u )
Y ( u )
W ( u )
Z ( u )
W ( u )
x ( u )
=
y ( u )
=
z ( u )
=
(14.3)