6
$\begingroup$

Lately I've been experimenting with procedural shapes, based on a very limited mesh. I found myself looking for a way to join two meshes using a modifier. The Boolean modifier doesn't do the trick. It just messes up the mesh in horrible ways.

Some way out (or hack) is to use the Start Cap and End Cap parameters on an Array modifier to join various meshes together. Given their joints are close to identical, this works great. When I set the Count to 1, uncheck both offsets and check Merge, it does what I want:

array mesh join

I can even build the end caps with modifiers (array, mirror, ...). That way, I can create meshes with very little source data, while having super complex end results that are editable and animateable with very little effort.

Now I am wondering if there is a better way to do this. Remember that I want to keep the original meshes editable and separate at all time. Is there a way to join/merge meshes using a modifier, other than my Array modifier hack?

UPDATE:

Using a Boolean modifier does not work because it's not really "aware" of the matching vertices. It just tries to merge two meshes together at whatever cost. Using the exact same meshes, the result is the following:

boolean mesh join

The Array modifier is much smarter in that respect. It tries to join the meshes at points where vertices are overlapping or in very close proximity to each other (Distance tolerance). It actually merges the vertices (removes doubles) so the end result is more or less the same as merging vertices of two separate meshes in edit mode. And that's what I am looking for.

$\endgroup$
3
  • $\begingroup$ What's wrong with Boolean > Union? Do you want to join overlaping meshes? From the screenshot you have posted I assume not and than Boolean is working just fine (don't forget to hide joined mesh). $\endgroup$
    – cgslav
    Aug 12, 2018 at 20:35
  • $\begingroup$ I updated my question to include the reason why the Boolean modifier is not an option. $\endgroup$
    – wout
    Aug 13, 2018 at 9:15
  • $\begingroup$ I saw your post in "blender.community". Do you have any progress? I have to same problem to join >2 objects. Result material is also wrong. $\endgroup$ Jun 19, 2020 at 2:07

2 Answers 2

2
$\begingroup$

This answer comes from a post by the asker on a different forum.

By using the Array modifier with the count set to $1$ (and, optionally, each Offset option disabled), you can use the Caps field to join up to two additional objects.

You may need to fiddle with their positions in order to achieve the ideal effect. If you want to merge overlapping vertices, make sure that Merge is also checked.

$\endgroup$
0
$\begingroup$

As of 2.92, Blender's geometry nodes can create a "join modifier", which I think is pretty cool, even if it does require a little bit of nodes work:

enter image description here

The node group modifier is reusable, although that's not going to be of much use, since you can't specify an object input to the modifier. (I hope that's in the works?)

If you want to merge vertices afterwards, like an array would, you can follow the geometry node modifier with a weld modifier.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .