ProBoolean Compound Object

A Boolean object combines two or more other objects by performing a Boolean operation or operations on them. ProBoolean offers a range of functionality such as the ability to combine multiple objects at once, each using a different Boolean operation.

ProBoolean can also automatically subdivide the Boolean result into quadrilateral faces, which lends itself well to smoothing edges with MeshSmooth and TurboSmooth.

Materials, Textures, Vertex Colors

ProBoolean and ProCutter transfer texture coordinates, vertex colors, optionally materials, and maps from the operands to the final results. You can choose to apply the operand material to the resulting faces, or you can retain the original material. If one of the original operands had material maps or vertex colors, the resulting faces derived from that operand maintain those graphical attributes. However, when texture coordinates or vertex colors are present, it is impossible to remove coplanar faces, so the resulting mesh quality will be lower. We suggest that you apply textures after the ProBoolean operations.

ProBoolean provides two options for applying materials, available in the Apply Material group on the Parameters rollout (see above illustration). The default method is Apply Operand Material, which applies the operand material to the resulting faces. The alternative, Retain Original Material, causes the resulting faces to use the material of the first selected object in the Boolean operation.

The following illustration shows the difference between the two methods. The Boolean operation starts with a red box and a blue sphere, on the left. The box is used as the base object and the sphere is the subtracted operand. Using the default Apply Operand Material option gives the result shown in the center of the illustration. Choosing Retain Original Material yields the result shown on the right side of the illustration.

Left: Original operands

Middle: Apply Operand Material active

Right: Retain Original material active

Supported Boolean Operations

ProBoolean supports Union, Intersection, Subtraction, Merge, Attach, and Insert. The first three operations work similarly to their counterparts in the standard Boolean compound object. The Merge operation intersects and combines two meshes without removing any of the original polygons. This can be useful for cases in which you need to selectively remove parts of the mesh.

The Attach operation combines multiple objects into one without affecting their topology; they remain essentially separate elements of the compound object. And the Insert operation subtracts the bounding shape of operand A from operand B, and then replaces the cut-out part with operand A.

Also supported are two variants of the Boolean operations: Imprint and Cookie Cutter. The Imprint option inserts (imprints) the intersection edges between the operands and the original mesh without removing or adding faces. Imprint only splits faces and adds new edges to the mesh of the base object (original selected object). Cookie Cutter performs the specified Boolean operation but does not add the faces from the operands into the original mesh. It can be used to cut a hole in a mesh or to get the portion of a mesh inside of another object.

Editing the Boolean Object

When you access a ProBoolean or ProCutter object from the Modify panel, you can add operands to the existing set. You can also remove and transform (move, rotate, or scale) operands.

Polygon Reduction

ProBoolean and ProCutter have a built-in decimation function. Typically, decimation is of better quality if it is integrated with the Boolean operations. The reason for this is that the Boolean object contains meta-information about which edges are intersection edges. The decimation function takes this information into account and uses it to properly maintain intersection edges.

Text, Lofts and NURBS

When performing Boolean operations with text objects, make sure characters don't intersect each other and that each letter is closed. Also, it's easy to inadvertently create loft objects and NURBS objects in such a way as to have self-intersections. With loft objects, check the ends and points where the loft curve bends.

Procedures

To create a ProBoolean compound object:

  1. Set up objects for the Boolean operation. For example, to subtract spherical shapes from a box, create the box and spheres and arrange the spheres so that their volumes intersect the box where the subtractions should take place.
  2. Select the base object. In the example in step 1, you would select the box.
  3. On the Create panel, with (Geometry) active, choose Compound Objects from the drop-down list. On the Object Type rollout, turn on ProBoolean.
  4. On the Parameters rollout, choose the type of Boolean operation you want to use: Union, Intersection, Subtraction, and so on. Also choose how 3ds Max will transfer the next operand you pick into the Boolean object: Reference, Copy, Move, or Instance. You can also choose to retain the original material, or keep the default Apply Material choice: Apply Operand Material.
  5. Click the Start Picking button.
  6. Pick one or more objects to participate in the Boolean operation.
  7. As you pick objects, you can also change, for each newly picked object, the Boolean operation (Merge, and so on) and options (Cookie or Imprint), as well as how the next operand is transferred to the Boolean (Reference, Copy, and so on) and the Apply Material choice. You can continue picking operands as long as the Start Picking button stays pressed in. Each of the objects you pick is added to the Boolean operation.

    When the Modify panel is active, you can add objects to a selected ProBoolean object by clicking the Start Picking button and then picking the objects to add.

Example: To change an existing Boolean with sub-object operations:

    ProBoolean offers a great deal of flexibility in combining various Boolean operations simultaneously, plus the ability to change the way operands combine both as you build the Boolean object and after the fact.

  1. Start by adding a box, a sphere, a smaller box, and a cylinder, as shown in the following illustration.

    Top: Front viewport

    Bottom: Perspective viewport

  2. Select the box.
  3. On the Create panel, with (Geometry) active, choose Compound Objects from the drop-down list. On the Object Type rollout, turn on ProBoolean.
  4. On the Parameters rollout, in the Operation group, choose Intersection.
  5. On the Pick Boolean rollout, click Start Picking, and then click the sphere.

    The result is the intersection of the sphere and the box; that is, a single object that represents the common volume both objects occupy. In this case, it's the overlap of the sphere and the box. Although neither has a material at this point, the result uses the default color originally assigned by 3ds Max, at random, to the box when it was created.

    Note that Start Picking stays active (blue or yellow, depending on the color scheme). This means you can continue picking objects to incorporate into the Boolean object, optionally changing the operation as you go.

  6. Set Operation to Union, and then click the small box.

    The result is the union (adding) of the small box with the intersection of the sphere and larger box. Again, the original object's color is assigned to the result.

  7. Set Operation to Subtraction, and then click the cylinder.

    The cylinder's intersecting volume is subtracted from the previous Boolean result.

    Note that the entire history of operands and operations used to build the Boolean object is listed in the hierarchy view list at the bottom of the Parameters rollout. Box01 starts the Boolean with Union, Sphere01 is then incorporated with Intersection, Box02 is incorporated with Union, and finally Cylinder01 is incorporated with Subtraction.

    Note: The operation for the first object in the list has no effect on the Boolean object, but if you move it to another position in the list it does. You'll see an example of this at the end of this exercise.

    You can use the list and the other controls in the Sub-object Operations group to change the results.

  8. In the list, highlight the Subtr - Cylinder01 entry, and then set Operation to Union.
  9. In the Sub-object Operations group, click the Change Operation button.

    As a result of the change of operation, the cylinder appears in the Boolean object as an additive volume instead of a subtractive one. Also, its entry in the list changes to “Union - Cylinder01”, showing that the Boolean operation for the cylinder is now Union.

    You can also change the order of the operations, which can affect the results.

  10. In the list, click the Union - Cylinder01 entry to remove the highlighting, and then highlight the entry 1: Inter - Sphere01.

    Note that its position in the list, 1, appears in the editable field next to the Reorder Ops button.

  11. Change the value in the field from 1 to 3, and then click the Reorder Ops button.

    The Inter - Sphere01 item jumps to the end of the list.

    The Boolean object changes significantly. The new order in the list tells you how this shape was achieved: The two boxes and the cylinder were all combined with Union, adding their volumes together, and then the sphere was incorporated into that result with Intersection, leaving only the volume shared by all four objects.

Interface

Modifier stack

With an unmodified ProBoolean object selected, the modifier stack shows a single, expandable entry: ProBoolean.

Expanding this entry (by clicking the + icon) reveals a single subsidiary branch: Operands.

To transform operands in the ProBoolean object independent of the entire object, click the Operands branch to highlight it.

You can then select one or more operands, either by using standard selection methods in the viewport, or by highlighting their names in the hierarchy view list at the bottom of the Parameters rollout.

When one, and only one, operand is selected, the object type (not its name) appears as a separate stack entry below the ProBoolean entry. Clicking this entry provides direct access to the operand's parameters on the Modify panel.

If Parameters rollout Display is set to Result, selecting an operand displays the operand's axis tripod or transform gizmo in the viewport, although the operand itself is not visible by default.

To view the operand, set Parameters rollout Display to Operands.

Whether or not the operands are visible, you can transform and animate them at the Operands sub-object level, as with any other object in 3ds Max.

Changing a ProBoolean object by animating the position of the subtracted operand

You can also transform and animate the base object; that is, the first object in the hierarchy view list.

Pick Boolean rollout

Start Picking
Click this and then click each operand to transfer to the Boolean object in turn. Before picking each operand, you can change the Reference/Copy/Move/Instance choice, the Operation options, and the Apply Material choice.
Tip: When you're adding many operands to a Boolean object using the default settings, calculating the result each time you pick an object can slow down the process. To maintain optimum feedback, set Parameters rollout Display to Operands. Then, when you're finished, set it back to Result. Alternatively, on the Advanced Options rollout set Update to Manually, and then click the Update button to view the results after performing the Boolean operations.

Choose a radio button to specify how the next operand you pick is transferred to the Boolean object:

  • Reference The Boolean operation uses a reference to the picked operand, so the object remains after being incorporated into the Boolean object. Future modifications to the originally picked object will also modify the Boolean operation. Use Reference to synchronize modifier-induced changes to the original operand with the new operand, but not vice-versa.
  • Copy The Boolean operation uses a copy of the picked operand. The selected object is unaffected by the Boolean operation, but a copy of it participates in the Boolean operation.
  • Move The picked operand becomes part of the Boolean operation and is no longer available as a separate object in the scene. This is the default choice.
  • Instance The Boolean operation makes an instance of the selected object. Future modifications of the selected object will also modify the instanced object participating in the Boolean operation and vice-versa.

Parameters rollout

Operation group

These settings determine how the Boolean operands interact physically.

Union
Combines two or more separate entities into a single Boolean object.
Intersection
Creates a "new" object from the physical intersection between the original objects; the non-intersecting volumes are removed.
Subtraction
Removes the volume of a selected object from the original object.
Merge
Combines objects into a single object without removing any geometry. New edges are created where the objects intersect.
Note: In the following illustration, the display property Backface Cull was turned off so that all edges are visible.

Left: Original object (box) and operand (small box)

Center: Union operation; part of the smaller box is removed.

Right: Merge operation, showing new edges at intersection

Attach
Combines two or more separate entities into a single Boolean object without changing their topology. In essence, the operands remain separate elements within the whole.

Box and sphere primitives combined with Attach (left) and Union (right)

Insert
First subtracts the second operand’s bounding volume from the first, and then groups the two objects.

In effect, Insert treats the first operand as a liquid volume, so that if there’s a hole in the inserted operand or some other way for the “liquid” to enter its volume, it does. The following illustration shows examples of this effect, with shaded geometry on the left and wireframe equivalents on the right.

A bowl inserted in liquid; if the bowl has a hole in it or is tilted, the liquid enters its cavity.

Note: Insert does not simulate the displacement of liquid; the overall dimensions of the first operand remain constant.
Imprint
Prints the outline of the shape (or intersection edges) onto the original mesh object.

Left: Original object (box) and operand (text)

Center: Standard Subtraction operation

Right: Subtraction with Imprint

Note: The result of the Imprint operation is always the same; the main Operation choice has no effect on it.
Cookie
Cuts the faces of the original mesh shape, affecting only those faces. The faces of the selected operand are not added to the Boolean result.

1. Original object (box) and operand (sphere)

2. Standard Subtraction operation

3. Subtraction with Cookie on

4. Standard Intersection operation

5. Intersection with Cookie on

Display group

Choose one of the following display modes:

  • Result Displays only the result of the Boolean operations, not the individual operands.

    Choosing Result also activates the ProBoolean level in the Modifier stack.

  • Operands Displays the operands that define the Boolean result. Use this mode to edit the operands and modify the result.

    Choosing Operands also activates the Operands level in the Modifier stack.

    Also, when picking many operands, use this mode to avoid having to recalculate the result each time, and then set Display back to Result at the end.

Apply Material group

Choose one of the following material application modes:

  • Apply Operand Material New faces created by the Boolean operation acquire the material of the operand.
  • Retain Original Material New faces created by the Boolean operation retain the material of the original object.
Sub-object Operations group

These functions operate on operands highlighted in the hierarchy view list (see following).

Note: For these operations, you need not be at the Operands sub-object level in the modifier stack.
Extract Selected
Based on the chosen radio button (Remove, Copy, or Inst; see following), Extract Selected applies the operation to the highlighted operand in the hierarchy view list. Three modes of extraction are available:
  • Remove Removes the operand or operands highlighted in the hierarchy view list from the Boolean result. It essentially undoes the addition of the highlighted operand(s) to the Boolean object. Each extracted operand becomes a top-level object again.
  • Copy Extracts a copy of the operand or operands highlighted in the hierarchy view list. The original operand remains part of the Boolean result.
  • Inst Extracts an instance of the operand or operands highlighted in the hierarchy view list. Subsequent modifications to this extracted operand also modify the original operand, thus affecting the Boolean object.
Reorder Ops
Changes the ordering of the highlighted operand in the hierarchy view list. The reordered operand is moved to the position listed in the text field next to the Reorder Ops button.
Change Operation
Changes the type of operation (see Operation group) for the highlighted operand. To change the operation type, highlight the operand in the hierarchy view, then choose the operation type radio option, and then click Change Operation.
[hierarchy view]

The hierarchy view, found at the bottom of the Parameters rollout, displays a list of all of the Boolean operations that define the selected mesh. Each time you perform a new Boolean operation, 3ds Max adds an entry to the list.

You can highlight operands for modification by clicking them in the hierarchy view list. To highlight multiple contiguous items in the list, click the first, and then Shift+click the last. To highlight multiple non-contiguous entries, use Ctrl+click. To remove highlighting from a list entry, Alt+click the highlighted item.

At the ProBoolean level in the modifier stack, you can perform only sub-object operations on highlighted items. At the Operands sub-object level, you can transform highlighted operands as well as perform sub-object operations; see Modifier Stack for details.

Advanced Options rollout

Update group

These options determine when updates are performed on the Boolean object after you make changes. Choose one of the following:

  • Always Updates occur as soon as you make changes to the Boolean object.
  • Manually Updates occur only when you click the Update button.
  • When Selected Updates occur whenever the Boolean object is selected.
  • When Rendering Updates are applied to the Boolean object only at render time, or when you click Update.
Update
Applies changes to the Boolean object. Available with all options except Always.
Note: When you first create a ProBoolean object with Manually or When Rendering active, no operands, including the base object, are visible until you update at least once. Thereafter, the base object is visible, but no subsequently picked operands are until you update again.
Decimation %
The percentage of edges to remove from the polygons in the Boolean object, thus reducing the number of polygons. For example, a Decimation % setting of 20.0 removes 20 percent of the polygon edges.

1. Decimation %=0.0

2. Decimation %=30.0

3. Decimation %=60.0

4. Decimation %=80.0

Quadrilateral Tessellation group

These options enable quadrilateral tessellation of the Boolean object. This makes the object suitable for editing subdivision surfaces and for smoothing meshes. It also makes the object suitable for conversion to Editable Poly format.

For further discussion of this option, see the topic Quad Meshing and Smoothing.

Make Quadrilaterals
When on, changes the tessellation of the Boolean object from triangles to quadrilaterals.
Note: When Make Quadrilaterals is on, the Decimation setting has no effect.
Quad Size %
Determines the size of the quadrilaterals as a percentage of the overall Boolean object length.
Planar Edge Removal group

This option determines how the polygons on planar faces are handled. Choose one of the following:

  • Remove All Removes all extra coplanar edges on a face such that the face itself will define the polygon.
  • Remove Only Invisible Removes invisible edges on each face.
  • No Edge Removal No edges are removed.