Bezier, Single Span & NURBS Surfaces - Differences and Similarities

The focus of this thread is intended to be the differences and similarities between Bezier, single span and NURBS surfaces. It is not intended for discussion of which is “better”. Factual information will be presented, not opinions.

References to Bezier surfaces here are to single Bezier surfaces, not strings or groups of Bezier surfaces.

Single span refers to a NURBS surface with a single span in each direction. The number of control points in each direction equals the degree of the curve in each direction plus 1. A single span surface which is degree 3 x degree 3 has 4 x 4 control points. A degree 3 x degree 5 single span surface will have 4 x 6 control points. Continuity within a single span surface is infinite although derivatives higher than the degrees will be zero.

Every Bezier surface has an exactly identical single span NURBS surface of the same degree, and every single span NURBS surface has an exactly identical Bezier surface. The mathematical formulation of Bezier surfaces and single span NURBS surfaces are exactly equivalent. Control point locations are identical, and for rational surfaces the weights are identical.

What may cause confusion is some software has alternative user interface for Bezier curves and surfaces using “handles”. This is an alternative method for specifying control point location and does not create a different type of curve or surface. The Rhino command HandleCurve uses a handle type interface to create a polycurve of degree 3 Bezier/single span curves with tangential (G1) continuity between the individual curves.

There are multiple ways to derive and explain the Bezier / single span curve and span formulation. Typically a geometric construction method is associated with “Bezier” which may lead to the conclusion that a Bezier curve or surface is more “geometric”. Again, the control points, weights and shape of a curve or surface is identical whether a curve or surface is is labeled Bezier.

For the remainder of this thread “single span” and “Bezier” will be used interchangeably.

4 Likes

Any multiple span NURBS curve or surface can be split into a set of Bezier/single span curves or surfaces with exactly the same shape. The Rhino command ConvertToBezier can be used to convert a multi-span curve or surface into the equivalent Bezier/single span curves or surfaces. A multi-span NURBS surface will always have fewer control points than the equivalent set of Bezier/single span surfaces.

A NURBS surface with degree m and p spans in the u direction, and degree n and q spans in the v direction will have (m + p) x (n + q) control points

The equivalent set of single span surfaces will have (m +1) x (n + 1) x p x q control points.

Example 1: A NURBS surface of degree 5 x 3 with 3 x 2 spans will have (5 + 3) x (3 + 2) = 48 control points. Each of the 6 equivalent single span surfaces will 6 x 4 = 24 control points and the total number of control points in the set will be (6 x 4) x (3 x 2) = 144 control points. So for this example the equivalent set of single span surfaces will have three times the number of control points as the single multi-span NURBS surface.

There will be more control points in total anytime a set of single span surfaces is used in place of a multispan NURBS surface with identical shape. The difference in number of control points rapidly increases with increasing degree and number of spans.

2 Likes

Position continuity (C0, G0):

An untrimmed edge of a single span surface can exactly match the untrimmed edge of another single span surface as long as the degree of the first surface in the direction of the coincident edge is the same as or higher than the degree of the second surface. This is also true when matching the edge of a single span surface to a portion of the edge of another surface.

An untrimmed edge of a multi-span surface where the edge runs across multiple spans can exactly match an untrimmed edge of a single span surface as long as the degree of the first surface in the direction of the coincident edge is the same as or higher than the degree of the second surface.

The untrimmed edge of a multi-span surface can exactly match the untrimmed edge of a single span as long as the degree of the multi-span surface in the direction of the coincident edge is the same as or higher than the degree of the single span surface.

The untrimmed edge of a multi-span surface can usually only exactly match the untrimmed edge of another multi-span surface if the degree of the first surface in the direction of the coincident edge is the same as or higher than the degree of the second surface and the knot vectors in the direction of the coincident edges are compatible. If the surfaces have the same number of spans along the the coincident edges and the knots vectors in that direction are uniform then the knot vectors will be compatible. There are other situations where the knot vectors can be compatible but the details will be skipped in the interests of brevity.

1 Like

Thanks for the info David.

For me, one of the most important areas where single span and multispan differ is where the multispans are joined together. I think they’re ‘sewn’ together with the de Boor algorithm (could be wrong there…) which, as a user, is hidden from you when trying to edit a multispan. For instance, if you display the control points for a multispan you just wont be able to see all the points governing the transition from one span to another. I could be wrong though…again…

1 Like

No control points are hidden from the user with NURBS. The control points displayed with PointsOn are the only control points. (Closed curves and surfaces have some additional control points for computational efficiency, but those additional control points depend on the visible control points.)

Continuity between spans is inherent in the NURBS formulation. For simple NURBS curve (no repeated/multiple knots) of degree m there is m-1 continuity between adjacent spans. That continuity is built into the equations. A degree 3 multi-span NURBS curve has C2 continuity (curvature) between adjacent spans. The result of that continuity is for a curve of degree m with p spans there are only m + p degrees of freedom and control points. For a multi-span surface of degree m x n with p x q spans there are only (m + p) x (n + q) degrees of freedom and control points.

NURBS curves and surfaces are not (usually) created by first creating a set of single span curves or surfaces and subsequently joining them together. In Rhino as a user inputs control point coordinates using the Curve command the corresponding knot values are calculated and those values are used directly in the NURBS equations to calculate points on the curve.

The continuity between spans across a knot can be decreased by adding a repeated knot to create a multi-knot. Each time a repeated knot is added an additional control point is added. This method has the significant advantage that the same algorithms used for evaluating simple NURBS curves and surfaces also work with curves and surfaces with multi-knots.

De Boor’s algorithm is just one of many ways to evaluate and manipulate NURBS and is convenient rather than necessary.

1 Like

Bookmarking this thread for reference.
Thank You David!

1 Like

A NURBS surface with a kink inserted at each knot will have exactly the same control points as the corresponding set of single span surfaces with position continuity between the single span surfaces, except the NURBS surface will only have single rows and columns of control points along the kinks. This results in automatic position continuity across the kink. The span of influence of the control points will be the same as that of the single span control points except for the control points along the kinks which will influence the spans on either side of the kinks.

Move one of the the control points along a kink and the shape of the adjacent spans change while maintaining position continuity. In contrast with a set of single span surfaces arranged so that there is positional continuity between span surfaces if a control point along the edge of a surface is moved then the corresponding control point on the adjacent single span surface also needs to be moved the same amount to maintain position continuity.

The net result when position continuity is desired the NURBS surface with kinks allows the same amount of flexibility for the shape, position continuity is automatic, and there are fewer control points.

1 Like