# Superfluous Knots

This guide discusses superfluous knots and the openNURBS toolkit.

## Question

How is the representation of knot vector in openNURBS different from that in OpenGL’s NURBS renderer? In openNURBS, the formula is:

$m = n + p - 2$

where m is the number of knots in the knot vector; n is the number of control points; p is the order of the curve.

While in OpenGL, the formula is:

$m = n + p$

So, in OpenGL, there are two additional knots required to draw a NURBS curve.

Could you explain how the two knot values are calculated? And, why openNURBS adopted a representation different from most NURBS books?