From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Custom Split Normals

Using custom normals for grass (image by yadoob, thanks).

Custom Split Normals is a way to tweak/fake shading by pointing them towards other directions than default, auto-computed ones. It is mostly used in game-dev area, where it allows to counter-balance some issues generated by low-poly objects (the most famous examples are the low-poly trees/bushes/grass/etc., and the 'rounded' corners).

Blender supports custom normals on a 'smooth fan' base, defined as a set of neighbor face corners sharing a same vertex and 'linked' by smooth edges. This means you can have normals per face corners, per a set of neighbor face corners, or per vertex.

Enabling Custom Split Normals support

First of all, to use custom split normals, you have to enable "Auto Smooth" option in the "Normals" panels of Mesh buttons. Please note that once you have custom normals, the angle threshold of the “auto smooth” behavior is disabled - all non-sharp-tagged edges will be considered as smooth, disregarding the angle between their faces.

Creating/Editing Custom Split Normals

Currently, editing is only possible by using the NormalEdit modifier.

You can also copy normals from another mesh using DataTransfer (operator or modifier).

Importing Custom Split Normals

Some tools, in particular CAD ones, tends to generate awful ugly geometries when tessellating their objects into meshes (very thin and long triangles, etc.). Auto-computed normals on such geometry often gives bad artifacts, so it is important to be able to import and use the normals as generated by the CAD tool itself.

There is now the needed helpers in Blender RNA, which allows import scripts to set custom normals from read data. Currently, only FBX importer uses it.