Blender Boolean difference not working properly | Let’s fix it

0
1819
Blender Boolean not working

Blender Boolean not working properly

Booleans have risen in popularity since the new hard surface add-ons have popped up left and right. But, unfortunately, when using Boolean in Blender, you can always feel incoming crashes and meshes that won’t do what I want them to. So, after a bit of research, we learned that an article outlining some standard solutions to Boolean modifier problems might be of some help, and ended up with this post. 

To solve most Boolean problems, you just need to move the object a little in any axis. There are a couple of reasons why this can help remove the error. Also, sometimes you may have multiple meshes in the same object cutting into a base mesh. Separating these and making sure that scale is applied and having normals facing outwards is a good troubleshooting start.  Since blender 2.91 version, we can now switch to the exact solver for more accurate Booleans at the cost of speed.

What is a boolean modifier?

In a blender, a boolean modifier is a tool that allows us to perform the boolean operations on our 3D geometry. It takes two overlapping objects to make a boolean. Depending on the process, it is possible to achieve different results. First of all, you need to know that there are three different types of boolean operators.

  • Difference
  • Union
  • Intersect

A different operation means that we take one object and cut out the volume that it shares with another object, essentially “cutting” or “carving” into it based on the shape of the first object.

A union operation will take both objects and try to fuse them where they intersect—essentially adding the volumes together and creating one thing.

The intersect operation will take the two objects and keep only the volume they both occupy, removing everything else.

How to enable the boolean modifier in blender

In a blender, a boolean is implemented as a modifier. You can reach the modifier stack by going to the wrench tab in the properties panel.

If you want to learn more about the modifier stack, you can read my beginners guide to it here:

In the modifier stack, click add modifier and choose the boolean modifier. You will notice that the modifier’s name is red. This means that the modifier is currently not doing anything. It is essentially disabled. It needs to know what other object we want to use to complete the boolean operation.

To enable the modifier, click the eyedropper icon next to the object slot. Then click on the object you want to operate with either in the outliner or the 3D viewport.

Blender Boolean Cut Fix

I would select all and press X (Delete) to start from scratch to repair this kind of damage. You can get similar results quickly without booleans and with clean topology by shrink-wrapped edges over your terrain.

  • Add a plane, slice it by Ctrl+R with a value of the desired amount of cuts
  • Select one short edge, search for Select Similar > Length and delete them (X)
  • Subdivide all long edges in the amount of desired detail
  • Rotate at the desired angle of the Z-axis
  • Add Shrink Wrap modifier with Projection type, Target your terrain, Z-axis, Positive, Apply
  • Select all vertices, Extrude (E) in the Z-axis, move below terrain level, Scale in Z to 0
  • Add Solidify modifier to get the thickness

How do we troubleshoot Boolean modifier problems?

There are various tricks we can try if we run into an uncooperative Boolean. The first steps make sure that you have a watertight mesh. In later versions of blender, there is now an exact solver. In the modifier, switch settings from fast to your required speed. If you can spare the speed loss. If not, there are plenty of actions we can take to make the fast solver work.

Ensure you have applied scale; you can do this using Ctrl+A and select scale from the menu. This tells the blender that the scale of this object as it is right now is the new starting point. 

Then try removing doubles in version 2.80, and later, this operation is now in the “merge menu,” hit Alt+M (Just M for later versions) and select “by distance.” If two vertices are on top of or close to each other, they will merge. This makes sure we close any potential gaps in the mesh, and it takes care of zero area faces. 

The blender will give you precise information about how many vertices you have removed. If it seems unreasonable, undo the operation, or adjust the threshold in the operator settings down in the left corner. If either of these steps does something unpredictable or looks normal, try to find out why. There is likely a more extensive problem present.

Now you need to make sure that you have consistent normals. You can do this by going into edit mode, selecting everything, and hitting Shift+N. Most of the time, the blender will do a decent job recalculating the normals automatically, so they all face outwards. If you still suspect that your normals are inconsistent, you can turn on the standard direction view for faces.

Overlay Menu

In the overlay menu in edit mode, look for the normals section and click the face icon. Then increase the size until you see lines drawn from the faces. This will help show the direction of each face usually. Make sure they are consistently outwards facing. 

Go through these three steps for both the base object and the target. When done, your things qualify for a Boolean operation. 

When both objects qualify, and if we still have problems, there are still steps left. 

You can move the object slightly towards any axis so that the things intersect more cleanly. Avoid very small intersections, and avoid edges moving alongside each other just a short distance apart. The reason is that Booleans work best when the meshes don’t differ too much in density. If one object has millions of polygons and the other just a handful, the blender must calculate the transition between these two extremes. This action can cause trouble. 

Add a new Boolean modifier on the base mesh with this separated piece as the target. We can now check for loose geometry or objects. For example, you may have stray edges, faces, or vertices that are just hanging in the air, causing problems.

In these cases, you can select the target object, go into edit mode, select one element, and use CTRL+L to select links. Then use CTRL+I to invert the selection. If you have any stray geometry floating around, we will now have it fixed. Delete anything that does not belong in your object. 

Fix Boolean modifier’s difference function

You can try using the Boolean mod with a Difference operation, and it worked as expected, or try applying the Boolean mod to the “D” object, and the object made of cylinders should be the object the mod works with

Blender Boolean not cutting object

It can be hard to see the effect because the object we used to cut with will still occupy the cutout portion after a different operation. Therefore, select the object and click H to hide it. You can later unhide all things with Alt+H.

You can also go to the object properties in the properties panel. That is the yellow icon. Here you can find the viewport display section and change the Display as setting to wire or bounds. This way, the blender will only draw this object as a bounding box or wireframe, indicating that the object is there, but we can still see the effect.

If you experience additional problems, I suggest that you read my troubleshooting guide for booleans. It is pretty common to run into problems when dealing with booleans, at least for beginners when the topology is not 100% correct. Blenders boolean operation is quite picky about this.

Conclusion

Boolean is a fun tool to work with, and adding some extra speed with Booltools is cherry on top. While there seems to be an endless array of troubleshooting steps available for boolean modifier problems, they are quick to go through once you know what steps you can take. We can also use a handful of these steps to solve an entire range of other issues. For instance, an object with scaling that is not reset will get weird results when you use specific tools on it. Also, if you want an occasional update on what is happening on the site, subscribe to the newsletter, and we will let you know.