Different material on booleans?

I feel like I’ve woken from an alternate reality, because I could have sworn that Blender had the ability to set a different material on the resulting faces from a boolean modifier.

Was that never the case? Did I use an add-on for this? Anyone know what I’m talking about at all?

1 Like

IIRC, it uses the material of the second object.

The bevel or the entire result, you mean?

I recall assigning a material per bevel modifier… like… getting a vertex group from the bevel result, although that can’t be right…

I’m just talking about booleans. And my lembrance was not correct… What works is to add a new material slot with the material from the second object, and the boolean modifier will automatically use that slot for the new generated faces.
For the bevel, you’ll also need a new material slot, and in the bevel modifier’s panel, set the material to the index of the material slot you want (remember that the indexes start at 0, so the third material has index 2)

Ooh! Yes, I was thinking about the bevel modifier! Thanks for pointing that out,

So the boolean seems to match material on it to the corresponding material in the original object, regardless of the slot position, as long as that material is present, which is great!

Next up is to check if it matches multiple materials too, which I really hope…

(thanks to @proxe)

1 Like

Sadly that only seems to work while the Boolean modifier is live. It would be nice if it retained the second material on the appropriate faces after applying the modifier.

Whoa, you are correct!

That’s a terrible shortcoming! Why hasn’t anyone reported this as a bug ages ago?

Because it’s not really a bug… perhaps a buggy feature.

It will work if the slot index is the same in both objects…
Object1 > mat_slot[0] :: material_1 (all faces are applied to this slot)
Object1 > mat_slot[1] :: material_2 (no faces here)

Object2 > mat_slot[0] :: it can be anything… we just care for slot2
Object2 > mat_slot[1] :: material_2 (all faces are applied to this slot)

This will work both with the modifier active and applied. :wink:

edited: Note that this way also let’s you use multiple materials from both objects… for example Object2 can have one material per face, and those materials are present with at the same slot indexes from Object1, it will work flawlessly.

Ah, thank you for the explanation! That mitigates it a bit.

But, it seems that the coders cared more about the internal data structures of their code, than the end-user experience. Sounds like another UI paper cut to add to the list over at devtalk, then! :wink:

Is not that the coders cared less… This functionality in quite old, implemented at a time that having it working was already a miracle! :wink:
But it would be nice to peek it up again for 2.80.