9
$\begingroup$

I'm trying to model an M16 but it's not going so well when it comes to the magazine of the weapon. Next to the magazine is a mesh. I want to cut holes in the mag with that mesh. But the magazine just goes invisible or connects with the mesh when trying to execute the Boolean Modifier. I have tested to invert the normals and some other stuff but it ain't working.

Thanks for all help!

$\endgroup$
  • $\begingroup$ Make sure that the Boolean modifier is set to difference $\endgroup$ – Igor Tatarnikov Jul 30 '15 at 7:10
  • $\begingroup$ You need to remove doubles on the Cube.003 mesh.. $\endgroup$ – zeffii Jul 30 '15 at 7:13
  • $\begingroup$ @zeffii Thanks alot! The solution seems pretty obvious. I'm not so good with Blender, Sorry :/ $\endgroup$ – Zemah Jul 30 '15 at 13:16
  • 1
    $\begingroup$ No need to feel sorry. I think everyone struggles with doubles, normals, booleans, etc when first starting out. It gets easier with time once you learn the common causes of mesh problems. $\endgroup$ – Mentalist Jul 30 '15 at 13:57
  • $\begingroup$ There is an addon "BoltFactory" that might help you... Just change the diameter settings to 16 and you're done... $\endgroup$ – Samoth Nov 18 '15 at 16:59
9
$\begingroup$

As zeffii stated - you need to remove doubles on the carving object (Cube.003). There were 16 double vertices on there. If a boolean doesn't work it's probably because something in your geometry isn't making sense (even if it looks and renders fine).

Last time your issue was caused by inverted normals. This time it was caused by doubled-up verts.

I will add a tip about removing doubles to the answer I posted to your other boolean question.

Here's a solved .blend - although it will be more helpful for you to go through the steps of removing doubles yourself than to see the finished result.

$\endgroup$
  • 2
    $\begingroup$ If somebody successfully answers a question in the comments please let them post the answer in the answers section. See this meta post. $\endgroup$ – PGmath Jul 30 '15 at 13:50
22
$\begingroup$

Most of the common problems people experience with the Boolean modifier are generally down to only 2 or 3 things: Normals, Doubles (or overlapping geometry), Non-Manifold geometry.

Normals

Faces have a direction, it may seem like a weird idea but it's necessary in computer graphics to give a polygon (different word for face) a direction.

enter image description here

The fact that faces have a direction is included in the word "face", for English speakers: "what direction is it facing? it's facing that direction". Blender will give the new faces you create a direction that corresponds to the faces around it, it's up to you as a modeler to be aware of this.

The direction of the Normals determines how the objects combine when using a Boolean Modifier:

On the first image the cube and the torus have their normals facing out:

enter image description here

On the second image the Torus has the normals facing in:

enter image description here

On the third image both objects have their normals facing in:

enter image description here

What are Difference, Union, and Intersect supposed to produce?

  • Difference: The result will be those parts of the mesh which do not share volume in 3D space. see here a good expose on how to do this, and what to expect
  • Union: Returns the two meshes joined as one, the two meshes do need to have at least some common volume in 3D space. If they don't you can use the Join command (Ctrl+j) instead of a boolean.
  • Intersect: will return the shared 3d volume of the two meshes.

Quote from the manual:

  • Difference

The modified mesh is subtracted from the target mesh.

If the target Mesh has inverted normals, Blender will Intersect the modified mesh.

If the modified Mesh has inverted normals, Blender will add both meshes (Union).

If both Meshes use inverted normals, Blender will Intersect the target Mesh.

  • Union

The target mesh is added to the modified mesh.

If the target Mesh has inverted normals, Blender will Intersect the target Mesh.

If the modified Mesh has inverted normals, Blender will subtract the target Mesh.

If both Meshes use inverted normals, Blender will Intersect the modified Mesh.

  • Intersect

The target mesh is subtracted from the modified mesh.

If the target Mesh has inverted normals, Blender will subtract the target Mesh.

If the modified Mesh has inverted normals, Blender will intersect the target Mesh.

If both Meshes use inverted normals, Blender will add both meshes (Union).

Fixes for problems caused by normals in boolean operations are generally easy: Faces of both objects should all be outward facing with no exceptions.

To recalculate normals enter Edit Mode (Tab).

Select all faces and press CtrlN To have the normals face out

Or CtrlShiftN to have normals face inside the mesh.

To flip a single face, select it and use Mesh>Normals>Flip Normals.

enter image description here

You can toggle the display of normals in the Properties Panel (right panel N): enter image description here

Doubles

Doubles are multiple vertices which share the same 3d location. These are problematic for the boolean modifier if they occur in one object, because they're a sign of degenerate geometry (zero area faces, hidden duplicated edges) or simple geometry which isn't fully connected as you might be led to believe by how it looks.

To Remove doubles

  1. Enter edit mode (Tab).
  2. Select everything (A.
  3. Presss W and select Remove Doubles.

( insert images of example tell-tale signs of doubles )

  • Overlapping geometry between objects:
    If you've removed doubles and flipped normals the right way, then a third cause of Boolean Failure is that some of your edges are shared by more than 2 faces. Inspect your Objects closely. Multiple vertices in the same location will often cause the boolean modifier to act up. In addition to Double geometry on Object A or B, object B should also not share any duplicated geometry with A. You can always prevent this by adjusting one of your Objects to comply with this limitation of the Boolean Algorithm. From this bug report:

    this is a known bug in Carve upstream (a library we're using for boolean operations)

Non-Manifold Geometry

Boolean operations will fail when using Non-manifold objects.

For all intents are purposes manifold means 'is it air-tight', meaning it has no holes. Examples of non-manifold objects could be objects like planes with no thickness, or objects that are self-intersecting or that have Zero-area faces or have Open volumes.

For some operations it helps if you use the Outliner to hide the object you are doing the boolean operation with from view/render so you can see clearly the effect of the operation before applying the modifier (apply at the last possible moment!)

Other cases where boolean operations can fail:

  • Using Curve objects instead of Mesh objects

    Blender doesn't let you use a curve objects for boolean operations. That inlcudes Text objects, as they are considered curves as well. Those objects would need to converted to mesh by pressing ⎇ AltC.

$\endgroup$
  • $\begingroup$ It is easier to see problems with normals if you activate backface culling. Faces that have wrong facing will simply be transparent. $\endgroup$ – Cem Kalyoncu Dec 16 '18 at 17:00

protected by cegaton Jun 25 '17 at 18:02

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.