Print

When it comes to Nurbs vs Bezier, the CAD forums are rife with arguments and counter arguments. The following is an excerpt of my post in one of those forums. It describes some of the affecting factors.

Approximation 

Digital representation of shape is based on approximation. There are many different algorithms and equations which tries to describe a shape to a certain tolerance. Take a circle for example. If we were to fit a circular shape with Beziers, we would end up with a multitude of Bezier segments (of reasonable degree.. 3, 5, 7 .. definitely not 20) connected to one another, and still the radius values along the segment might vary very slightly. A common problem while make wheels.. Using Nurbs ( with different weights) of degree 2 we can describe a circle with far less information (CVs knots. etc). The shape is precise with radius values same all along the circle. ( the locus information might still be different.. too difficult to explain using only text).There is a miss-conception that NURBS means just multi span. The power of nurbs comes from the fact that the CVs can have different influence(weights, rationality) on the geometry. In short nurbs can describe a particular shape with the least amount of data, as compared to any other approximation. 

 

Errors and Precision

Errors are the resultant of approximation. The simplest of errors are the "divide errors". Imagine a prime number divisions .. the computer calculates the result based on the floating point precision and trims the value. Let us imagine that we are scaling up and down an explicit model multiple times, with large values.. the digital model will progressively become less accurate! .. one might be surprised to know that some high priced CAD packages were built using lower floating point precision than their newer, cheaper counterparts! 

Internal discontinuity

A complex shape can be described by a series of Bezier patches or by a multi span B-spline or Nurbs. Single span Beziers/Bspline/Nurbs does not have internal discontinuities. But for multiple span geometry, the internal continuity(continuity across spans) is dependent on the degree of the geometry. Degree 2 can have c1 internal continuity, Degree 3 c2, and so forth. Degree 5/7 geometry will have sufficiently high levels of internal continuity, which warrants its use in Automotive application. For example, a car roof could be defined by a single nurbs surface of degree 5 with 3 spans in both U and V direction. The number of CVs in that case is 8x8=64. For the same shape using only Bezier patches would result in 9 patches and 6x6x9=324 CVs. Moreover a high level of continuity between these patches must be maintained. The time required to modify such a patch layout is much more than modifying a single surface. 

Visualization

In CAD software, the surfaces will have to be converted to a triangular mesh before it can be visualized. The conversion of surfaces to triangles is another approximation. Many different tessellation and shading algorithms have been developed, so that a close enough representation of the shape is possible without running out of display memory and interactivity. Cracks might appear along trim surface edges or transition between dissimilar patches. The usual way to solve this problem is to increase the tessellation level, so that the resultant shading mesh is very fine. Designers often wonder how software like CATIA and NX can very easily shade massive amount of data, as compared to Alias/ICEM Surf. The reason is because of stitched edges, which allows lowering of tessellation without cracks. 

Trim Surfaces 

A good surface modeller is one who can solve the conundrum of laying out a patch network on a shape, without degenerate edges. The patches should be laid out such that it should make design sense, and in general "flow" with the form. Invariably he will have to resort to trim surfaces. Trim edges definition is usually complex and may require, multiple curve segments to define those, even in Bezier modelling. If the trim edges are long and complex, it is difficult to use those to create new surfaces. The usual method in Bezier modelling is to "segment" the patch to a number of smaller patches so that the required tolerance is achieved. 

Geometry Kernels and shared edges 

Most of the "Class A" software packages are stand alone applications, like Alias and ICEM Surf. Ultimately they will have to transfer the data to the CAD packages like NX and Catia, for further development, tooling etc. All current CAD packages works on solid modelling paradigm. The most important step to make a surface model compatible to a solid modelling package is to join or to stitch them together. stitching is a process in which a common edge is defined ( within a tolerance) between two adjacent surfaces. The lesser the stitches, lesser the problem. eg. Defining a fillet between two sets of surfaces as bezier, will result in a multitude of small patches. The leading kernels are CGM, ParaSolid, ASIC. Graphite ..etc all of which supports NURBS geometry. 

To summarize, Bezier surfaces have a simple representation and may transfer properly to other CAD systems. But the trim edge definition is complex, and in most cases cannot be explicitly controlled. Those edges will be modified when the surfaces are "stitched" in the downstream CAD software. Also, numerous patches are required to describe a shape. Change in one patch will require all the other patches connected to it be rebuilt for continuity. NURBS on the other hand is more complex but require fewer control points to describe a similar shape. Spans can be considered as analogous to bezier patches connected together automatically, so that continuity is automatically maintained while modifying the geometry. Nurbs may not transfer to very old systems, which I doubt anybody is using today. Bezier is a subset of NURBS. Nurbs can be automatically converted to Beziers. 

Finally Class A, Bezier, NURBS are just jargon popularized by CAD companies.. A successful modeler is one who can make the form/shape the designer dreams, in the least amount of time .. be it using any method... My personal preference is Clay modeling .. and the second best Alias, since it allows the user to model in a wide variety of methodologies, curve networks, Nurbs, Beziers, Global modeling, Fitting etc ..etc..