NURBS Modeling: A Complete Guide

 |  Anubhav Srivastav

NURBS Modeling: What You Need to Know

We are always talking about geometric 3D geometry. We have either had a primitive 3D object, or we started with a plain arrow of geometry and given that depth. Hence, if we want to design a building that looks creative with modern pieces of unique art, we will not be able to use simple geometric forms, and one of the techniques we have to use in vector works is NURBS.

What is NURBS?

Nurbs-modeling

NURBS stands for non-uniform rational b-splines. Splines are what we have when we draw polylines and vectors works or in the adobe suite; if you have used paths, you have worked with splines. A spline is a continuous curve with various anchor points and control points. It is like taking a strip of wood and clamping it in the anchoring in multiple spots so that the nice continuous curve is not geometric; it is not a circle, it is not a line, it's something smooth based on these points.

The NURBS curve is made up of a bunch of rational polynomial equations. So we need to pick one mathematical function for the entire curve; we can splice together many mathematical operations. Ergo that’s where the non-uniform comes in, and we are not limited to one plane; we can go in the XY or Z axis as we have this equation, and they all kind of are smooth and perfect together. 

Thus, by combining these equations and then joining different equations and also a bunch of NURBS curves into a NURBS surface, we can get all freeform geometry. It is helpful for very smooth objects or when you need an exact surface.

Where to Use NURBS?

Nurbs-modeling-in-surface-modeling

The NURBS object always has four sides and is made of mathematically created curves that are defined by control points. An individual control point does not show where that surface will be but averages with the surrounding points to create a curved surface. This means we cannot directly edit the surface. If we pull a control point, the surface will only move slightly because we are averaging the change to create complex objects using NURBS. We have to make many individual NURBS objects, often called patches.

A common issue when working with NURBS is visible seams or breaks in the otherwise smooth surface between patches, but we can hide the seams between patches with care and correct workflows.

Since this multi-patch object looks like a single surface, these difficulties mean that NURBS are rarely used in the computer graphics world, but it is often used in engineering and product design. Because of the exact nature of NURBS, if you need to create a very smooth object or mathematically accurate surface, try using NURBS.

Things to Know About NURBS

NURBS modeling

A NURBS curve is a mathematical curve in three dimensions. This is a  picture of a single curve from four different views: the top front right is an isometric view, and we can see it is twisting and curving in all of these different directions. The other thing to know about NURBS is that it's an industry standard; as a result, NURBS was developed for the auto industry to define the contours of an automobile and share that among a lot of people. If you have ever used the software, you know that Rhino started out primarily as a NURBS-based modeling software.

Accordingly, if you transfer NURBS objects from one piece of software to another, it will be pretty uniform. There is also a whole body of mathematics written about NURBS curves. The amount of information required for a NURBS representation of a piece of geometry is significantly smaller than a faceted in-mesh based representation; thence, if we have something like SketchUp that uses mesh that takes lots of little triangles and composts those together well, we can do processing to make those triangles appear smooth.

 When we render, it is like the pixel version compared to a vector; for that reason, in a piece of NURBS geometry, we can zoom way in to that 3D object, and it is always going to be flowing and smooth, which means that we are doing a realistic render.

It will take a lot less time to render if we do NURBS, and it means we don’t ever have to smooth out any edges; it is always going to be a nice clean 3D object. The other thing to remember about NURBS is that we can define nearly anything; we can get a circle, an ellipse, a triangle, or squiggly shapes, and sometimes the easiest way to create a NURBS curve is to start with the planar object.

Remembering the degrees and weight to get the circle from the NURBS curve is not easy. So it is much easier with tools to draw them and then go to modify them to convert to NURBS. Another thing to know about NURBS is that many 2D functions you can use with polylines and polygons will also work with NURBS.

Why NURBS?

NURBS-modeling-demostration-in-rhino-3d

We use NURBS because they are invariant and affine as well as perspective transformations. They can be quickly evaluated reasonably fast by numerically stable and accurate algorithms, which is what we are looking for. NURBS also provides the flexibility of design to a large variety of shapes ranging from, as we mentioned, a simple 2D line to the most complex, free from the surface or solid. NURBS also offers one common mathematic form for both standard analytical shapes.

There are your cones, rectangles, and everything free from shapes. Lastly, NURBs are generalizations of non-rational B-splines and non-rational and rational Bezier curves and surfaces, which is the most beneficial thing about NURBS.

  • NURBS are invariant under affine as well as perspective transformation.
  • NURBS can be evaluated reasonably fast by numerically stable and accurate algorithms
  • NURBS offer one common mathematical form for both. Standard analytical shapes and free form shapes.
  • NURBS provides the flexibility to design a large variety of shapes.

Properties of NURBS Surface

  • Partition of unity 
  • Differentiability
  • Extrema
  • Non-negativity
  • Generalization
  • Local support

Rational B-spline Surface Properties

  • Strong convex hull property
  • Local modification
  • Differentiability
  • Affine invariance
  • Corner point interpolation  
  • Local support

These properties include corner point interpolation affine as well. Affine variance means an affine transformation is applied to the surface by applying it to the control points. These are fundamental properties that we use a lot.

 It also has a strong convex hull property. This local modification property means that if you move any point or change the weight, it affects the surface shape only in the rectangle, right in the local rectangle in which the point is also placed in differentiability. Local support in differentiability: when we talk about the property, differentiability means that the points on the surface are differentiable concerning others.

Effects of Weight

As the weight is increased or decreased on one point of the NURBS surface, the surface is pushed and pulled from the point, depending on whether you increase the weight or decrease the weight. 

If the weight is increased on a particular point, the surface is pulled towards it, and if the weight is decreased on one specific point, the surface is pushed towards it. If we set the weight to zero, the whole control point is nullified, which is a critical property of the NURBS surface. Each control point in NURBS has something called weight to it. We can almost think of weight as a kind of gravity. The higher the weight, the more of the curve that pulls the control point. The geometry of the NURBS models is determined by control points.

When we create a curve, we specify the degree of the curve. So think of this degree as weight; the closer the weight to the curve, the greater the point of contact and the more influence it has directly on the curve.

Conclusion

NURBS can be used for complex surface design and many automotive applications. NURBS can be used for smooth shapes that don't require considerable surface detail but have a dynamic look. Industrial designers pretty much use NURB for product design and furniture design. NURBS is not resolution-dependent like polygonal models.


Enjoy powerful modeling, rendering, and 3D printing tools without the steep learning curve.

Need to learn 3D modeling? Get started with interactive tutorials.

Was this blog post interesting or helpful?