A Normal map is a texture that stores surface direction information (normals) in RGB colors. It fakes surface details - like bumps, bevels or fine sculpted features - without adding more geometry.
Each pixel in a normal map encodes a direction:
A perfect flat surface pointing straight out will be: R 128, G 128, B 255 (a pure bluish-purple color). Color shifts (gradients) show how the surface tilts from pixel to pixel.
Even on hard-surface models normal maps must simulate smoothing between faces that don’t have actual bevels in geometry. That means:
Without these gradients lighting would appear flat, faceted or broken.
Gradients in Normal maps are not inherently a problem - they're expected in many situations. Some common legitimate cases include:
In all these cases the gradient must be smooth and predictable. Sudden shifts, inconsistent patterns or noise can be signs of trouble.
In other cases gradients on Normal map could be symptoms of technical problems:
|
|||||||||
1. Inverted normals or incorrect smoothing groups |
If a lowpoly mesh has incorrect vertex normals or smoothing groups it can produce sharp, inconsistent gradients or shading seams where there shouldn’t be any. |
|
|||||||
2. UV shells not properly split or mismatched |
If UV shells span areas with different surface angles (e.g., a 90° corner with no UV split), the baked normal map might try to “average” conflicting data leading to warped or broken gradients. |
|
|||||||
3. Projection errors in baking |
When the ray distance is too short or too long or cage mesh is poorly matched the distorted gradients, shadowing artifacts or missed details shall appear. |
|
Normal maps are typically compressed using algorithms like BC5 (good), BC7 (better) or older formats like DXT5/BC3 (worse). Compression approximates color data and gradients play a big role in how well this approximation holds.
Gradients that are prone to artifacts
1. Subtle or smooth gradients in a small area |
A shallow normal gradient (e.g. a soft bevel or dome) may be poorly preserved under compression especially in DXT5. A banding (visible steps between colors) or blocky shading could appear. |
|
2. Diagonal gradients |
Compression algorithms work best along horizontal/vertical directions. Diagonal or radial gradients often result in more visible macroblocks or broken shading. |
|
3. Very fine details with color shifts |
High-frequency details in the normal map may get smoothed out or become noisy leading to loss of fidelity in baked sculpted patterns or surface texture. |
|
Normal maps are typically compressed using algorithms like BC5 (good), BC7 (better) or older formats like DXT5/BC3 (worse). Compression approximates color data and gradients play a big role in how well this approximation holds.
Gradients that are prone to artifacts
1. Subtle or smooth gradients in a small area |
A shallow normal gradient (e.g. a soft bevel or dome) may be poorly preserved under compression especially in DXT5. A banding (visible steps between colors) or blocky shading could appear. |
|
2. Diagonal gradients |
Compression algorithms work best along horizontal/vertical directions. Diagonal or radial gradients often result in more visible macroblocks or broken shading. |
|
3. Very fine details with color shifts |
High-frequency details in the normal map may get smoothed out or become noisy leading to loss of fidelity in baked sculpted patterns or surface texture. |
|
Gradients that survive compression better
1. Flat or uniform areas |
Flat surfaces with little to no change (pure blue or nearly so) compress extremely well as they require less data variation. |
|
2. Broad, even gradients |
Wide gradients that change slowly and uniformly across a large area will hold up better even under BC5 or DXT5. |
|
3. Hard transitions with UV splits |
If a surface has a hard angle and the UVs are properly split the sharp color change (no gradient) is preserved cleanly under most compression formats. |
|
Most normal map compression algorithms reduce precision and color fidelity to save memory. They encode vectors (RGB) with a fixed bit depth and fine details or color transitions get approximated. The more subtle and frequent the transitions the more chance the algorithm introduces errors like:
Compression-resistant gradients are those with either no change (flat) or very large-scale gradual change (broad bevels) which require less per-pixel fidelity to look correct.