Main Page | See live article | Alphabetical index

Nonuniform rational B-spline

NURBS, short for nonuniform rational B-splines, are a computer graphics technique for drawing curves. A NURBS curve is defined by a set of weighted control points, the curve's order and a knot vector. NURBS are generalizations of both B-splines and Bézier curves, with the primary difference being the weighting of the control points which makes them rational (non-rational B-splines are a special case of rational B-splines, in practice most NURBS curves are non-rational).

NURBS curves are easily generalized into NURBS patches.

One of the first common uses of NURBS was in 3D modelling packages, notably Alias's line starting in the early 1990s. NURBS are useful for a number of reasons, they:

• offer one common mathematical form for both, standard analytical shapes (e.g. conics) and free form shapes;
• provide the flexibility to design a large variety of shapes;
• can be evaluated reasonably fast by numerically stable and accurate algorithms;
• are invariant under affine as well as perspective transformations;
• are generalizations of non-rational B-splines and non-rational and rational Bézier curves and surfaces.

They can accurately represent standard geometric objects like lines or conic sections as well as free form geometry.

The knot vector is a sequence of parameter values that determine the continuity along the NURBS curve. The number of knots is always equal to the number of control points plus the order of the curve.

The values of the knot vector must be in ascending order: the following vector is valid [0 0 1 2 3] while this one is not [0 0 2 1 3]. Also note that the only significant factor is the ratio of the values to each other: the knot vectors [0 0 1 2 3], [0 0 2 4 6] and [1 1 2 3 4] produce the same curve. There can be no more duplicate values than the degree: knots multiplicity <= degree. For degree 1 NURBS each knot is paired with a control point.

The order of the curve is greater or equal to 2, corresponding to a linear curve (order = 2), a quadratic curve (order = 3) and a cubic curve (order = 4). The curve is represented mathematically by a polynomial of same order, a cubic curve is represented by a degree 3 polynomial which order is 4. Besides, the number of control points must be equal to or greater than the order of the curve.

we need more on the "rational" aspect of NURBS, including a formula, and what distinguishes them from ordinary non-uniform B-splines