Bevel Modifier with different weights

I’m using the bevel modifier and running into some issues. I like working with the modifier so my mesh is easier to edit, and I recently found out about bevel weight for edges but I’m not sure how to overcome an issue.

I can’t use vertex groups because of the above example - the two lines highlighted are what I want to bevel but the two vertical lines get bevelled since they share vertices.

So I’m using the bevel weight under edge data. Suppose I want to have a larger bevel on the red lines, then a smaller bevel on the blue lines. Just bevelling in edit mode is no problem

But if I use bevel weight, add the modifier and set the limit mode to ‘weight’, then give the blue lines a smaller weight I get this:

What am I doing wrong, it seems as though bevel weight is useless unless every edge is either 0 or the same value. Are there any addons that are great for bevelling? It’d be nice if you could also set the number of segments for non touching edges in a non-destructive way.

(Clamp overlap is on, but it happens no matter what my offset is set to. Normals are correct. Neither offset, width, or depth mode make any difference. I made the box examples just to make sure I made my question clear but it’s happening on everything.)

Did you applied the object scale? Bevel don’t like it

1 Like

Hey. Location, rotation and scale are all applied.

Inner Miter :wink:

Thanks, that does at least improve it. I think ultimately though what I am trying to do can’t be done without edge groups, which Blender does not have.

Well… It can be done, just perhaps not the way you would like. You could use either vertex groups and several bevel modifiers, or booleans.

I’m not sure if it can, but you seem to know more about this topic, and I appreciate your help.

This is a really generic corridor support, chunky sci-fi thing. It has two bevel values, one on the edges that make up it’s arching shape, and another smaller bevel on the two small joins. This is how I want it to look - this has no bevel modifier, the bevel tool was used.

Setting the inner to Arc helps the smaller bevel but ultimately is not okay no matter what Spread I use. It also then messes up the larger bevels further up the arch.

I cannot distinguish these bevels using vertex groups because the vertical edges and the smaller bevelled horizontal edges share vertices. I could add extra loops but since it’s game related I don’t want to have to add extra loops to everything that has bevels, and also it defeats my aim of making it easy to edit.

Like you said I think it needs two bevel modifiers applied one after the other but there is still no way I can see to set specific edges to each modifier. I’m not sure how I can use booleans to help?

OK… Bevel modifiers get applied when exported to realtime engines, so they create geometry anyway. A few control edges aren’t going to kill your performance if you’re already making enough geo to have smooth bevels. Performance is faces/pixel density which is why LOD’s work-- It doesn’t have to decide which face is taking up those pixels from light bounces. The more faces it has to pick from to represent less pixels than there are faces, the longer that frame takes to render.

Are you trying to avoid normal maps? Generally that’s what you would do for clean bevels, but it consumes more vRAM and requires different shader strategy. However you do it, you’ll need autosmooth enabled, sharp edges marked and possibly weighted normal modifier so it exports smooth normals. This is what is called “smoothing groups” in other DCC’s. (read more in this amazing post: Unable to bake Normals the way I want them to (Smoothing & 90° angles))

A boolean would cut the bevels in while keeping the editable state of the modifier stack. So one would be the bevel modifier and the other would be the boolean. It can be a little frustrating to get sorted, but it can be helpful. You can put bevels on the boolean cutter as well as bevel modifiers on the target. Combined it can have different control methods and automatically mark edges, etc.

For smaller details, it might be enough to do it in a normal map if you’re going to use them. You can even use the bevel node for that when you bake the normal map. You can pack the hallway details of several meshes into a single texture set to save draw calls.

You might just skip the bevels and use autosmooth and/or weighted normal modifier…

and with autosmooth and a weighted normal modifier it looks like this:

I should’ve attached an example, sorry. You can do it a couple ways.
RT_Bevels.blend (562.1 KB)

I’m using triplanar mapping (so no normals), that’s why I wanted to avoid any extra verts wherever possible. It’s not breaking performance wise but beyond allowing me to use modifiers in blender they are verts that serve absolutely no purpose. The approach I am using is similar to in Alien Isolation - geometric bevels, segments depending on size, with weighted normals.

I think I’m just going to go without modifiers and duplicate stuff before I bevel it.

Maybe someone already said this, but can’t you use two different Bevel Modifiers set to different Vertex Groups?

Only if the edges you want to bevel differently do not share any vertices. The guy who posted the proposal recorded an example linked in his post:

Using two different bevel modifiers is ideally what I would like to be able to do.

Which of these is not serving a purpose in the bevels?

The bottom and top loops with no weight. With hardened normals they are not necessary

They control the width of the bevel in that case so it’s a sharper, readable bevel.

I suppose I should have said ‘for my purposes’, as I do not need to control that. I am using bevels like this:

When used like in the two cuts in this image

You can’t use two bevel modifiers since you can’t distinguish the horizontal and vertical edges with vertex groups, and a single modifier with different bevel weights gives ugly results. This is why I hope for edge groups as in other similar software.

Did you look at the example file I uploaded? There are 2 bevel modifier and 3 bevel modifier versions. I dislike the 3 bevel modifier version because it goes from 124 tris to 160 tris, but it would let you do it with vertex groups all with bevel modifiers. I do get what you’re saying though. It would be nice to have edge groups.