Non Uniform Rational B-Spline (NURBS)

A NURBS curve
A three dimensional NURBS surfaceNon-uniform rational B-spline (NURBS) is a mathematical model commonly used in computer graphics for generating and representing curves and surfaces.
Contents
1. History
2. Use
3. Technical specifications
4. Manipulating NURBS objects

History
Development of NURBS (Non Uniform Rational Basis Spline) began in the 1950s by engineers who were in need of a mathematically precise representation of freeform surfaces like those used for ship hulls, aerospace exterior surfaces, and car bodies, which could be exactly reproduced whenever technically needed. Prior representations of this kind of surface only existed as a single physical model created by a designer.
The pioneers of this development were Pierre Bézier who worked as an engineer at Renault, and Paul de Casteljau who worked at Citroën, both in France. Bézier worked nearly parallel to de Casteljau, neither knowing about the work of the other. But because Bézier published the results of his work, the average computer graphics user today recognizes splines — which are represented with control points lying off the curve itself — as Bézier splines, while de Casteljau’s name is only known and used for the algorithms he developed to evaluate parametric surfaces. In the 1960s it became clear that non-uniform, rational B-splines are a generalization of Bézier splines, which can be regarded as uniform, non-rational B-splines.At first NURBS were only used in the proprietary CAD packages of car companies.
Later they became part of standard computer graphics packages.In 1985, the first interactive NURBS modeller for PCs, called Macsurf (later Maxsurf), was developed by Formation Design Systems, a small startup company based in Australia. Maxsurf is a marine hull design system intended for the creation of ships, workboats and yachts, whose designers have a need for highly accurate sculptured surfaces. Real-time, interactive rendering of NURBS curves and surfaces was first made available on Silicon Graphics workstations in 1989. Today most professional computer graphics applications available for desktop use offer NURBS technology, which is most often realized by integrating a NURBS engine from a specialized company.


Use
NURBS are nearly ubiquitous for computer-aided design (CAD), manufacturing (CAM), and engineering (CAE) and are part of numerous industry wide used standards, such as IGES, STEP, ACIS, and PHIGS. NURBS tools are also found in various 3D modeling and animation software packages, such as form•Z, Maya and Rhino3D.They allow representation of geometrical shapes in a compact form. They can be efficiently handled by computer programs and yet allow for easy human interaction. NURBS surfaces are functions of two parameters mapping to a surface in three-dimensional space. The shape of the surface is determined by control points.In general, it can be said that editing NURBS curves and surfaces is highly intuitive and predictable. Control points are always either connected directly to the curve/surface, or act as if they were connected by a rubber band. Depending on the type of user interface, editing can be realized via an element’s control points, which are most obvious and common for Bézier curves, or via higher level tools such as spline modeling or hierarchical editing.
A surface under construction, e.g. the hull of a motor yacht, is usually composed of several NURBS surfaces known as patches. These patches should be fitted together in such a way that the boundaries are invisible. This is mathematically expressed by the concept of geometric continuity.Higher-level tools exist which benefit from the ability of NURBS to create and establish geometric continuity of different levels:Positional continuity (G0) holds whenever the end positions of two curves or surfaces are coincidental. The curves or surfaces may still meet at an angle, giving rise to a sharp corner or edge and causing broken highlights. Tangential continuity (G1) requires the end vectors of the curves or surfaces to be parallel, ruling out sharp edges. Because highlights falling on a tangentially continuous edge are always continuous and thus look natural, this level of continuity can often be sufficient. Curvature continuity (G2) further requires the end vectors to be of the same length and rate of length change.
Highlights falling on a curvature-continuous edge do not display any change, causing the two surfaces to appear as one. This can be visually recognized as “perfectly smooth”. This level of continuity is very useful in the creation of models that require many bi-cubic patches composing one continuous surface.


Technical specifications
A NURBS curve is defined by its order, a set of weighted control points, and a knot vector. NURBS curves and surfaces are generalizations of both B-splines and Bézier curves and surfaces, the primary difference being the weighting of the control points which makes NURBS curves rational (non-rational B-splines are a special case of rational B-splines). Whereas NURBS curves evolve into only one parametric direction, usually called s or u, NURBS surfaces evolve into two parametric directions, called s and t or u and v.By evaluating a NURBS curve at various values of the parameter, the curve can be represented in cartesian two- or three-dimensional space. Likewise, by evaluating a NURBS surface at various values of the two parameters, the surface can be represented in cartesian space.NURBS curves and surfaces are useful for a number of reasons:They are invariant under affine as well as perspective[citation needed] transformations: operations like rotations and translations can be applied to NURBS curves and surfaces by applying them to their control points.
They offer one common mathematical form for both standard analytical shapes (e.g., conics) and free-form shapes. They provide the flexibility to design a large variety of shapes. They reduce the memory consumption when storing shapes (compared to simpler methods). They can be evaluated reasonably quickly by numerically stable and accurate algorithms. In the next sections, NURBS is discussed in one dimension (curves). It should be noted that all of it can be generalized to two or even more dimensions.


Manipulating NURBS objects
A number of transformations can be applied to a NURBS object. For instance, if some curve is defined using a certain degree and N control points, the same curve can be expressed using the same degree and N+1 control points. In the process a number of control points change position and a knot is inserted in the knot vector. These manipulations are used extensively during interactive design. When adding a control point, the shape of the curve should stay the same, forming the starting point for further adjustments. A number of these operations are discussed below.

1 comments:

Anonymous Sunday, August 21, 2011 4:15:00 PM  

Very informative article. Frank

Post a Comment

Silahkan Komentar tapi yang sopan ya :))

time is...

contact me on...

about me...

My photo
Cilacap - Solo, Jawa Tengah, Indonesia
Hobinya sih motret, tapi bukan fotografer, cuma tukang foto biasa. Hasil foto dari segala jenis kamera. Sekadar share tentang dunia fotografi, jurnalistik, tugas kuliah, dan cerita-cerita lainnya. Happy Blogging...