Bevel - Best Practice

so what’s the best way to do bevels that do not contain any angles higher than the 30º that auto-smooth sets?

do we increase the number of segments until no edge is higher than 30º?

do we set a custom angle as the cut off for being a harp edge? is this good if the models is going to be used in a game engine that doesn’t support or happens to read the custom normals incorrectly?

i want a small bevel on a small object, but i have to increase segments to achieve no angle higher than 30º and it seems overkill to add so many segmants. what’s the best practice?

I would ususally set the bevel to whatever is needed for a nice silhouette, then adjust the auto-smooth angle so it works with the bevel.

A bevel with too many edges will add not just lots of polygons, but those polygons will also be long and thin (which renderers hate). For this reason, I would say the bevel’s settings take priority and you then adjust the shading to work with it.

Also, you can use the weighted normals modifier to improve the bevel’s shading, so that’s a useful tool that shouldn’t be forgotten in all of this and it can allow the use of lower resolution bevels.

Are there game engines that don’t read custom normals? I would think this is a rather basic feature for a 3D software.

1 Like

perhaps not game engines. perhaps some other types of software. i know i remember reading something abut the custom normals info possibly being lost; perhaps it was regarding conversion between 3d filetypes.not sure.

so is it commonplace that, for example, one buys a 3d model and upon importing it into an engine, one has to change the angle setting for that model? i see the benefit of less faces, but that info sounds like a “must-inform” as part of sharing or placing a 3d object up for sale.

or do 3d file types contain that info? because Daz, for instance, doesn’t receive that info from an obj - we have to manual set at which angle the engine should treat an edge as smooth.

I haven’t bought models in the past for use in game engines. However, I have exported models between Blender, Maya and Unreal, using multiple file formats. Custom normals are perfectly exportable between these programs at least.

If models you bought were not correctly set, I would guess that at least some must have been modeling mistakes, maybe the artist was poorly experienced and didn’t even know about exporting normals. Or they were models that were in less standard formats that don’t support it.

1 Like

What i would did is first: make sure that engine really doesnt not support importing custom normals.
If it really is, when obviously, make a bevel with 4 segments to get <30deg. is unfortunately necessary.
Second: what about normal maps? If they allowed i would run a test with normal maps VS bunch of objects with 4seg. bevels.
Im not sure, but honestly i think bevels may win that battle (despite of long thin triangles).

that poorly experienced artist would be me.
i’ll have to read up again on custom normal exporting, and see where i read that these can be misread or altogether ignored. perhaps it’s not even a pertinent issue and i read something and conflated an extreme case with regular occurrence.

i another question then. using weighted normals (which i just added and it fixed all the shading mistakes that are occurring on my model for no apparent reason. and this modifier create custom normal data.

the auto smooth however doesn’t seem to, as there no custom normal data i can remove from the geometry panel for the object.

when i select auto-smooth does it not change the object’s normals? and store that info, so that we can export it? is it not changing normals? or is it just internal to blender? (to look nice in the viewport and in renders, but not for exporting)?

i’m still getting to grips with normals themselves and the auto-smooth option, and what it does. normals maps to me, so far, mean material bumpiness. didn’t even equate it with edge shading…

The shading problems are happening because smooth shading spreads from one face to the next. This means that a bevel that’s smooth shaded will have its curved shading leak onto the flat faces that surround it. The fewer edges you have in the bevel, the more the leak will be noticeable, because the angle between them is bigger.

Weighted normals prevents the shading of small faces from leaking onto larger faces. This means the curved shading will end with the border of the bevel and the large faces will be flat shaded.

This depends on which version of Blender you are using, as they changed it in 4.1.

  • In the current version (4.1), it indeed seems that the auto-smooth is a separate process from the custom normals/weighted normals and cannot be applied as a part of it. It still exports to .obj just fine as long as you check “normals” in the export settings.

  • In the older versions, the auto-smooth becomes part of the custom normals when they are created.

1 Like

Normal maps are basically custom normals in texture form.

While you can use them to add little bumps for detail, you can also bake the normals of a high-poly object onto a low-poly equivalent. This basically allows the low poly object to have the normals of the high detail mesh.

After baking the normals of a high-poly object onto a lower version, the normal map can be used not just for detail, but as a way to handle the shading over the entire mesh.

Here is an example, where I baked the normals of a beveled cube on a basic cube that was smooth shaded. The shading should look all messed up, but the normal map compensates, acting like high-detail custom normals that even allow for the edge detail of the beveled cube to be transfered to the low-poly cube.

normal_map_example.blend (2.0 MB)

1 Like

awesome stuff- thanks very much for these lessons @etn249 - much appreciate the detailed answers!

1 Like

@etn249 I’ve selected your first reply as the answer to my original question. ill consider best practice to keep poly count low and use normal data (whether with custom normals or by normal textures - answered by @SoundDifferent).

thanks guys!

1 Like