Updated: February 10, 2001
Tutorial by George
Polevoy
NURMS (Non Rational Mesh Smooth) or Subdivision Surface technique uses low-polygonal mesh to control the shape of the smooth surface.
This
tutorial demonstrates my favorite techniques for symmetric NURMS modeling and 3D
sketching, enough to build the model, similar to what you see in the first
pictures. I realize, that the model you
see at the pictures is not suited for very advanced animation, which could
require different topology and more refinement.
First, find any suitable reference for your model.Setting up the pictures as a view-port background is a common technique, but I prefer drawing sketch in 3D.
This is how your scene
will look at some stage.
Thin gray or dark blue
lines show the initial 3D sketch.
Red lines you see over the surface is kind of low polygonal model, which serves as NURMS control mesh. It is slightly different form typical low-poly in that it is not suited for visualization itself. It only can be used as rough model representation.
NURMS behaves much like
NURBS power 3 with that difference that NURMS can be of arbitrary topology
with no UVЦquadratic restriction.
Note
that control mesh vertices lay somewhat outside the actual surface, if the
surface is convex, and inside the surface if the surface is concave.
This surface behavior is
different form 3DSMAX Bezier Patch surfaces, in which surface must cross
each vertex.
Please see УAdditional information about the subdivision algorithmФ below.
Draw profile and front
view curves first.
These two curves can
stay С2DТ.
Draw as many curves in
3D as you need.
Choosing the correct
curves is the main thing at this time.
Created curves should
give you a sense of volume in perspective or user view-ports, not only
correct shapes in front and side view-ports.
Align curves, so the
curves that should intersect lay as close to each other as possible at the
СintersectionТ point.
Use mirror modifier or
the mirror tool to create symmetrical curves.
If you use mirror tool,
do not forget to turn СinstanceТ option on, so the symmetric object will
last symmetric after modifying original
object.
I recommend doing all
the modeling around the center of the world coordinate system.
Allow yourself as much
time as you can at this stage and create a perfect
shape.
This will save you a lot of time creating actual
geometry.
Create a Box object;
convert it to editable mesh.
Delete all the polygons
but one.
Use the transform
type-in to center your object along the symmetry
axis.
Enter sub-object mode,
select the polygon and move it to the side.
Mirror your object using Instance option.
It
is important to see the both symmetric sides while editing.
You can then edit either of the two objects and see the other side reflect the changes immediately.
Apply the Mesh Smooth
modifier.
Set Mesh Smooth type to
NURMS.
Apply To Whole Mesh
should be checked.
It is useful to set
Iterations value to something smaller then in Render Values to improve
interactivity while editing.
Turn the Show End Result radio button on while in Editable Mesh sub-object mode.
Select either of the
objects, enter edge sub-object mode. Select the side edge and shift-drag.
(Shift-dragging means that you keep a shift button pressed on the keyboard
while dragging something with the mouse.)
This is how you create
polygons by shift-dragging the edge
selection.
Select several boundary
edges.
Shift-and-Drag to Create
several polygons at once.
Delete a polygon. Select
a vertex.
Enter Weld Target mode
in Vertex sub object mode.
Drag the vertex over another. Release the mouse button.
Vertex should weld.
Element of mesh is a group of polygons that are connected by their adges or built on same vertices.
You can create elements
in your mesh by shift-cloning polygons.
Shift drag a polygon,
release the mouse and answer Clone To Element when
asked.
Now you are ready to
start modeling, using your 3D sketch as a guide.
Start with any part of the face.I am starting with the
lips.
To
make seamless connection between mirrored geometry, you can provide a
polygon stripe in the middle.Polygons in this stripe should always be
perpendicular to the plane of symmetry.Connection will be seamless even without final
welding sides together.If
you want to attach and weld the objects together when finished, you should
not do it with instances.To
attach the sides, do the following:Delete one side. Delete the Mesh Smooth modifier that
is applied over the Edit Mesh or the Editable Mesh in the stack. Mirror
with the СCopyТ option, not the СInstanceТ, then attach and weld with the
weld selected option.
Control mesh is not
treated as just triangles, but as polygons.
For example, each
quadratic polygon (quad) actually consists of two triangles in 3DSMAX.
There is one invisible edge in each quad.
NURMS makes sense of
topology.
Try to make build your
mesh of quadratic polygons if possible. Use other types of polygons with
care.
Here is an example of
СgoodТ topology.
Geometry of the control
mesh is the same, but topology is different.
Some edges made visible
in this example.
Generally, surface does
not have to pass through the control vertices, but you can achieve this by
placing three vertices to a line (vertices A, B, C on the picture). In
this case surface near these vertices will behave somewhat like a
Bezier spline, vertex A will serve as a knot, and B and C Ц as the Bezier
handles.
This behavior
appears on the boundary surface edges, to use this feature with other
vertices, you should line up all the 8 vertices around the СknotТ vertex
to a plane.
Surface will also intersect all Corner vertices (vertex D). Vertex B serves as a Bezier handle for knot D.
This feature of the subdivision algorithm can be very useful to get more precise control over the surface shape.
Please
refer to the 3DSMAX reference for more
information on particular techniques, such as mirroring objects with instance
option, using Weld Target and Weld Selected commands attaching mesh objects
and using Bezier splines to draw shapes.
In this tutorial, IСm not using Vertex Weight feature, and Smoothing Groups feature, which are the powerful NURMS techniques. I believe that the same results can be achieved without using these features. At the same time, not relying on these features can potentially make your NURMS mesh portable to other implementations of Subdivision Surfaces (SubDivs), such as PixarЩ, MayaЩ and LightWaveЩ implementations by means of exporting non-subdivided control-mesh as polygonal object.
I describe 3DSMAX interface features as for version 3.x, but in vesion 4 it did not change much. Also, version 4 adds Editable Poly, that is slightly different from Editable Mesh, and the HSDS modifier which supports hierarchical mesh refinement and can be used in alternative or together with MeshSmooth/NURMS described here.
Other
implementations of Subdivision Surfaces modeling frameworks may support
different features, such as hierarchical mesh refinement.Some of
the industry standard renderers such as Pixar Render Man support rendering of
Subdivision Surfaces on a level with NURBS.Some
3D game engines and Internet 3D viewers now support real-time Subdivision
Surfaces for scalable quality and download
optimization.
For those who interested in
Subdivision Surfaces, I recommend to take a look at Academy Award-winning short
film "Geri's Game" by Pixar.Keywords for those who
interested in Subfivision Surfaces algorithms: Doo-Sabin, Catmull-Clark andChaikinТs algorithm - which
can be pointed to as the first of these subdivision algorithms
That's all I knowabout NURMS business :)
Any comments and suggestions are welcome.
George
Polevoy