1
$\begingroup$

despite the fact that I'm using Blender for a couple of years (non-professionally), I'm still struggling to create a good smooth shading of a low-poly model.

For example, in the screenshot below I'm trying to bevel one corner of a cube, then bevel one of its sides. When I apply smooth shading (setting auto smooth to 65 degrees) I get a messy looking surface. Can you please give me a hint what I'm doing wrong? Is it possible to get nice shading in this case at all?

PS: I'm creating models for exporting to a game engine, so first I make a low-poly, then I make a high-poly with Subdiv, and then bake one to another. As far as I understand it, the low-poly shading should not have any errors for a model to look nice in a game.

bevel 1

bevel 2

smooth shading

UPDATE: Here's what I got after following @moonboots advice (my actual model is a bit more complicated). I think this is the best I can get.

before applying modifier after applying modifier

$\endgroup$
2
$\begingroup$

With low-poly objects like this one you’ll have this kind of artefacts because Blender tries to smooth between these faces and Auto-Smooth won’t be able to fix it completely, it only takes the face angles into account.

A good way to improve your shading is to use the WeightedNormal modifier in addition to the Auto-Smooth option. This modifier, like Shade Smooth or Auto-Smooth, will act on the split normals. The split normals are the normals at each corner of the face that determine the shading between the faces. If they converge they will tend to round the shading, if they diverge they will tend to flatten the shading. Here, the same cube, the left one with Shade Flat, the right one with Shade Smooth:

enter image description here

The WeightedNormal modifier will make the split normals converge but their direction will take the face size into account: The higher the Weight value is, the more the large faces will weigh on the split normals. Therefore to preserve the large faces and to smooth the smaller faces, keep the value very low. Here, without and with the modifier:

enter image description here

Note that you can choose a vertex group.

$\endgroup$
6
  • $\begingroup$ Thank you, @moonboots . I've applied what you've suggested and now it looks better. I think this is the best I can get. I've updated my original post with new screenshots. $\endgroup$ – token_tu Apr 14 at 6:53
  • $\begingroup$ Yes I guess it can't be perfect, maybe try different WeightedNormal for different vertex groups? $\endgroup$ – moonboots Apr 14 at 6:57
  • $\begingroup$ I played a bit with it, but haven't seen any improvements. I think I'll just leave it as it is for now. Thanks again for highlighting the benefits of the WeightedNormal modifier for me, never used it before) $\endgroup$ – token_tu Apr 14 at 7:12
  • $\begingroup$ I may not have thought this through.. but wouldn't it be good to have a profile setting in Bevel that made the last generated face on each side exactly co-planar with adjacent large faces? I often do this by hand, with loop-cuts. $\endgroup$ – Robin Betts Apr 14 at 8:09
  • $\begingroup$ I'm not sure what you mean, maybe give your own answer to show it? $\endgroup$ – moonboots Apr 14 at 8:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.