Booleans have been in 3dsMax as far back as most of us can remember. It’s a powerful object type that allows you to combine objects together using a Boolean operation. You can combine two together to form a new, unified mesh, or subtract them from eachother and create shapes that would otherwise take a very long time to create. If you’re coming from Bryce or Vue you’ll find that Booleans are a delightful (but slightly bitter) taste of home. ProBooleans clean up and add to the ordinary Boolean object in many ways that we’ll outline shortly. It actually makes it the indispensable 3dsMax tool it was meant to be.
In this primer paper, I’ll be walking you through the ProBoolean compound object in 3dsMax. We’ll first do a deep dive into the features available in this tool, followed by when you should use Booleans and some techniques for doing so.
ProBoolean in 3dsMax
ProBooleans in 3dsMax are a glorious thing. Back in 2004 I was quoted as saying (with some exaggeration) that “I could die happy if ProBooleans was bundled with (the next shipment of) 3dsMax.” To some extent this was true. I learned on Bryce, so having a solid Boolean foundation starting out would’ve made my transition much easier. Let’s take a scenic drive through each of the aspects of this tool, and I’ll try not to get too gushy.
Pick Boolean Rollout
The 3dsMax Boolean operand instancing types are identical to the ones in the original boolean object. You can choose how your object is brought into the boolean hierarchy, and this can give you tremendous leverage over the final object.
Reference – The operand is instanced into the hierarchy, but modifications can only be made to the original object (the one not in the ProBoolean object).
Copy- The operand is duplicated and brought into the hierarchywithout any instancing.
Move- The operand is put directly into the heirarchy, and it exists only in the Boolean object.
Instance– The operand is instanced and moved into the Booleanhierarchy. Modifications can be made to the original or to the instance in the Boolean object.
ProBoolean Parameters Rollout
The parameters rollout is where you’ll find the meat and potatoes of ProBooleans in 3dsMax. From top to bottom, it contains 5 sections- Operation, Display, Apply Material, Sub-object Operations, and the Heirarchy viewer.
Operation
This group handles what Boolean operation to execute on the objects. Remember that this is the operation you want the selected object to execute. I.E. “I want this object that I picked to be a subtraction from the object that I have currently selected.” You’ll find the rundown below:
- Union- Combines the objects together into a single mesh. The volume is combined as well.
- Intersection- Creates an object in the area where all objects share some volume.
- Subtraction- Removes the volume defined by the operand from the parent.
- Merge- Attaches the objects together (similar to Editable Poly’s “Attach”), but cuts the objects where faces intersect.
- Cookie- Conducts the requested operation (Union, Intersection, Subtraction, or Merge) but removes faces created by the operand.
- Imprint- Overrides the selected operation and simply cuts the parent object where the operand intersected it.
Display
This group is pretty self-explanatory. It determines whether you’d like to see the result of the Boolean operations, or the 3dsMax objects that make up that result.
Apply Material
This group handles how you’d like materials to be handled during the boolean operation. “Apply Operand Material” will apply the incoming object’s material to the faces it creates. Click on the image on the left to expand it. If we had set this operation to “Retain Original Material”, the entire box would still be grey.
Sub-object Operations
This is where things get interesting. Suppose you’ve inserted an object into the ProBoolean heirarchy and suddenly you need it back or need to delete it. “Sub-object Operations” is where you’ll find that kind of functionality. The “Extract Selected” button will do just that- extract the selected object in the Heirarchy Viewer according to the extraction method you’ve chosen. You have 3 extraction methods to choose from:
- Remove- This will extract the object from the heirarchy and leave you with the original object.
- Copy- This will create a copy of the object that you may manipulate independent of the original in the ProBoolean heirarchy.
- Inst- This is short for “Instance” and will create an instance of the object that you may manipulate in order to impact the Boolean object.
Besides this you’ll see “Reorder Ops” which will change the position of the selected object to whatever the number is in the spinner. By default it’s set to one, which will move the selected object to the top of the chain- just after the base object. Finally, the “Change Operation” button will change the net operation of the selected object to whatever is selected in the “Operation” group.
Advanced Parameters Rollout
Update
This group will control how the Boolean object is updated. If you’ve got a chain of operations that contains extremely complicated operands, you’ll probably want to keep the updating to a minimum to keep things snappy. While the default is set to “Always” you could set your updating mode to accommodate more complex situations.
Decimation
Decimation controls the optimization that 3dsMax does after the ProBoolean operations are complete. You can think of it as a cleaner, smarter “Optimize” modifier that comes with the package. The percentage value represents the percentage of edges that are removed from the final object. The higher this value, the more optimized the mesh becomes.
Quadrilateral Tessellation
When enabled, this feature will convert the final object into an all-quads 3d mesh. This is an excellent feature if you’re looking to meshsmooth the final result. While the final polycount will be quite high, this can be very useful for certain situations.
Planar Edge Removal
Having control over how ProBoolean deals with geometrically meaningless edges can be quite important. You’ll find this most useful when you’re combining objects that have coplanar, adjacent faces that have different materials. Sometimes ProBoolean will ignore the different materials and remove faces anyway, and this can cause problems. Know that you can control this change from the “Planar Edge Removal” group.
When and How to use Booleans in 3dsMax
I recently created a Monday Movie showing you how to use the ProBoolean compound object to create meshsmoothed text in 3dsMax. That’s just one example of what you can do with this feature.
I’ve found ProBooleans to be most useful for creating custom parts for mechanical renderings. With the quadrilateral tessellation, you can take this a step further in order to meshsmooth the result. Take a look at the images below that show a basic object being built using ProBooleans. Something of this complexity might take significantly longer to produce using polymodeling. ProBooleans allow you to virtually ignore mesh structure in favor of form. It allows you to say “I don’t care what the mesh structure looks like, I just want an object that looks like this.” While this tends to yield relatively polygon-intensive objects, it can be a big timesaver.
Take a look at the workflow below. If you’re feeling adventurous, try doing what I did but then applying the quadrilateral tessellation and a bend modifier.
You can really go pretty crazy with ProBooleans as soon as you get a feel for what’s possible. If you go easy on the tessellation, you can get some great effects at relatively little incremental polygons over modeling it by hand.
Until recently, the only advantage ordinary Booleans had over ProBooleans in 3dsMax was that they were exposed to MaxScript. However, even now this has been met with the exposure of ProBoolean to the scripting language. As far as I know, Booleans remain in the 3d Studio Max package for legacy support reasons.
Common Errors
The single most common error with 3dsMax ProBooleans is “Invalid Boolean” or “Check Operands for Self Intersection”. This is commonly caused by having a ProBoolean object wrapping another ProBoolean object where the child object made no changes. It’s caused by clicking ProBoolean twice on an object and then trying to select operands. You can fix it by extracting the original object, and creating just one “ProBoolean” layer.
This happens all the time, don’t sweat it too much.
Another common issue is that ProBooleans crashes 3dsMax for extremely complex or taxing objects. You’ll just add an operand, and 3dsMax will stall and stop responding. This, too, happens all the time. Booleans are a tricky object type and they are naturally rather resource intensive. Remember to give the program plenty of room to breathe, and if it starts acting sluggish or stops responding, don’t click around wildly. 70% of the time, the program will finish what it’s doing in about 10 seconds and recover from the crash. Remember that nothing beats saving often. I have Ctrl+Alt+S wired to “save-incremental”. Every project of mine easily has dozens of incremental scene files.
If you find that your computer is struggling to keep up with a ProBoolean object in your scene, you can always apply an “edit mesh” modifier to help keep things snappy.
Another common problem is subtraction artifacts, though these are much less frequent in ProBooleans than in ordinary Boolean objects. Even then artifacts don’t often come up in Max 2009 or higher. When they do happen, they tend to occur when 3dsMax mistakenly inserts additional vertices along the edges in a subtraction. While ordinarly this shouldn’t cause any problems if you’re not worrying about meshflow, they can cause problems in the polygon normals causing a strange tearing effect. However, if this is still important, or if you’re getting artifacts on planar surfaces, you might want to read Bracer’s Vertex Cleanup Tutorial.
And there you have it. In this paper we’ve laid down a foundation for using ProBooleans in 3dsMax. Now go play around with the toolset and start crashing the program. If you’re not crashing 3dsMax at least once per week, it means you aren’t trying enough new things!
By Erri September 28, 2009 - 12:42 am
Hi,
Have a question. Why sometime when using Boolean (subtract operation) we have artifacts. Like for exemple to subtract a cylinder from a box. it happen only with boolean and not ProBoolean. the same result happen also when we use the Collapse method (collapse selected -> Bolean -> subtraction) in the Utilities Menu.
Thanks.
By Bluesummers September 28, 2009 - 1:06 am
You know, I thought of that while writing this, but I’m having a seriously hard time replicating that artifact.
I remember it being an issue back in Max7/8/9 days, but I’m working with 2009 and even the ordinary Boolean object seems to be doing an alright job preventing strange subtractions. I’ll reference Bracer’s tutorial on meshflow cleanup. It’s older, so it tackles this issue head-on. Here’s a direct link: http://3dtotal.com/team/Tutorials/bracercom/bracercom.php
Sorry I couldn’t help directly, Erri!
By yourb September 28, 2009 - 1:50 pm
I enjoyed this! Well done!
By Bluesummers September 30, 2009 - 12:11 am
You’re very welcome!