A Boolean object combines two other objects by performing a Boolean operation on them.
Operand A (left); Operand B (right)
These are the Boolean operations for geometry:
The Boolean object contains the volume of one original object with the intersecting volume removed.
The two original objects are designated operands A and B.
You can layer Booleans in the stack display, so that a single object can incorporate many Booleans. By navigating through the stack display, it's possible to revisit the components of each Boolean and make changes to them.
Subtraction: A-B (above); B-A (below)
Union (above); Intersection (below)
Booleans with Objects That Have Materials Assigned to Them
Most primitives use several material IDs on their surfaces. For example, a box uses material IDs 1–6 on its sides. If you assign a Multi/Sub-Object material with six sub-materials, 3ds Max automatically assigns one to each side. If you assign a Multi/Sub-Object material with two sub-materials, 3ds Max assigns the first material to sides 1, 3, and 5, and the second to sides 2, 4, and 6.
When you create a Boolean from objects that have materials assigned to them, 3ds Max combines the materials in the following way:
For more information, see Material Attach Options Dialog.
Solutions When Working with Booleans
The Boolean algorithm caused unpredictable behavior in earlier releases. The solutions are discussed here.
Boolean requires that operands' surface topology be intact: This means no missing or overlapping faces and no unwelded vertices. The surface should be one continuous closed surface.
The Boolean corrects operands that fail to meet this requirement. However, the automatic correction may not be exactly what you want, so in some cases it might be safer to correct the surfaces manually.
To check for holes in the geometry, use the STL-Check modifier or the Measure utility.
To fill holes, use the Cap Holes modifier.
Booleans require that the face normals of the surface be consistent. Flipped normals can produce unexpected results. Surfaces where some faces are facing one way and adjacent faces are flipped are also problematic, and are commonly found in geometry imported from CAD programs. The Boolean fixes these faces as best it can. Again, it might make more sense to correct these manually.
Use shaded viewports to look for normal problems, watching for objects that appear inside-out or look otherwise incorrect. You can also turn on Show in the Editable Mesh (Face) Surface Properties rollout Normals group. Fix normals here, or with a Normal modifier.
Because Boolean operations depend on a clear understanding of what is inside and what is outside a mesh, meshes that overlap themselves can produce invalid results. For instance, if you use the Collapse utility with two overlapping objects without turning on the Boolean feature, the resulting object will not make a good Boolean operand. This is also a problem for the Teapot primitive (with all parts turned on), which overlaps itself.
If you need to use such an object as a Boolean operand, you might reconstruct it as a single non-overlapping mesh by separating the components and combining them with Boolean.
Boolean doesn't always produce the ideal result on "inverted meshes" (meshes that have been turned inside-out by having their normals flipped). The problem is that the area inside the flipped mesh is correctly seen as "outside," but the area outside it may also be seen as “outside.” To remedy this, instead of inverting the mesh, make a very large box or other primitive centered on (but not touching) the mesh and subtract the mesh from it using Boolean. Then convert it to an editable mesh, and delete the box faces. This produces a correctly inverted mesh that works correctly with Boolean.
If two Boolean operands are perfectly aligned without actually intersecting, the Boolean operation might produce the wrong result. Although this is rare, if it does occur, you can eliminate it by making the operands overlap slightly.
Relative Complexity Between Operands
Boolean works best when the two operands are of similar complexity. If you wish to subtract text (a complex object made of many faces and vertices) from a box without any segments, the result is many long, skinny faces that are prone to rendering errors. Increasing the number of box segments produces better results. Try to maintain a similar complexity between operands.
Previously, Boolean required that objects overlap. If two objects did not overlap but merely touched an edge to an edge, or a face to a face, the Boolean would fail.
Boolean allows for non-overlapping objects. Coincident faces/edges and vertices are no longer a problem. You can use objects completely encased within another object, where no edges intersect, to create Booleans.
See also Collapse Utility to create Booleans with multiple objects.
The operand objects remain as sub-objects of the Boolean object. By modifying the creation parameters of the Boolean's operand sub-objects, you can later change operand geometry in order to change or animate the Boolean result.
Example: To create and modify a single object that contains multiple Booleans:
Suppose you want to create a box with two holes in it. One hole is to be cut by a sphere, and the second by a cylinder. If you want to make changes to the sphere or the cylinder later, you can do so by following these steps:
If you want to animate the Cylinder or the Cylinder’s parameters you can now access them in the modifier stack display.
You can also navigate multiple Booleans through Track View. Clicking the operand in Track View gives you direct access to its entry in the modifier stack display. In complex objects with many Booleans, this is an easier method than the one outlined above.
When you select operand B, you designate it as a Reference, Move (the object itself), Copy, or Instance, according to your choice in the Pick Boolean rollout for Boolean objects. Base your selection on how you want to use the scene geometry after you create the Boolean.
Because you usually create Boolean objects from overlapping objects, if the B object isn't removed (if you don't use the default Move option), it often obstructs your view of the completed Boolean. You can move the Boolean or the B object to better see the result.
Lets you specify how operand B is transferred to the Boolean object. It can be transferred either as a reference, a copy, an instance, or moved.
Object B geometry becomes part of the Boolean object regardless of which copy method you use.
Lets you specify how the operand is extracted: as either an instance or a copy.
Cuts operand A with operand B, but doesn't add anything to the mesh from operand B. This works like the Slice modifier, but instead of using a planar gizmo, Cut uses the shape of operand B as the cutting plane. Cut treats the geometry of the Boolean object as volumes rather than closed solids. Cut does not add geometry from operand B to operand A. Operand B intersections define cut areas for altering geometry in operand A.
Visualizing the result of a Boolean can be tricky, especially if you want to modify or animate it. The Display options on the Boolean Parameters rollout help you visualize how the Boolean is constructed.
The display controls have no effect until you've created the Boolean.
Operand geometry remains part of the compound Boolean object, although it isn't visible or renderable. The operand geometry is displayed as wireframes in all viewports.
Displaying the operands
Displaying the result (A-B)
Displaying the hidden operand after A-B
Displaying the hidden operand after B-A
By default, Booleans are updated whenever you change the operands. A scene that contains one or more complicated, animated Booleans can impede performance. The update options provide alternate methods to improve performance.
When you use Boolean operations with objects that have been assigned different materials, 3ds Max displays the Material Attach Options dialog. This dialog offers five methods for handling the materials and the material IDs in the resultant Boolean object.