There are a couple mesh tools (bevel and inset are the ones that I can think of right now) whose behavior is unintuitive (some would say “buggy”) when used on objects that have been scaled non-uniformly (that is, different scale factor on some axes compared to others).
It is a very common confusion for newcomers why “bevel looks strange” on some object, whereupon some more experienced Blender user explains: “apply Scale”.
The reason for the strange behavior is that the tools operate on the geometry of the original, not the version with various transforms applied.
I remember running into this “bug” when first implementing bevel, and asking other developers, was told “this is working as intended”. Certainly inset was doing the same thing. I think I may have even tried some other software and found the same behavior, though my memory is fuzzy on that. So I left that behavior as is.
But I have recently been wondering whether that is really what we want? It certainly adds a little more unintuitiveness to Blender for new users. So should we change this behavior for 2.8?
The upside would be that people would have to spend less time learning and/or remembering to apply scale. Another upside is that in multi-object beveling, the bevels will not look strangely non-uniform when different objects have different scales. Yet another one would be that the ‘bevel amount’ or ‘inset amount’ would have absolute meaning that is understandable in the scene, rather than one that varies with the scale.
A downside would be that the bevel and inset tools would have to get more complicated: they’d have to (at least in the case where there’s non-uniform scale) apply the model transform matrix to all of the vertices before doing the operation, and then apply the inverse transform afterwards. Another downside is that this would not be backwards compatible so old files that have bevel modifiers on non-uniformly scaled objects would look different (this could be avoided with versioning code in Blender, but I’d rather not have to do that – I think it is very uncommon to have codepaths in Blender depend on versions - it’s usually just affecting file loading). A final downside might be that the current behavior (different bevel amounts on different faces either side of an edge) is actually useful in some modeling circumstances.
Also, would this just open a can of worms where other things that I’m not knowledgeable enough to think of right now also depend on scale being applied in order to work well? I could think of, for instance, texture coordinates, texture painting, physics effects, …
What do people think? Also, can people think of other mesh tools that behave differently when the scale is non-uniform?