Bevel Improvements


Howard has asked us to move the bevel improvement discussion to another thread, as it was continuing in a GSoC 2018 thread. So let’s let’s bring the discussion here.

I’ll start with a request for the bevel node to have the option to output a vertex group containing the beveled vertexes.

6 Likes

Thanks for starting the new thread, Bobo_The_Imp.

Which vertices do you mean by “beveled vertices”? Two possible choices that I can think of are:

  1. all the new vertices created as part of the bevel, including those inside the “vertex mesh” that forms when 3 or more beveled edges meet (and some other cases of “terminal edges”).
  2. only the new vertices on the boundary between the beveled parts and the rest of the mesh

The Bevel Tool (though not modifier) currently leaves all of the vertices in case (1) selected after it runs. But I imagine you are really asking about an option mostly for the modifier case.

1 Like

I believe I’m referring to scenario 1. And yes, I’m asking purely for the modifier. It’s very handy for the bevel to output vertex groups to keep things procedural!

2 Likes

With new Bevel profile… could be great an adaptative subdivision for this. It’s a target?

By “adaptive subdivision”, I assume you mean changing the subdivision process to subdivide less where the geometry is already dense. I believe Open Subdivision can be made to do this, but I haven’t looked into that. And I agree that a model that has bevels with a lot of segments in it (including especially custom profiles) would likely be a good case where this would help.

I see that as a fairly separate target from anything to do with Bevel, however. It should be a modeling project on its own and prioritized among the things we doing in the modeling space.

I think that I didn’t explain properly. I talk about the system to make the bevel more dense where the curve need more subdivisions (in curves) and with less subdivisions where the curve is near to straight.

The same that people ask to the splines. TO reduce the geometry, something like this

instead of actual system

4 Likes

Oh, so you are talking about the sampling of points along the curved custom profile. That is not currently planned for custom profiles, but it certainly makes sense for something to consider in the future.

8 Likes

Actually I have added something close to the adaptive sampling method pictured. For the custom profiles, although I didn’t make it quite as “adaptive” as you suggested.

The current sampling algorithm does this:

  1. If there are enough samples, give one point to each edge so each control point will have a sample
  2. If there are enough remaining samples, give a common amount to either
    A. All edges if “Sample Straight Edges” is enabled, or
    B. Curved edges if it’s not enabled
  3. Give the remainder of the samples to the most curved edges.

A truly “adaptive” sampling method would probably switch out steps 2 and 3 for spreading the remaining samples out by giving each edge a relative weight of its “curved-ness” and spreading out the samples based on that weight. If I have time I’m happy to try that because it sounds like an improvement over the method I’m using.

2 Likes

I don’t know the best way, I always though that would be hundreds of free implementations of an adaptative sampling.

@Howard_Trickey

Could it be possible to make the bevel modifier work with the vertex groups?

If I change the value of the vertex on the group, the bevel doesn’t take it into account.
And sometimes crashes blender directly if I play with the value and apply.

Right now, there is no way to make this kind of bevel.

6 Likes

Interesting idea, Wazou. If I understand it correctly, you propose that the vertex weight multiply the width spec at that end of beveled edge. So that one can get tapered bevels. Another way would be to have a “taper” parameter, but that has the problem that you don’t know which end is which (a similar problem to the “which end is up” we have for custom profiles in the GSoC project). Your idea solves that.

As you probably can tell, the current use of the vertex weight is only to be an “on/off” switch. If the value is < 0.5 then it is “off”. If we used your proposal without making it optional, it might break older models that use funny values for vertex weights. Though this seems unlikely to me.

I will keep this idea in mind.

2 Likes

Not necessary on the extremities, but on every parts like the bevel weight or vertex weight.

4 Likes

There have been a couple of people on RCS asking for something like this, but this would be the most appropriate one I think:
https://blender.community/c/rightclickselect/ZFcbbc/\
Some kind of fall off system. This gif shows a widget being used for that, but I don’t know how we would seamlessly incorporate that into blender, as I don’t know modo at all, and am not sure at what step in the bevel process that the widget should show up. I suppose if we wanted to take that route it could be a tick box in the operator pop up box, and in the modifier. If ticked, then a widget appears.

Widget or not, I agree that I like the idea of having the bevel weights not being an “on/off” switch. If they correspond more to a 0-1 float range, then we could have excellent control. It might not be the speediest method in practice, but it sure would be flexible.

I would image in the future if we had a vertex group node, we could randomly assign bevel values to different vertices, and get some pretty wild results!

1 Like

Actually, after thinking about it, I don’t like the widget idea, it reduces flexibility. With a widget like the one in the gif in the link, you can’t create bevel profiles that grow and shrink within the same bevel. It’s also fairly quick to go through the vertices manually and adjust the weight just like that.

1 Like

I want to remind people (and myself!) that I have a design task where I’ve tried to gather all of the requested improvements / hard-to-fix bugs / feature requests:

https://developer.blender.org/T48583

We tend to get the same suggestions repeated and I myself have sometimes forgotten that they are already on that list. OK for this thread to try to raise my awareness of the importance of some of these suggestions, but we needn’t go over them in great detail again if they are already on the list.

5 Likes

@Alberto

The following are from previous posts about such features;

Color ramps, and other maps could also be used to control the vertex distribution of the bevel.

Are there any plans to get this functionality incorporated sometime soon:
https://developer.blender.org/D4328
Seems like it’d be incredibly useful for non-destructive modeling. I think it would be even better if the boolean modifier would output a new vertexgroup (for the new edges) that could then be used for the bevel modifier for even more precise control.

Outputting a vertex group for the new vertices created was the first thing asked for in this thread actually.

I encourage everyone to look at this to see what is planned for bevel and what is not :

https://developer.blender.org/T48583 12

I see what you mean. The suggestion I were talking about was only tangentially related to the bevel modifier, so I think there might have been a bit of a misunderstanding. What I were asking for was for the boolean modifier to mark the border of the intersections it creates to be made part of a vertex group, so that this border could then picked up by a bevel (modifier) that is limited to only the intersection itself. So the bevel modifier wouldn’t need to make any new vertexgroups. This is similar to what the patch I linked to talks about (only this patch talks about giving the new border a bevel weight, instead of vertex group).

I’m not sure what you’d want to use a vertexgroup from all the bevelled edges for to be honest, but that seems like a completely separate thing from what I’m talking about.

Oh I see now, I miss-read. Sorry! :zipper_mouth_face: