ChinaVFX   

::::::  Curse of the NURBS  ::::::

by Chris Maraffi


"An open curve creates an open surface, while a closed curve creates a closed surface. A three-dimensional object is primarily created when the NURBS surface is closed in one or both of the UV directions."
Modeling with NURBS Surfaces

In both Softimage|XSI and Maya, the two main surface types available for modeling characters are polygon meshes and Non-Uniform Rational B-Spline (otherwise known as NURBS) surfaces*. High-resolution organic characters (see Figure 1) are often modeled using NURBS surfaces, because such characters have a few distinct advantages over similar polygon-based characters. To some people this may seem like a curse, because of the limitations imposed by NURBS surfaces. However, once you fully understand the properties of NURBS surfaces, creating characters will become much less painful, and maybe even enjoyable.

*Note: There are also subdivision surfaces in each software package, but for now these can be classified as a special subset of polygon meshes. I will discuss the advantages and disadvantages of subdivision surfaces in a future article.

Figure 1: Here is an example of a high-resolution NURBS gladiator character.

Strengths and Limitations of NURBS Surfaces

A NURBS surface consists of intersecting one-dimensional NURBS curves that create a two-dimensional surface with UV coordinates. The UV coordinates can be displayed as red and green perpendicular surface curves that define the start edges of the two directions on the surface. Open surface curves create an open surface while closed surface curves create a closed surface. A three-dimensional surface is created when the surface is closed in one or both of the UV directions. Closing one direction will create a cylinder, while closing both directions will create a torus (see Figure 4). A sphere is a cylinder with the open top and bottom edges, called poles, pinched to appear closed. You can create NURBS surfaces by choosing pre-made primitives, or by using commands such as Lofting, Revolve, or Extrude on curves.

One distinctive feature of NURBS surface curves is that the curve itself does not pass through the points or control vertices (CVs) that define the curve. Instead, the CVs are located off the curve on Hulls that can be displayed, and sometimes manipulated. The curve is affected by each CV through weighting, with a default value of 1. This creates a smoothly interpolated surface curve that is good for organic modeling, and requires less points than a similar polygon mesh. Increasing the weighting of a single point creates a more sharply defined edge on the curve. In Softimage|3D, you could interactively adjust the weighting of a single point on a curve or surface to harden an edge. In Softimage|XSI and Maya, however, this is done by adding additional surface curves to the same area of a surface.

"The difference between a NURBS surface and a polygon mesh is similar to the difference between vector and bitmap images

Because NURBS surfaces are interpolated from curves, their resolution can be changed interactively. The difference between a NURBS surface and a polygon mesh is similar to the difference between vector and bitmap images. A vector image is based on resolution independent curves, which is similar to how curves create a NURBS surface. A bitmap images resolution, however, is totally dependent on pixels-per-inch, in a similar way that a polygon meshs resolution is dependent on the amount of polygon faces (subdivisions). NURBS surfaces can be interactively set to low or high resolution for interface display, as well as set separately for rendering. Also, in some renderers, you can set the surface to change resolution based on proximity to the camera. This can be useful when rendering an object that moves close to the camera, so that you dont ever see linear subdivisions on the edges. Also, since NURBS can have a high resolution with a low number of CVs, fewer vertexes require point weight adjustments for skeletal deformations than an equally smooth polygon mesh.

One limitation caused by being based on curves is that NURBS surfaces always unwrap to some kind of rectangular grid. Unlike polygon meshes, you cannot add local detail or vary from the uniform UV structure. This quality requires that a complex branching model, such as an organic character with limbs, be made of many separate NURBS surfaces ( patches). Patches can only be combined into a single surface by connecting their open edges at the poles, to create a larger patch. To do this requires careful alignment of the open edges, and a similar isoparm orientation. Many places on an organic character will require, however, surfaces that branch out from a closed or internal part of the surface, which cannot be connected. If the branching surface is supposed to appear as being seamlessly connected to the base surface, then you must use methods for creating tangency between the two surfaces. You must also place the seam in an optimal place for skeletal deformations.

Lastly, some additional difficulties on manipulating NURBS surfaces are caused by their curve based structure. One is that you cannot add detail to a small section of a NURBS surface, but must add isoparms across the whole surface in U or V. This often results in isoparms being too dense in some areas, causing unwanted wrinkling and hardening of the surface. Also, the downside of having CVs on the hulls instead of the surface is that it is often confusing to model areas such as a mouth, where hulls often cross each other to define the lip structure (see Figure 2).

Figure 2: On a NURBS surface, vertices are located off the surface curves on hulls. Although this facilitates a smooth surface, it makes it difficult to manipulate points in complex areas where points overlap.

"...while building your characters, you will want to turn on visual representations of the placement of UV edges on your surfaces."

Tip #1: Preparing to Model with NURBS

When manipulating NURBS surfaces, you will want to vary the display resolution to maximize efficiency while working. In wireframe view, setting your surfaces to a low display resolution enables you to see the main surface curves that define the surface, and speeds up machine performance. You should occasionally switch to high resolution to check your work in shaded view, however. Also, while building your characters, you will want to turn on visual representations of the placement of UV edges on your surfaces. Occasionally you will need to manually move the edge of a closed surface to a location on the model where it will be the least noticeable. Lastly, you may need to add detail to a model by adding surface curves across the U or V of the surface.

Step 1: Setting Display and Render Resolution

Create a NURBS primitive, such as a sphere, and adjust the display resolution.

In Softimage|XSI: In the Model module, create a primitive sphere by choosing Get|Primitive|Surface|Sphere. Keep the default settings, and close the property page by pressing the Ctrl + ~ keys. Then to change the display resolution of the sphere, with the sphere still selected click the Selection button, and click the icon to the left of Geometry Approximation. When the Confirm Make Local property page appears, click Yes to make a local copy, and adjust the Surface U Step and Surface V Step sliders (see Figure 3). The lower you set the step setting, the less smooth the edges of the sphere will appear. A step of 1 in U and V creates a sphere with linear edges.

Keep in mind that this only changes the Hardware Display resolution, and not the rendering resolution. To change the rendering resolution, in the same property page click the Surface tab, and change the Parametric Step settings to 1. If you switch to the Render Module and do a Preview|All Layers, you will see a linear sphere. Set it up to 3 or 4 to render a smooth surface.

Figure 3: Set the display resolution in XSI by adjusting the UV Surface Step sliders in the Geometry Approximation property page.

In Maya: In the Model module, create a primitive sphere by choosing Create|NURBS Primitives|Sphere on the top menu bar. Then to change the spheres display resolution, choose Display|NURBS Smoothness|Rough, Medium, or Fine (Hotkeys = 1, 2, or 3). If you choose Hull [] (options), and set the Hull Simplification to 1 in U and V, the resulting sphere will have linear edges in wireframe and hardware shaded view.

To actually change the render resolution of the sphere, you must change the Degree setting in the INPUTS channel node from Cubic (smooth step of 3) to Linear (step of 1). This can also be changed in the makeNurbsSphere1 tab in the spheres attribute editor (see Figure 4).

Figure 4: Set the render resolution of a NURBS surface in Maya by changing between Cubic and Linear in the input nodes attributes.

Step 2: Displaying UV Edges

To clearly see where the UV edges are located on your surfaces, turn on the red and green UV edge highlights. You may also want to check the direction of the Normals after creating a surface, to determine if it will render correctly with backculling turned on.

In Softimage|XSI: To display the UV edges of all surfaces, choose View|Boundaries on the top menu bar. The red indicates the U start edge, and the green indicates the V start edge on each surface. Choose View|Normals to see which side is the "outside" of the surface, where the light is reflected perpendicularly from the surface. It is important to make sure the normals of each surface are pointing in a consistent manner in relation to the camera, so they render correctly if backculling is turned on. Notice that turning on view settings, such as boundaries and normals, affects all surfaces in your scene.

In Maya: To display the UV edges of a surface, choose Display|NURBS Components|Surface Origins on the top menu bar. The red indicates the U start edge, and the green indicates the V start edge (see Figure 5). To see the reflective "outside" direction of the surface, choose Display|NURBS Components|Normals (Shaded Mode). This is important for your object to render correctly if backculling is turned on. Also notice that turning on display origins and normals only affects the selected objects. You can also set surface origins to be displayed for all new objects by opening the NURBS category in the Preferences editor. Click the Preferences button in the lower right of the interface (next to the Autokey button), and click the NURBS category to bring up the global display settings. Click on Origins, and save the settings.

Figure 5: Turn on Surface Origins to display UV edges in Maya on several primitives. Notice that a cylinder is a grid that has one closed edge, while a sphere is a cylinder with the top and bottom edges pinched, but not closed. A torus is the only 3D object closed on both UV edges

"Adding detail to a surface requires that you add isoparms across the U or V of the surface."

Step 3: Moving an Edge on a Closed Surface

Often you may need to move a closed edge to a different place on your model. This is often necessary, so as not to project a curve over a closed UV edge.

In Softimage|XSI: To move the closed edge of a selected object, choose Modify|Surface|Shift UV on the left menu bar. If necessary, you may need to first change selection mode from Subsurface to V Knot Curve, and manually select the surface curve. Then open the shift property page and drag the Position slider to shift the selected edge to a different position on the surface (see Figure 6). If you specify an open edge, notice that an it will not shift.

In Maya: To move a closed edge, right click the object and choose Isoparm, and click on an surface curve where you want to move the edge. The isoparm should be highlighted in yellow. Then choose Edit Surfaces|Detach Surface []. Make sure Keep Original is NOT checked, and click Detach. If you do this on an open edge, the geometry will actually be cut in two.

Figure 6: Interactively shift the closed edge of a NURBS surface in Softimage|XSI by choosing Modify|Surface|Shift UV.

Step 4: Adding Detail to a Surface

Adding detail to a surface requires that you add isoparms across the U or V of the surface.

In Softimage|XSI: To add a surface curve in U or V, first change your Subsurface selection filter on the right menu bar to V or U Isoline, and use the left mouse button to click and drag on a U or V isoparm on the surface (see Figure 7-left). The isoparm should be highlighted in red. Then to insert the knot curve, choose Modify|Surface|Insert Knot Curve. If you need to adjust its location, use the Position slider. Close the property page. You can also remove a surface curve in a similar way by choosing Modify|Surface|Remove Knot.

In Maya: Add surface curves to the surface by right clicking the sphere and choose Isoparm. You can also turn on the Lines selection filter on the top shelf under Component Type (see Figure 7-right). Then left click on a U or V isoparm and drag to where you want to add the isoparm. You should see a dotted yellow line on the surface. Then choose Edit Surfaces|Insert Isoparms to add the surface curve. To remove an isoparm, simply select it in the same manner, and click the Delete key.

Figure 7: Adding a surface curve in one direction on a surface in Softimage|XSI requires you select the appropriate isoline selection filter, and click-drag to where you want to insert it (left). In Maya you can right click and choose Isoparm, or turn on the Lines component selection filter, and click-drag to where you want to insert the surface curve (right).

"You can place NURBS spheres like pieces of clay to rough out the main shape and contour of the body part you are creating."

Creating NURBS Surfaces from Curves

Aside from creating and manipulating NURBS primitives to use for your characters body parts, you can also create surfaces from NURBS curves. Using extruding, revolving, and lofting commands on a closed or open curve enables you to create a variety of surfaces. Although these and other commands are useful, the single most useful method for organic characters is lofting. Lofting a set of curves that represent all the surface curves in one direction on the surface gives you a history connection to each part of the resulting surface. This lets you adjust the curves to refine the entire surface in a more detailed manner than any other method. When lofting a NURBS surface for an organic character, normally you should create it as a uniform Cubic NURBS surface. This will give you the most even spacing of points on the surface, which will be predictable for manipulating and texturing. Later, you may need to change these settings, called reparameterizing, if you are required to add isoparms in an uneven manner to define your surface. Changing to a Chord length setting will texture better under these conditions.

Tip#2: Lofting a NURBS Torso from Primitive Spheres

When creating organic characters, it is often useful to rough out shapes using simple primitives. Although there are many NURBS primitives available in each program, the most useful for roughing out an organic shape is a NURBS sphere. You can place NURBS spheres like pieces of clay to rough out the main shape and contour of the body part you are creating. The spheres can represent bulges produced by muscles and bones. You can place a lattice on several of the spheres to deform them together. Once the body part is defined with spheres, you convert them to a single polygon mesh object, and use this as a guide for creating a NURBS surface. This technique is useful for creating NURBS individual body parts, such as arms, legs, torsos, and fingers. In the following example, you will see how to create a muscular NURBS torso (see Figure 8).

Figure 8: Here is an example of a single-surface NURBS torso that was created by roughing out the muscle placement with spheres, to create a polygon guide object.

Step 1: Place Image Scans as Guides

When creating a character, you will want to use drawings from your Model Sheet as guides. This should include a front, side, and possibly back view of your character in the default pose. Scan each image into the computer, saving as a bitmap or jpeg. Then import the files into Softimage or Maya, and open them as guides in the front and side views.

In Softimage|XSI: To use a drawing as a modeling guide in the front view, click on Wireframe on the views top bar, and choose Rotoscope. Before you can load an image file, you must first import the image using a Browser view. Click on View|Views|Browser on the top menu bar, and locate an image file. Drag the image into an empty area of any view with the left mouse button. Close the browser, and in the FrontCamera rotoscope property page, click New|New From Source and load your image. Right click on the image to crop it by choosing Crop Tool (see Figure 9-left). Close the property page, and press the Z key and middle mouse button in the front view. Notice that the image is not locked to the view. To lock the image to the view, press the Shift + Z keys, and drag a selection box around the image. You can then pan and zoom around the view to see parts of the image. To unlock the rotoscope view, click the magnifying glass icon on the views top bar.

In Maya: To use a drawing as a guide for modeling, create an image plane in the front view by choosing View|Camera Attribute Editor­ on the views menu bar. Open the Environment section, and click the Create button next to Image Plane. In the attribute editor, load an image file by clicking the folder next to the Image Name field (see Figure 9-right). Open the Placement Extras section to adjust the image placement in the view. To crop the image, reduce the Coverage in X and Y, and slide the image around by adjusting the Coverage Origin in X and Y. Lastly, move the image plane back slightly in Z by typing in C5 in the third Center field. This should move the plane 5 units back in Z. Delete an image plane by selecting its node in the Hypergraph (turn on Upstream and Downstream Connections).

Figure 9: In Softimage|XSI crop an image to be used as a modeling guide in the rotoscope property page by right clicking it and choosing Crop Tool (left). In Maya, create an image plane as a modeling guide in the view cameras Environment attribute, and adjust Placement Extras for cropping.

"To make a single guide object out of all your spheres, you must first convert them to polygons, and then make them into a single polygon mesh. "

Step 2: Rough out the Body Part With NURBS Spheres

Create muscle and bone detail for your torso by placing and manipulating individual NURBS spheres. It is not necessary to be concerned about surface curve placement, because all the spheres will be converted to polygons. Concentrate on achieving correct proportions, and clear surface details.

In Softimage|XSI: In the Model module, choose Get|Primitive|Surface|Sphere. Set the number of subdivisions as needed, and close the property page. Manipulate individual spheres in Object and Point mode. You can also hold down the M key to move individual CVs. Manipulate several spheres at a time by shift selecting them, and choose Get|Primitive|Lattice (see Figure 10-left). You can even make a lattice around selected CVs in Point mode for detailed adjustments. In the lattice property page, use Curve interpolation, and set the Subdivisions to set the resolution of the lattice. Use low numbers for overall shaping, and high numbers for fine detail. When finished with the lattice, you must bake the deformations on the spheres by shift selecting them and click the Freeze button on the bottom of the right menu bar. Then you can select and delete the lattice.

In Maya: In the Model module, choose Create|NURBS Primitives|Sphere[].Set the number of Sections as needed, and close the options box. Manipulate individual spheres in Object and Component mode (use F8 hotkey). Manipulate several spheres at a time by using a lattice. To do this, shift select the spheres, and in the Animation module, choose Deform|Create Lattice [] (see Figure 10-right). You can also make a lattice around selected CVs in Component mode for detailed adjustments. Set the resolution of the lattice by setting the number of Divisions. Use low numbers for overall shaping, and high numbers for fine detail. When finished using the lattice, you must bake the deformations by shift selecting the spheres and choose Edit|Delete by Type|History. This will automatically delete the lattice as well.

Figure 10: To manipulate several spheres together create a lattice around them in Softimage|XSI (left), and Maya (right).

Step 3: Convert Spheres to a Single Polygon Object

To make a single guide object out of all your spheres, you must first convert them to polygons, and then make them into a single polygon mesh.

In Softimage|XSI: To convert your NURBS spheres to polygons, drag a selection box around all the spheres, and choose Create|Poly.Mesh|Nurbs To Mesh on the left menu bar. In the resulting property page, set the UV steps to 3, and close the page. With the polygon spheres still selected, choose Create|Poly.Mesh|Merge (see Figure 11-left). Close the property page, and delete the old polygon spheres in an Explorer view. Lastly, hide all the original NURBS spheres by shift selecting them, and then press the h key. You should have remaining only a single polygon guide object that resembles your multi-surface torso.

In Maya: To convert your NURBS spheres to polygons, drag a selection box around all the spheres, and choose Polygons|NURBS to Polygons [] on the top menu bar. In the options box, choose Quads and Standard Fit, then Apply. With all the new polygon spheres selected, choose Polygons|Combine to create a single polygon guide object (see Figure 11-right). Lastly, choose Edit|Delete by Type|History, which deletes all the polygon spheres except the single guide object. Hide the original NURBS spheres by shift selecting them, and press Ctrl h.

Figure 11: Convert all the spheres into polygons, and make them into one guide-object, by merging them in Softimage|XSI (left), and combining them in Maya (right).

"When modeling the various body parts of your character, keep in mind that the surfaces must not only look good when rendered, but must also deform well when animated. 

Step 4: Use the Polygon Guide to Create a Single NURBS Surface

Once you have a single polygon guide object, you can use it to create a single NURBS surface.

In Softimage|XSI: To create a single NURBS torso using the polygon guide-object, you should use Shrinkwrap. To do this, create a NURBS sphere with a pretty high number of subdivisions, such as 20 in both U and V. Then scale the sphere so it completely surrounds the polygon object. Make sure the poles of the NURBS sphere are oriented at the top and bottom of the torso, and completely outside of the polygon mesh. This object is called the Outer Wrapper. Then duplicate the NURBS sphere and scale it so it is completely inside the polygon guide object. This second NURBS sphere is called the Inner Wrapper. To do a shrinkwrap, select the outer wrapper and choose Modify|Deform|Shrinkwrap. Pick the polygon guide object, and then pick the inner wrapper, which opens the shrinkwrap property page. Make sure Toward Inner Object is checked. An amplitude of 1 is as close to the surface of the guide object as possible. Adjust if necessary, and close the property page. The trick to doing a good shrinkwrap is the orientation and resolution of your wrapper objects. They must have enough surface curves in the right places to define the detail on your polygon guide-object.

*Note: An alternative to using shrinkwrap is to use snap to surface to draw curves on the surface, and loft the curves to create the torso. Since Maya does not have a similar command to shrinkwrap, you will use the snapping to surface method (called Make Live) to create a torso from a polygon guide object.

In Maya: To create a NURBS torso using the polygon guide object, select the polygon and choose Modify|Make Live on the top menu bar, which allows you to draw a curve so the points snap to the "live" surface. Then choose the Create|EP Curve Tool and use the perspective and orthographic views to draw a curve across the polygon surface. Draw from the top of the torso to the bottom, placing points for each indention and surface change. Click Enter when finished. Duplicate the curve and rotate and translate the copy so it is next to the previous curve. Click F8 to go into component mode, and select and move each point so it snaps to the live surface. Continue in this way around the entire torso. Once you have curves for half the torso, shift select each curve in order and choose Surfaces|Loft [] on the top menu bar. In most cases you will want to create a uniform, cubic NURBS surface, and click Apply.

Figure 12: Create a NURBS surface using the polygon guide-object by using shrinkwrap in Softimage|XSI (left), and snapping curves to the guide-object and lofting by using Make Live in Maya (right).

Animation Considerations

When modeling the various body parts of your character, keep in mind that the surfaces must not only look good when rendered, but must also deform well when animated. This involves making sure that the areas where deformations will occur, such as joints on limbs, have enough surface curves crossing perpendicular to the joint. Special consideration should be given to place the surface curves so they cross the deformation area in a logical manner, and are not stretched too much. This can be seen in the way to model a foot so it bends well when stepping (see Figure 13). A well-made foot has surface curves that cross perpendicular to the main deformation areas at the ankle and ball of the foot. A less well-made foot may look good when static, but will not bend as well in the deformation areas because of the orientation of the surface curves.

Figure 13: Here you can see two examples of a foot. The foot on the left has good surface curve placement for bending at the ankle and ball of the foot, while the one on the right may look good when static, but wont animate as well due to the surface curve placement

"It is better to place seams off the joints, and in the middle of bones, so that the points on the surfaces on each side of the seam are weighted to a single bone. "

Another animation consideration is that seams between surfaces should not be placed directly on deforming joints. When skeletons are applied to the surfaces, parts of a seam placed on a joint will be assigned weighting to bones on each side of the joint. This may cause the seam to come apart when the bones deform the surfaces. It is better to place seams off the joints, and in the middle of bones, so that the points on the surfaces on each side of the seam are weighted to a single bone. If you build your character with this in mind, then you will have much less work manually adjusting point weighting after skinning (see Figure 14). Also keep in mind that wherever you place seams, you will need to make them as transparent as possible by integrating them into your characters design. Do this by making the seams contour distinct surface changes, like natural indentions created from bones or muscles. Another way of integrating seams would be to place them where there are distinct material or textural changes on your character, such as an area that changes from fur to skin.

Figure 16: When designing a character as a NURBS model, try to place seams between surfaces so they will cross the joints. Notice how this characters seams are placed slightly off the joints.

Connecting Surfaces

There are three types of connections you may encounter when creating a character using multiple NURBS surfaces. If two open edges line up perfectly, you can connect them into one object. An example of this would be to connect the top pole of a torso to the bottom pole of a neck. To do this requires that the two surfaces have similar subdivisions in the direction of the open edges, and that the closed seams line up.

With some connections, however, the open edges should not be merged. If the two surfaces have radically different number of surface curves, due to more detail needed on one of the surfaces, then it is best to leave them separate pieces. Also, when one surface appears open but is really closed, because the edge needs to be separated for some reason, then it cannot be connected to a similar surface that is closed in the same direction. Lastly, you may want to connect an open edge of a surface to the internal closed part of another surface, which is not possible. An example of this is connecting two arms to a torso that has the open poles on the top and bottom (see Figure 15). Since a NURBS surface must be continuous, there is no way to combine an open surface to a closed surface. They must remain separate surfaces that only appear to be one piece. Even if you trim a hole in the surface, the two surfaces cannot be combined. The reason for this is that a trim is purely visual, and does not change the UV structure of the trimmed surface. It simply creates a curve on surface that can be used for lofting a seamless appearing branch.

Figure: 15: Here is an example of lofting arms from a closed NURBS torso. This requires that the arms be separate surfaces.

"Once you have a curve on surface, loft across the curves, and fix twisting on the surface by adjusting the source curves using history.  "

Tip #3: Connecting Surfaces to Your Torso

Create an arm in the same way you created a torso, with the open pole at the shoulder. To make this arm appear to connect to your torso, you must project a curve on surface, and loft to the shoulder curve. Often it is best to duplicate all the surface curves across the length of the arm, and loft the entire arm directly off the torso. This creates only two separate surfaces, rather than three. To create a seamless appearing connection, try to make your projected curve large enough to create a surface curve on a large area of the torso. By making the arm surface start on the chest, instead of on the shoulder, you can sometimes achieve better tangency with the torso. You also want to make sure the seam between surfaces does not sit directly on the shoulder joint, which could pull them apart when the arm animates.

Step 1: Copy the Curves that Define the Arm

Duplicate the surface curves of your arm to loft from the torso across the whole arm.

In Softimage|XSI: To duplicate surface curves on your arm, select the arm surface and change the selection filter from Subsurface to V Knot Curve (see Figure 16-left). Your object will turn yellow, and if you left mouse click on a surface curve, it will be highlighted in red. Hold the Shift key down and drag selection box across the entire arm, from shoulder to wrist. Once all the surface curves are highlighted, choose Create|Curve|Extract from Surface on the left menu bar. New curves will be created that contour the entire arm.

In Maya: To duplicate surface curves across the length of your arm, select the arm surface, and right click to choose Isoparm as your selection component. Then hold the Shift key down while clicking on each isoparm from shoulder to wrist. The surface curves should be highlighted in yellow. Then choose Edit Curves|Duplicate Surface Curves to create new curves that contour the entire arm (see Figure 16-right). If you know you are going to do all the curves in U or V, then you can open the options box for Duplicate Surface Curves, and copy check one direction and apply it.

Figure: 16: Duplicate surface curves on your arm by selecting isolines in XSI (left), and isoparms in Maya (right).

Step 2: Place Curve on Surface of Torso, and Loft Curves

To loft your arm from your torso, you must first place a curve on your torso. Once you have a curve on surface, loft across the curves, and fix twisting on the surface by adjusting the source curves using history. Keep in mind that it is best not to create a new surface curve over a closed edge or pole, so you will want to shift the vertical seam on your torso so that it runs down the middle of the back. This will insure that you dont shrinkwrap or project a curve over the seam, which will cut the surface curve in half.

In Softimage|XSI: To create a curve on surface, you can use the Shrink Wrap, Intersect, or Snap to Surface commands. Shrink Wrapping a curve is the same as shrink Wrapping a surface. This time shrinkwrap a closed curve on to the torso by projecting it parallel to the X axis. Do this by duplicating one of the curves extracted from the arm, and move it to the right of the torso. Then choose Transform|Move Center to Vertices to easily scale and manipulate the points of the curve to line it up with the torso. Lastly, choose Modify|Deform|Shrink Wrap, and click on the wrapper curve, and the target torso. Right click to open the Shrink Wrap property page, and turn on Parallel to Axes and Along X. It may also be necessary to turn on Reverse to get a good projection. Once the curve is on surface, you can translate it across the surface, while still keeping tangency.

"Sometimes when you loft curves with differing numbers of CVs, it produces extra surface curves that are not needed to define the surface. To make your surfaces more efficient, you must clean up the surface... "

Another way to create a curve on surface is to get a primitive NURBS sphere or cylinder, and place it so it intersects the torso where you want the arm to be attached. Then to create the curve, select the torso and choose Create|Curve|Intersect Surfaces on the left menu bar. Pick the intersecting surface, and transform it to adjust the placement of the new surface curve.

One other method for creating a curve on surface is to draw one with Snap to Surface turned on. Do this by clicking the On and surface buttons under the Snap menu on the right menu bar, choose Create|Curve|Draw CV NURBS, and draw a circular curve on the surface. Close the curve by choosing Modify|Curve|Open/Close. Before you use this method, however, you should check the arm curves that you will be lofting to, to see how many points are on the curve, where the curve starts, and which direction it is going. You want your curve on surface to have the same properties as the arm curves, so you avoid a twisted surface after lofting. If necessary, you can adjust some of these properties after lofting, using history, by choosing Modify|Curve|Inverse and Shift U.

When your curve on surface is placed well, loft all the curves to create the limb. Do this by selecting the surface curve, choose Create|Surface|Loft, and click on each arm curve in order from shoulder to wrist. Right click to open the Loft properties page, and adjust properties if necessary (you may need to reduce the U or V Subdivisions). Also, if twisting is occurring between the surface curve and the arm curves, then adjust the curve or object that was originally placed on surface using history.

In Maya: To create a curve on surface, you can use Project Curve on Surface, Intersect, or Make Live. To project a curve on to your torso, create a circle with similar point structure to the arm curves you will be lofting to. An easy way to do this would be to copy one of the arm curves, and manipulate the copy so it can be projected. If the center is not in the middle of the curve, choose Modify|Center Pivot. Then translate and scale the curve in object and component mode to make it cover the area you want to project on. When positioned correctly, select the torso, and shift select the curve. Choose Edit Surfaces|Project Curve on Surface [] to open the project options box. Choosing Active View usually produces the most predictable results. For an arm, make sure you middle click the side view to activate it for projection. Local tolerance allows you to adjust the accuracy of the projection, rather than using the global tolerance in the preferences editor. Using Partial Curve Range creates minimum and maximum channels that can be adjusted to open the curve on surface, but this is not really needed for lofting an arm.

Another way for creating a curve on surface is to create a NURBS sphere or cylinder, and place it so it intersects with your torso. Select the torso and then shift select the intersecting object, and choose Edit Surfaces|Intersect Surfaces [] on the top menu bar. Make sure First Surface and Curve on Surface is turned on, and click Apply. Use history to adjust the curve on surface by manipulating the intersecting object.

Lastly, you can select the torso and turn on Make Live to draw a curve on surface. If you use this method, make sure you check the attributes of the arm curves, so that you draw a surface curve that has a similar point structure.

When your curve on surface is placed well, loft all the curves to create the limb. Do this by selecting the surface curve, and then shift select each arm curve in order from shoulder to wrist. Choose Surfaces|Loft [] to open the options box, and make sure you are creating a uniform cubic NURBS surface. Also, if twisting is occurring between the surface curve and the arm curves, then adjust the curve or object that was originally placed on surface using history.

Figure: 17: Snapping to surface in Softimage|XSI (left) is similar to Make Live in Maya, while projecting a curve on surface in Maya (right) is similar to shrink wrapping a curve parallel to an axes in Softimage|XSI.

Step 3: Delete History, and Clean Up the Surface

Once your arm has good tangency with your torso, you will want to rebuild it if there are any unusual distribution of surface curves. Sometimes when you loft curves with differing numbers of CVs, it produces extra surface curves that are not needed to define the surface. To make your surfaces more efficient, you must clean up the surface by reducing and re-distributing the surface curves. Before you do this, however, make sure you delete the history connection between your lofted limb and its source curves.

In Softimage|XSI: Delete the history on your lofted arm by clicking the Freeze button in the Edit section of the right menu bar. Then to remove excess surface curves, choose Modify|Surface|Clean, and adjust the tolerance levels as desired. A larger number reduces the number of isoparms in U or V. Then, if you want to distribute the surface curves in a more even manner, you can choose Modify|Surface|Reparameterize (see Figure 18-left). Uniform is the most even distribution of surface curves. If this changes the structure of your surface too much, then add isolines selectively by choosing Modify|Surface|Insert Knot Curve.

NEXT

ллλһֱĹĺͰ­ṩѧǣԱܹͬ.

            Softman@Chinaxsi.com    Oicq:20056194      Icq:51554328

[ tutoralis ]  [ shaders ]  [ scripts ]  [ oups upload ]  [ links ]


ChinaXSI BBS

  

Tutoralis

  

Shaders

  

Scripts

  

Oups Upload

  

Links

  

2001 Shock3D Animtion Studio| mornnet | softman |

计数器