Normal Map Baking — Common Errors and How to Fix Them
Normal map baking errors are one of the most frustrating parts of the game art pipeline. Dark patches appear out of nowhere, seam lines show up exactly where you don't want them, and shading goes the wrong direction in-engine. This guide breaks down every common error and exactly what to do about each one.
UV Seam Lines
The most common baking artifact: dark or bright lines visible exactly at UV seam boundaries. They appear because the bake samples slightly differently on either side of a UV island edge, creating a visible discontinuity right where two islands meet.
Black Spots and Shadow Bands
Dark patches appearing on the baked normal map — not at seams, but in the middle of faces — indicate areas where the baker's rays hit the inside of the mesh or missed the high-poly surface entirely. This is one of the trickier errors to diagnose because the cause isn't always immediately obvious.
Smoothing Group Errors
Diagonal shading artifacts — dark bands running across faces that should be flat — almost always come from incorrect smoothing group setup. This is the error that trips up the most beginners because everything looks fine in the modelling software but breaks in the engine.
The rule is simple but critical: every UV seam must be a hard edge, and every hard edge must have a UV seam. When this relationship is broken, the tangent space used for baking doesn't match the tangent space the engine uses at render time — and the result is visible banding across faces.
The Green Channel Flip — Inverted Normals in Engine
If your baked normal map looks correct in your baking tool but shows inverted lighting in-engine — bumps appear as dents, highlights go the wrong direction — you have a green channel mismatch. This is caused by two competing normal map conventions used by different software and engines.
DirectX convention (Y-)
Green channel points downward in texture space. Used by: Unreal Engine, most Microsoft tooling, older game engines. Normal maps baked for DirectX have a darker green in the upper portions of curved surfaces.
OpenGL convention (Y+)
Green channel points upward in texture space. Used by: Unity, Godot, Blender, most modern tools. Normal maps baked for OpenGL have a brighter green in the upper portions of curved surfaces.
| Engine | Normal Map Convention | Green Channel |
|---|---|---|
| Unreal Engine 5 | DirectX | Y− (inverted) |
| Unity | OpenGL | Y+ (standard) |
| Godot 4 | OpenGL | Y+ (standard) |
| Blender viewport | OpenGL | Y+ (standard) |
Pre-Bake Checklist
Most baking errors are preventable. Running through this checklist before every bake catches the vast majority of issues before you commit time to a full bake — only to discover a problem in the output.
Mesh setup
- High poly and low poly are aligned in world space — both meshes perfectly overlapping at world origin
- All transforms applied on both meshes — scale (1,1,1), rotation (0,0,0)
- Face normals pointing outward on both meshes — check with Face Orientation overlay
- No interior faces or duplicate geometry on the low poly
UV setup
- Low poly fully UV unwrapped with no overlapping islands in channel 0
- All UV islands within the 0–1 space
- Adequate padding between islands — at least 8px at 2048 resolution
- Every UV seam is a hard edge and every hard edge has a UV seam
Baker settings
- Baking in Tangent Space — not Object Space or World Space
- Correct normal map convention selected — DirectX for Unreal, OpenGL for Unity/Godot
- Edge dilation / margin enabled in baker output settings
- Output resolution is power-of-two — 1024, 2048, or 4096
- Ray distance / extrusion set appropriately for the gap between high and low poly
Baking Normal Maps in Trumble
Trumble's Bake tool is designed to minimise the configuration needed to get a clean normal map. Import your high and low poly meshes, set the extrusion distance, choose your target engine convention (DirectX or OpenGL), and bake. Edge dilation is applied automatically to the output.
After baking, inspect the result in Trumble's 3D viewport with a neutral grey albedo and a test lighting setup. Any seam lines, black spots, or shading artifacts are immediately visible at this stage — catching them in Trumble is faster than discovering them after export and engine import.
Select your target engine and Trumble applies the correct DirectX or OpenGL normal map convention automatically — no manual green channel flip.
Preview the baked normal map on your mesh in real time before export. Rotate around the asset to check for seam lines, dark patches, and shading direction.
Trumble applies edge padding to every baked map automatically, reducing seam artifacts without any manual configuration in the output settings.