Difference boolean modifier acts like union but only on a specific object I'm modeling my mouse in Blender and I'm trying to create some indentation with a boolean modifier. The modifier is set to difference and when I look at it in object mode it works like it should. 





But when I actually render it out the modifier acts like it's on union.



The catch is that if I have the boolean object intersecting with a different object (than the mouse object), it works fine even when rendering. I tried recalculating normals &amp; removing doubles on both the mouse object and the boolean object. Neither of them is non-manifold as far as I could tell after checking them. I'm really at a loss here as to what the problem is.

Here's the .blend file if it helps: Dropbox link
The reason, that you have different result in viewport and render is because you have different subdivision settings for render and viewport. 

The BMesh solver for booleans works faster, but in tiny geometry it can make a mistakes from time to time. In your case it makes errors in tiny lines here:



So you can swich to Carve solver, it works slower but never makes a mistakes in correct geometry:



But maybe you haven't this selector (it depends of version of blender), so in this situation you can change overlap Threshold to like 0.1µm to make them more accurate.

But instead of this you can just make gaps a little bit thicker, or use a texture.