Maya Unlimited
Advanced Modeling
In this lesson you will learn how to create shapes using NURBS Booleans.
A NURBS Boolean operation treats two or more surfaces like solids then performs an intersection and trim on the participating surfaces.
When working with Booleans, the three main operations are Subtract which removes one surface volume from another, Intersect that creates a new shape where the two volumes share the same space and Union which adds the two shapes into a larger volume.
Booleans have history and can be switched from Subtract to Intersect to Union. You can also update history by repositioning the original surfaces used to generate the Boolean.
To effectively use Booleans, you will also explore how the surface's normals affects the results of the Boolean.
STEP ONE
Create a NURBS Sphere and a NURBS Cylinder.
Place the two shapes so that they are intersecting.
STEP TWO
Select Edit Surfaces > Booleans > Subtract Tool.
Click on the sphere then press the Enter key to select it as the first object.
Click on the cylinder then press the Enter key to select it as the second object. The shapes are subtracted and the sphere now has the cylinder removed from its surface.
Note: If you added color in Step One to the two parts, you will notice that the color disappears. In fact the Boolean operation has produced two new surfaces that will need to have shaders reapplied. In some cases more than two new surfaces may be produced.
STEP THREE
The Boolean does use history which can be updated. The first method for updating history is to choose another Boolean operation from the Channel box.
Click on the Boolean input node in the Channel box. Set Operation to Intersect.
Now the resulting shape shows the volume that is shared by the cylinder and the sphere.
STEP FOUR
Select one of the Boolean surfaces then click on the Boolean input node in the Channel Box.
In the Hypergraph, select the hidden NURBS sphere node. Move the sphere to update the history on the shape. You can even animate these hidden shape nodes although they will slow down interactive feedback when you playback the scene.
STEP FIVE
Another issue that affects how Booleans operate is the surface's normals. By using a plane, you can see how Maya treats any surface as if it is a volume when performing Booleans.
Start a new scene.
Create a NURBS Primitive Plane. Go into component mode and pull the middle two rows of CVs up to add curvature to the surface.
STEP SIX
Create a NURBS sphere that intersects the plane.
Duplicate both the sphere and the plane and move them to the side.
Select both of the plane surfaces and select Display > NURBS Components > Normals. Be sure that you are in shaded mode. Lines protrude out from the surface to indicate the surface's normal direction.
Select one of the surfaces and select Edit Surfaces > Reverse Surface Direction. Now this surface's normals are going in the opposite direction.
STEP EIGHT
Select Edit Surfaces > Booleans > Subtract Tool.
Click on one of the spheres then press the Enter key to select it as the first object.
Click on the corresponding plane to select it as the second object. The shapes are subtracted and the sphere now has the cylinder removed from its surface.
Repeat these steps for the other sphere/plane combination.
You will notice that in the results are the opposite. This is because the side of the surface that shows the normals is seen as the "outside" of the surface volume while the opposite side is the "inside". Therefore the "inside" of the surface volume is subtracted from the sphere in both cases.
CONCLUSION
Booleans are a great tool for quickly bringing together NURBS shapes into a series of trimmed surfaces. Make sure that trims are what you need for your model since they can break apart if the surfaces are deformed.
I hope this helps someone out. I know it helped me clear alot of things up in this area. Til my next post, I bid you good day.
You may not post new threads |
You may not post replies |
You may not post attachments |
You may not edit your posts |
BB code is On |
Smilies are On |
[IMG] code is On |
HTML code is Off