<cg>
<photo>
<misc>
<about>
<links>
<main>
Booleans - problems, solutions & tips...
A tutorial by Daniel Jansson


Hello folks...

I've gotten mighty pissed of people complaining that 3D Studio MAX's booleans are crappy and completely useless so I decided to write this tutorial which will hopefully aid you (and them) in the quest for properly working booleans. I'm no great artist or something, but I've had plenty of experience with booleans, and I can clearly say that trial and error is the way to go ;)

Quoted directly from the online help:

"A Boolean object combines two other objects by performing a Boolean operation on them."

I will not touch boolean unions or intersections in this tut though, only boolean subtractions. But the process really applies to all of the boolean processes.


1.0   How to perform a boolean subtraction

Create two objects intersecting each other like in the pic below



After that go to Create > Geometry > Compound objects and click Boolean with one of the objects selected.



Then click on Pick Operand B and select the other operand. The result will be like so:



Now you've done a simple boolean subtraction, aren't we happy?! :)


2.0   Problems

As you continue using MAX's booleans you will (without a doubt) find that you get errors, open holes in geometry, messed up normals and so forth. This section will give you tips and solutions on how to solve and/or get around these problems. (at all of the below examples please consider the original cube as your mesh instead of just a cube...I had to fake the sphere and cylinder error below because with simple shapes the booleans are "quite" stable...but I can guarantee that they sometimes happen on more complex meshes than just a cube)

2.1   First I thought we'd start off with the most common problem, missing faces

If I like in these two images remove one side of the of the cube the boolean subtraction won't work. (notice which side I've removed by looking at the pivot bottom left.



The result will then look like this if I do a subtraction as described in section 1.0



To solve this you might need to rebuild some faces/polygons, if this is not an option in your particular case there are another method which will do almost the same thing as booleans...I will describe this near the end of this tutorial.

2.1.1   You get open faces even when the mesh seems solid?

Well, the fact is that either your "cutter" or your original object has open faces but might not always be seen by just looking at the object.

I've removed a part of a sphere from this cube and everything seems ok.



But when I try to remove a cube from the already booleaned object it removes the faces like in the example above.



I've zoomed in really close to show to you how little is needed...once again, open faces and boolean subtractions don't dance together. It's enough for a couple of vertices not to have been welded properly during the boolean subtraction for open faces to occur.



Can you see that really tiny opening? That's what causing the problem.

Ok, now for the solution, simply apply a Cap Holes modifier after the first boolean and then try to remove the cube again. Taadaa, it works because cap holes fills in any open faces.

The second way to solve this is to plan ahead, if you know that you're gonna remove the cube after you remove the sphere then why not just do ONE boolean instead of two? Simply convert either the sphere or the cube to an editable mesh and then attach the other cutter (i.e. the sphere or the cube depending on which you converted to EM). Now boolean as shown, there should be NO problems. Multiple booleans are buggy in max, therefore one big boolean with all the "cutters" attached together works better than several small booleans.

The result should look like this



2.2   When I remove a cylinder from my mesh the normals just seem to flip



In some cases the above subtraction can cause this problem



But this can be easily remedied by adding another cap segment (and possible height segments) to the cylinder, like so



Taadaa, another successful subtraction




3.0   General tips

Other stuff which is valuable to know in advance before you start your modeling (and booleaning) is that meshsmooth don't work very well with booleans either...it can some time be successful but often it just ends up like something similar as the below image



Another thing that could be good to know is that booleans work absolutely best on evenly tessellated meshes (i.e. when the boolean object and cutter has roughly the same density in faces). Another solution to the boolean subtraction process is not to use booleans at all. There is a tool called Shapemerge which can be found at the same place as Boolean. What it basically does is to project a spline onto a mesh and create faces out of it which later can be selected and extruded inwards or outwards...all after your preference.


I want to thank you for reading through my (first) tut...if you managed to get this long without falling asleep :)

All questions can be directed to me at: mrpumpernickel@mousevomit.com
© Daniel Jansson