Updated: Aug 20, 2019
Alas, this is a joke that is not far from the truth. Despite the fact that NURBS has been the de-facto standard for surface modeling for more than thirty years, not many engineers understand how to use this wonderful tool. In my practice, I often have to use surface models from other systems and designers. Each time I find those or other errors or simply delusions of designers who makes model the surface of the body at the initial stages of the project. The mathematical properties of NURBS are diverse and make it possible to achieve the same form in various ways. This sometimes confuses the designer. Ultimately, an engineer is not required to have a deep knowledge of mathematics when using NURBS to model surfaces. I will try to briefly formulate the geometric meaning of NURBS and its properties. Consider NURBS curves, as this provides a basic understanding of the properties of NURBS.
The geometry of any NURBS curve is determined by the following elements:
- control polygon with weights at each point,
- the degree of the curve,
- knots vector,
- knots of the curve.
In general, a NURBS curve consists of several spline segments, each of which is defined as a set of points of a control polygon. Therefore, the shape of the polynomial segment will depend only on a few control points on the segment of the curve. This gives one of the most interesting properties of NURBS - the locality of the change in the shape of the curve.
The control polygon is the most important component of NURBS, which determines the shape of the curve. Unlike splines, a curve does not necessarily go through all points of a control polygon. This circumstance caused a lot of complaints and disputes at the initial stages of using NURBS in design, but with the possibility of interactive changing the shape of the curve, this is not so critical. On the contrary, the control polygon is more informative in determining the shape of the curve. You just need to remember some simple rules:
- The curve passes through the start and end points of the polygon. I do not consider here special cases of defining a nodal vector and the case of a cyclic closed curve,
- The vectors formed by the end points and adjacent to them determine the tangents at the end points of the curve,
- The convex control polygon guarantees a convex curve shape,
- A sequence of polygon points belonging to one straight line can give a mathematically accurate rectilinear portion of the curve,
- A change in the position of one point of the control polygon leads to a change in part of the curve (in the general case).
The shape of the line and its parameterization strongly depends on the location of the points of the control polygon. Smooth and even distribution of the points of the control polygon will give a smooth and aesthetic shape to the NURBS curve.
It should be separately noted that each point of the control polygon can be assigned a weight. The higher the weight value, the closer the curve goes to this point. The weight at the points determines how strongly one vertex or another affects the shape of the curve. In this case, no matter how higher the weight value at the intermediate point of the control polygon, the curve will never exactly pass through this point. The different weights for the points of the control polygon are, in fact, how NURBS differs from the B-spline. In the case of a B-spline, all weights are the same. The use of weights allows, for example, to repeat exactly the shape of the circle. If all the weights of the polygon are the same, this can only be done approximately. Perhaps the use of weights can reduce the number of points in the description of the shape of the curve, but, in my opinion, this is a completely non-obvious advantage. And, as experience shows, in most simulated shipbuilding surfaces, weights are not used.
The degree of the curve.
As noted above, NURBS is a curve consisting of sections of parametric splines of a given degree. The degree, as a parameter of the NURBS curve, affects the mathematical smoothness of the curve (not to be confused with aesthetic smoothness), the degree to which the curve is separated from the control polygon, and the area of the curve when the position of one point of the control polygon changes. Without going into mathematical details, we can say - the higher the degree of the curve - the farther the curve is from the points of the polygon and the more difficult it is to achieve the required shape. So, if the first degree is used, then the curve completely repeats the control polygon. As the degree increases, the curve becomes smoother and further away from the control polygon. The higher the degree of the curve, the higher the mathematical smoothness. In my opinion, the optimal degree for describing shipbuilding curves is the third degree. This preserves the smoothness of the tangent along the curve and the continuity of the curvature. Using degrees above the third complicates the modeling and does not provide the required locality when changing the shape of the curve.
A knots vector is the most hidden and non-obvious component of NURBS. The knots vector determines the division of the curve into sections and, accordingly, the value of the curve parameter at the boundaries of the sections. The parametric lengths of the intervals also determine the degree of influence of the points of the control polygon on the sections of the curve. Duplication of the values of the knots vector parameter is also responsible for the boundary conditions at the joining points of the curve sections. An example of a knots vector for NURBS curve of the third degree with a control polygon consisting of six points - [0,0,0,0,1,2,3,3,3,3]. The curve parameter changes in the interval [0-3]. The curve consists of three sections [0-1], [1-2], [2-3]. Fourfold duplication of the parameter at the beginning and end of the knots vector indicates that the curve begins and ends at the end points of the control polygon. Note that all sections have the same parametric length and are evenly distributed along the curve. This gives a uniform effect of the points of the control polygon on the shape of the curve. If the knots vector looks like this - [0,0,0,0,1,1.1,3,3,3,3] the shape of the curve will be different, the influence of the points of the control polygon will be uneven. Managing the shape of such a curve is much more difficult. Many CAD systems use a knots vector with a uniform partition of the curve by parameter, and the designer, as a rule, does not have the ability to change it.
The knots of the curve.
The start and end points of sections of the curve are called knots. The value of the parameter of the curve in the knots coincides with the value of the parameter of the knots vector. The knots show the boundaries of the sections of the curve. This allows you to determine, for example, the boundaries of a rectilinear segment, if part of the control points of the polygon are located on one straight line.
Summarizing the above, NURBS curves and surfaces with a degree not higher than 3rd and with uniform distribution of sections along the curve parameter are best suited for modeling the hull. This is just little explanation of general ideas of NURBS. If you want to lean it more detailed best book for that is "The NURBS book"