Introduction to NURBS Modeling

smallarrows.GIF

Creating Curves or Framework
Curves are spline line segments controlled by CVs.  Curves are the framework of shapes.  CVs (or control vertices) are the points which control and make up the line curve.  These lines are called NURBS (non-uniform rational b-splines).  NURBS are special because they form smooth curves between CVs.

Select the Modeling section of Maya.
modeling_module

Choose Create->Curve Tools->CV Curve Tool->option.jpg
Click on Curve Degree 3 Cubic for rounded curves, use 1 Linear for straight curves.
Click on Close

Click the mouse to input CVs in any view to create a curve. 4 points need to be input for Cubic.

Hit Enter button on the keyboard when you are finished.

Choose Curves->Open/Close Curves          (This will close an active curve.)


Custom Shelf
custom_shelf
Add tools you commonly use to the Custom Shelf.

PC: Hold down Shift + Ctrl keys while selecting a tool such as Create->Curve Tools->CV Curve Tool

Mac: Hold down Shift + Command keys while selecting a tool such as Create->Curve Tools->CV Curve Tool

Double click the icon to see the options for the tool.


Combining straight and rounded curves
curves.jpg
Select the Surfaces section of Maya, hit F4 button on the keyboard, or choose from upper left, status line.

To draw the example above:
Choose Create->Curve Tools->CV Curve Tool->option.jpg
Click on Curve Degree 3 Cubic to draw the rounded curve
Hit the Return button on the keyboard to finish the curve.

Choose Create->Curve Tools->CV Curve Tool->option.jpg
Click on Curve Degree 1 Linear to draw the straight curve
Hit the Return button on the keyboard to finish the curve.

Select both curves.

Use Curves->Attach->option.jpg Curve to join the two curves.
     Choose Attach Method Connect
     Uncheck Keep Originals
     Click Attach

Use Edit->Delete by Type->History     to delete the construction history. The history gets in the way of moving the curve.


Grid Snap Option
This option snaps CVs and object pivot points to nearest grid location while inputting or transforming. This is useful when precision is required. The Grid Snap button is located on the Status Line menu upper center. Keyboard shortcut: Hold down x while transforming an object or CV.   sgrid.jpg


Point Snap, Lock CVs to existing CVs.
This option snaps CVs and object pivot points to existing CVs or edit points.
Select the object to snap to.
Use Display->NURBS->CVs, this will make the CVs visible on active objects.
The Point Snap button is located on the Status Line menu upper center. 
Keyboard shortcut: Hold down v while transforming an object or CV    spointsnap.jpg


Curve Snap
Curve Snap allows you to move a objects, pivots or points along a curve.
The curve Snap is located on the Status Line menu upper center. Keyboard shortcut: hold down c while transforming an object or CV. scurvesnap.jpg


Add CVs to Existing Surface
This function allows you to input a row of CVs in-between existing isoparms on 3D surfaces.
Isoparms are the lines on the NURBS surface.

In object type  sobject.jpg mode, select the NURBS surface you would like to add a row of CVs to.

Move the mouse over the object, hold down the right mouse button to bring up the object menu, select Isoparm.  Click and drag on one of the existing isoparms with the left mouse button to copy it and move it over the surface of the object.  (Hold down shift to select more than one.)

Select Surfaces->Insert Isoparms. 


Detach
detach.jpg
This function allows you to cut a surface along an isoparm.
It also will break a curve at an edit point.

This tutorial might be easier in wireframe mode. Select a view, hit 4 to switch to wireframe.

In object type sobject.jpg mode, select the NURBS surface you would like to detach.

Move the mouse over the object, hold down the right mouse button to bring up the object menu, select isoparm, Click on one of the isoparms with the left mouse button to select it.

Select Surfaces->Detach


Invisible
This function allows you to make an active object invisible.  This will alleviate the data-base load because there will be fewer items to draw, this makes your screen update faster.

Select all objects to turn invisible.

Choose Display->Hide->Hide Selection          (The object(s) will disappear.)

To turn your object visible:
Choose Display->Show->All


Give a Curve a Planar Surface
planarsurf.jpg
Curves are framework, which means they have no surface. Use Planar to surface flat curves. The closed curves will trim out regions on a primitive plane to create the surface.

Draw some curves, place one inside of the other.
Use Curves->CV Curve Tool->option.jpg

Choose Curves->Open/Close Curves          (Close the active curves.)

Select all of the curves, choose Surfaces->Planar.


Curve to Polygon with Bevel Plus
This creates something similar to planar surface, the geometry is cleaner for polygons.
bevelplus_flat_poly
Choose Create->Curve Tools->CV Curve Tool->option.jpg
     Click on Curve Degree 3 Cubic for rounded curves, use 1 Linear for straight curves.
     Draw the outer curve counter clockwise.
     Hit Enter button on the keyboard when you are finished.

Choose Curves->Open/Close Curves  to close or use the first point is on top of the last point (use v point snap)

Add holes if you like, draw them clockwise.

Select the curve(s), outer curve first
Choose Surfaces->Bevel Plus ->option.jpg

Under Bevel tab:
     Create bevel: Check At start, uncheck At end
     Bevel width: 0
     Bevel depth: 0
     Extrude distance: 0
     Create cap: Check At start, uncheck At end

Under Output Options tab:
     Output geometry: Polygons
     Tessellation method: Sampling

Under Sampling Controls:
     Along extrusion: Section
     Samples: 1
     Along curve: Span
     Samples: For Linear curve degree, input 1, for Cubic curve degree, input 3 or more
Click Bevel

Select the model and run Edit Mesh->Merge->option.jpg  Make sure the threshold is very small.

Select the model and run Mesh->Cleanup...
     Select Lamina faces (faces sharing all edges)
     Select Edges with zero length
          This will get rid of all double surfaces.


Revolve
Rotation.jpg
Revolve will lathe a cross-section around the  X,Y, or Z axes, a certain number of degrees.

Input a profile curve in the front view up against the Y axis. (Later you may use any view.)

Select the curve.

Choose Surfaces->Revolve->option.jpg
Select Axis Preset Y
Select End Sweep Angle 360         (Number of degrees curve will sweep around.)
Select Segments 6                         (Number of times the curve will be placed during the sweep.)
Click on Revolve


Extruded Surfaces with a Curve Path
swept.jpg
This tool will sweep a curve along a path.

Draw a curve to be used as a cross-section.

Draw a path.

Orient the cross-section centered and perpendicular to the path, use translate and rotate.

Select the cross-section and then the path

Select Surfaces->Extrude->option.jpg
Choose Style   Tube
Choose Result Position    At Path
Choose Pivot   Closest End Point
Choose Orientation    Profile Normal
Choose Curve Range    Complete
Choose Output Geometry   NURBS

Try out the various options, compare the differences.


Extruded Surfaces with a Profile, using Distance
extrudedist.jpg
Draw a curve in the any view, for now use the front view.

Select the curve.

Select Surfaces->Extrude->option.jpg
Choose Style Distance
Input your  Extrude Length
Choose Direction Specify
Choose the Z Axis
Click Extrude


Duplicate Existing Curves
This function lets you make an exact duplicate of an isoparm from a surface. 
In object type sobject.jpg mode, select the NURBS surface you would like to duplicate a curve from.

Move the mouse over the object, hold down the right mouse button to bring up the object menu, select isoparm. Click on one of the isoparms to select it.

Use Curves->Duplicate Surface Curves to make a new curve from the active isoparm.


Connect Cross-sections with Loft
loft
In the front view draw two or more curve cross-sections. (This will work in any view.)

Place the cross-sections in different positions along the z axis. (This works with any axis.)

Hold down the Shift key and select all the curves or isoparms in order.

Use Surfaces->Loft          (This will connect the cross-sections.)


Any NURBS Tool can be used to create Polygons
poly_loft
Switch over to the Modeling section, choose from upper left, status line.
modeling_module
Draw a couple NURBS curves, Create->Curve Tools->CV Curve Tool
Select Surfaces->Loft->option.jpg  
     Choose Polygons
     Choose Quads

     Choose Tessellation method: General
     Change U type to: Per span # of iso params
     Change V type to: Per span # of iso params
     Input Number U: 3   (If this is too jaggy, increase)
     Input Number V:  1
     Hit Apply



Poly Mesh
poly.gif
A polygon mesh object is made of polygons. The illustration above indicates the 4 polygons that make up the cube. A polygon is a closed planer surface. The smoothness of an object depends on the number of polygons defined.

A list of data points for the polygon mesh above may appear as follows:
         List of vertices and their number.
          1) -1, 1, 0
          2) -1, 0, 0
          3) 0, 0, 0
          4) 0, 1, 0
          5) 0, 0, 1
          6) 0, 1, 1
          7) -1, 0, 0
          8) -1, 1, 0
          List of polygons and the vertices that construct them.
          1) 1, 2, 3, 4
          2) 1, 2, 7, 8
          3) 8, 7, 5, 6
          4) 5, 6, 4, 3


NURBS Surface
NURBS.gif
A NURBS surface is made of parametric cubic curves. In other words, edges are connected to form a continuous grid like surface.

A list of data points for a patch may appear as follows:
         List of vertices and their edge number.

 
 
 
 
 
 
 
 
 

1)

2)

3)

4)

 

-1, 0 0
-1, 1, 0
0, 0, -1
0, 1, -1
1, 0, 0
1, 1, 0
2, 0, -1
2, 1, -1

1
1
2
2
3
3
4
4
 

 






 






polyvsnurbs.jpg

Each point is connected by a straight line.

Many points are needed to make a smooth curve.

Points are connected by curved splines. A few points can define a smooth curve.

It is easy to create smooth curved surfaces.

Can adjust the subdivisions to make the surface more round.

Can be converted into a polygon mesh