While modifiers such as spin, mirror & array can merge duplicates, there are times when
Some modifier setups don't can't as easily predict duplicate geometry.
- Curve modifier deforming an object that loops back on it's self.
- Bend modifier causing opposite edges touching when bending 360 degrees.
- Beveled curves which taper to a point (although this could be supported without a modifier)
Lots of comments from users on
- Seams: restrict welding to vertices along boundary edges.
- Edge Collapse: collapse edges below the length threshold.
- Vertex Group: option to limit welding to vertex groups.
There will be two methods available:
- Simple (default)
This would be a fast weld operation that would support common welding operations - weld-seams/collapse-edges although other cases could be supported in the future.
Merging geometry that would cause degenerate faces will be skipped (this requires much more complex operation to properly handle).
(internally this will manipulate the Mesh structure without requiring it to be converted into BMesh).
This would perform a full merge-by-distance, with support for resolving degenerate cases, documented to be much slower then the Simple operation.
(this can use the existing merge-by-distance code)
- Fast by default, for merging boundaries of disconnected surfaces.
- The ability only to merge a small subset of vertices should speed up the operation in most real world uses.
- The Full merge-by-distance code uses a method that depends on vertex order (picking all vertices closest to vertices at the start of the mesh). This means changing the vertex order of the input may cause the result to *jitter*.
- The Simple method will have limitations which might be hard to understand. Ideally we wouldn't have to select between two methods.