Chamfering Edges

Overview

This tutorial provides an in-depth explanation of how to reproduce smooth bevels in a high poly mesh with a normal-mapped low poly mesh.

The following diagrams represent a high poly mesh with a rounded corner and the corresponding low poly mesh, in a cut-away side view:

Example 1

Low poly mesh with non-chamfered edge, separate smoothing groups. Normals are perpendicular to the polygon on the entire surface. Edge detail gets captured (see intersection points), but only if the edge of the low poly mesh touches the high poly mesh where the bevel occurs. Even then, the rounded bevel isn't accurately represented due to the sudden change of the normal orientation (see the sharp edge in the texture):

Example 2

Low poly mesh with non-chamfered edge, separate smoothing groups. Edge detail in the "deadzone" doesn't get captured because the low poly mesh is too far away from the high poly mesh. Note how the edge/corner appears almost 100% sharp in the render view:

Generally, sharp edges produce poor results, especially when the low poly isn't positioned so the corner of the low poly directly touches the high poly mesh.

Example 3

Low poly mesh with non-chamfered edge, unified smoothing groups. Normals are averaged across the surface. They are gradually interpolated from perpendicular to the surface (upper left) to 45 degrees at the corner. The result is a gradient in the normal map, and the rounded edge is represented accurately. Using this method is sufficient for representing rounded edges and even corners, however it fails if the final mesh is viewed at an extreme angle (see bottom picture).

Example 4

1-segment chamfer, unified smoothing groups (or smooth edges). The normals remain perpendicular to the surface until shortly before the bevel, which results in a softer gradient in the normal map, and the rays hit the high poly mesh at a less acute angle than with the method above (compare the diagrams), which results in less vivid colors in the normal map. The final result is slightly better compared to not chamfering the edges, however the most significant improvement can be seen when looking at it from an extreme angle (see bottom picture).


Left: No chamfer. Right: Two-segment chamfer.

In conclusion, it is best to use low poly meshes with unified smoothing groups, and then to chamfer edges and corners if they can be seen at extreme angles. However, it is not always necessary to chamfer low poly meshes.

Using very simple meshes can produce surprisingly good results if they are carefully matched to the high poly mesh.