← All ideas
  • Published 7 May 2025

Face importance for attributes when bevelling.

There is a problem with non-destructive bevelling (ie. Bevel Modifier, and we can assume the problem will persist with the Bevel node). At the moment bevel seems to (almost) randomly assign attributes from neighbouring faces to the newly bevelled faces (on odd-number bevel counts), like the material index, UVs, etc.

Bevel Importance.jpg

I propose an additional setting in the bevel for a Face Importance Weight, so when this choice is to be made in the bevel it can be artist driven. This is likely the best solution because I doubt there's a one-size-fits-all automated solution for this that will always yield the result the artist expects.

100%

Development Status: Open

Upvote 4 Downvote 0
Wahooney
7 May 2025

2 Comments

howard.trickey

One additional comment: bevel is the mesh operation with the most options, by far, right now. Every time one adds another option, the user interface panel gets more complicated and there is more to document and understand. So we don't just want to add every new option that someone asks for. Ton has said in the past: try to just make the code "do the right thing" without making the user have to specify an option. So before adding an option like this, I'd have to discuss with the other Modeling Module members. All that said, having wrestled with this problem in the past, I think there is no good way to have the code "do the right thing" all the time, and sometimes user control seems to be needed.

howard.trickey

If I understand correctly, you would like to be able to specify a custom float-valued face attribute, let's call it importance_weight, such that when there's a tie to break to choose which face's attributes to use for the center segment of a bevel, I choose the one with a higher importance_weight.

Yeah, this is doable. In my current bevel rewrite I am getting basic functional parity first, so this is not a high priority thing for me to work on, but it does look a useful feature for later. I have had a number of bug reports of the years about what face is chosen in a tie breaker, and what I have now is better than it used to be, but admittedly not perfect.

For the record, here's the currently implemented tie-breaking rule:

  1. There is an arbitrary numbering of the UV islands (the numbering is not user-controllable). If the two faces are in separate islands, choose the one with the lower number.
  2. If still tied, a selected face beats an unselected one
  3. If still tied, choose the face with the lower material index
  4. If still tied, choose the one with the lower z position of the face center
  5. If still tied, choose the one with the lower x position of the face center
  6. If still tied, choose the one with the lower y position of the face center