What is the correct way to bevel a smoothed object in Blender (using modifiers)?

I am trying to model something that (almost) looks like this, and I would like to use modifiers wherever possible:

Basically I want the sides of the objects to be smooth, and the edges/corners of the shape to be beveled. The edges/corners are all marked at 100% crease and bevel value.

My problem:

  • If I order my modifiers to bevel first and smooth second, I get the above image. It’s the best result so far, but the normals of the object are wrong near the edges. You can easily see a gradient (indicated by red arrows) near the edges.
  • The corners are slightly improved if I subdiv first and bevel second (using angle, not weight because the subdiv op destroys bevel marking), but the gradients are still there along the edges.
  • I can mark the edges as sharp and throw in an edge split, and that removes the gradient, but now the corner normals don’t blend continuously with the sides - and there’s problems with the way the mesh is smoothed near the corners.

Is what I want even possible with modifiers? Do I just have to throw in support loops, or bevel by hand? That seems to defeat the point of dynamic operators- so I can’t help but think that there’s a better way.

Bevel is usually not used with the subdivision modifier due to it creating triangles (the subdivision modifier doesn’t like triangles and Ngons)

I’m not exactly sure what you want,something like this perhaps?


Beveled shape.blend (506 KB)

Sure, those look nice.
The support loops on the edge prevent that “normal gradient” from bleeding into the side faces of the mesh.

I’m fine with doing that - I’m just wondering about the best way to non-destructively (and consistently) edit mesh in Blender.

Does bevel always make a triangle? If you do an even number of segments, a triangle isn’t needed on a corner… (tries) yeah there we go! That works.
But the smoothing still does odd stuff at the corners.

Maybe OpenSubDiv will open up some new options. I think it does adaptive smoothing … so it’s not as wasteful to round off a corner by cranking up the subdivs

This is how I’ve been doing it. This whole mesh is 20 verts. Basically you use bevel first, with a higher angle a little less than 90 degrees, it will tighten with more segments. And you can adjust the bevel width easily, and by putting the subsurf after it you avoid the tightened faces and get smoothness over the entire object. 20 verts, easy to modify and perfect shading.

Oh cool!

Thanks Photox! That seems to work fine. It was setting the creases that was messing me up - but they’re not needed if that initial bevel is there.