← All ideas
  • Published 6 Mar 2020

Weight Paint/Merge Logic

One of the Blender Today #93 questions brought up something that piqued my interest and further investigation. The question was by Damian Winnichenko asking, "Is it a bug or a feature when you merge together 2 vertices with different Vertex Weights, the result is transferred from one of the vertices instead of averaging weights?" The answer was that it takes into account what active vertex is selected and assigned that vertices weight to the newly merged vertex.

This, however, is not the case, I did a bit of debugging and discovered the logic. The weights for the newly merged vertex is obtained by the first vertex from the mesh vertex Array that has been added to the selection. This means if you select vertices 50, 30, 2, 82, 83, 84 the newly merged vertex will always get the weight from vertex 2 no matter what order you make the selection or how you merge vertices.

This is why I'm making this proposal, there is no intuitive logic behind this as I assume not many have come across this. I'm Proposing that a logic system to handle this is implemented that takes into account the order of selection and the merge method.

If Merge at Center is selected the merged vertex weight should be an average this would also apply for the Collapse Merge however it will have to make separate averages based on isolated selections.

If Merge, at First, is selected the merged vertex weight should be the weight of the First.

If Merge, at Last, is selected the merged vertex weight should be the weight of the Last.

If Merge at Cursor is selected the merged vertex weight could be just an average or if you want to get fancy it could use a weighted average or Weighted arithmetic mean giving each vertex a weight proportional to the distance from the 3D cursor.

blender_NEsiFZuLyv.png

100%

Development Status: Open

Upvote 17 Downvote 0
TheWizardLord
6 Mar 2020

1 Comment

damian_winnichenko

Thanks, dude! =)))

I think we should report it as a bug to draw the developer's attention to that issue. I didnt look through the code, but I bet that patch should be simple enough. Although, I'm not a developer nor a good programmer.

2