The 3D Handbook
Guide

Fixing baking artefacts

A diagnostic guide to the common errors in baked maps (skewing, waviness, seams, ray misses, intersections, AO bleeding, gradients and jagged edges) with the cause of each and the fixes, in the order to try them.

bakingnormal-mapstroubleshooting

Most baking errors come from a short list of causes: the rays travel in the wrong direction, start in the wrong place, hit the wrong part, or the engine reads the result differently from how it was baked. This guide lists each common artefact, what causes it and how to fix it, in the order worth trying.

Before anything else, check the result on the model in the target engine, not as a flat image. Many "artefacts" are only a mismatch between baker and engine. See tangent space and MikkTSpace.

#Quick diagnosis

What you see Likely cause First fix
Details lean or slide sideways near edges Skewing from averaged normals Add support edges to the low poly, or paint skew
Straight lines turn wavy on curved parts Too few sides on the low poly Add sides to the low poly
A visible line along a UV seam or hard edge Hard edge without a UV split, tangent mismatch, aliasing Split UVs at hard edges, sync tangent space
Blotches, flat colour or noise in patches Ray misses (cage too small, holes in high poly) Enlarge cage locally, cap holes
Ghost copies of neighbouring parts Rays hitting the wrong part Bake groups or name matching, tighter cage
Dark shadows where parts no longer touch AO from separated or moving parts Adjust AO grouping; separate moving parts
Big rainbow gradients across faces High and low mismatch, inverted normals Reset transforms, check normals and overlap
X-shaped dark smudges Different triangulation in baker and engine Triangulate before baking
Jagged, stair-stepped edges Aliasing Anti-aliasing, higher resolution, straight islands

#Skewing

What it looks like. A round bolt bakes as an oval, or a vertical detail near an edge appears to lean toward the corner.

Cause. With an averaged cage, rays travel along the averaged vertex normals. Near a 90° corner those normals point diagonally, and across a large face they blend gradually toward straight. EarthQuake: "the normals get averaged, this means when the mesh projects out, its ray direction is skewed", and it "has nothing to do with cage distance" (Polycount: Normal map with weird angle).

Two box cross-sections with a tall rectangular detail standing on the top face near the left corner. Left, grey projection lines fan out from the face, leaning strongly near both corners; an orange bar shows the detail is recorded wider and further right than its true position, shown as a black bar. Right, the same box with two small orange support edges near the corners; the projection lines are vertical and the recorded position matches the true one.
Rays follow the averaged normals, so near a corner they lean and record a tall detail in the wrong place (left). Support edges close to the corners keep the rays straight over the face (right).Diagram by the handbook author

Fixes, in order:

  1. Add geometry to the low poly. EarthQuake: "add a little more geometry so that the rays aren't pointing in such a skewed direction", with the cuts "very close to the ends of the mesh" (Polycount: Normal map with weird angle). mikhga: "You can add in geometry in certain areas to reduce skewed details" (Polycount: Mobile Asset and Optimization. Tips Please).
  2. Use hard edges with UV splits at the corner. MoP: "Harden the edges around the ends, it'll change how the rays are cast" (Polycount: Normal map with weird angle). Combine with an averaged cage to avoid gaps; see smoothing, hard edges and smoothing groups.
  3. Paint skew in Marmoset, which blends "between the face normals of the low poly mesh and the cage normals" per pixel (Marmoset: The Toolbag Baking Tutorial).

#Waviness

What it looks like. Straight panel lines or bevels on a cylinder come out wobbly.

Cause. The low poly is a coarse approximation of a curved high poly, so the distance between them changes across every facet. mikhga: "you get waviness in your normal-map is because you have discrepancy between your low-poly and high-poly mesh"; the original poster was baking "a full 20 sided" high poly into "a 6 sided cylinder" (Polycount: Mobile Asset and Optimization. Tips Please).

Two circles representing a round high poly. Left, a hexagon inside the circle with large orange slivers between them, captioned largest gap 13.4 percent of the radius. Right, a 12-sided polygon inside an identical circle with thin orange slivers, captioned largest gap 3.4 percent of the radius.
Doubling the sides of a cylinder cuts the largest gap between high and low poly from 13.4% to 3.4% of the radius (1 − cos(180°/n)).Diagram by the handbook author

Fixes:

  1. Add sides. "Using an appropriate number of sides for curved surfaces reduces waviness", and "increasing the number of sides tends to be more effective" than bevels alone (Marmoset Toolbag documentation: Baking Tips & Tricks). Shadow2Matrix was told "a bevel should not be a quick fix for waviness" (Polycount: Mobile Asset and Optimization. Tips Please).
  2. Support edges and soft edges. mikhga made a copy of the low poly, "added in some support edges and then set all edges to soft" (Polycount: Mobile Asset and Optimization. Tips Please).
  3. Paint skew or edit the cage for the remaining wobble (Marmoset: The Toolbag Baking Tutorial).

#Seams

What it looks like. A visible line along a UV border, often on a hard edge.

Causes and fixes:

#Ray misses

What it looks like. Patches of flat colour, black areas, or random noise where the high poly should be.

Causes and fixes:

#Intersections and bleeding between parts

What it looks like. A ghost image of one part printed onto another, or smeared edges where parts touch.

Cause. "Sometimes the rays go too far and hit the wrong geometry" (Substance 3D Bakers documentation: Mesh parts bleed between each other).

Fixes: bake groups or matching by name; a cage instead of large ray distances; a lower ray distance (Substance 3D Bakers documentation: Mesh parts bleed between each other). Or explode the model: "Anything that is going to give you intersection errors should be exploded" (Polycount: Exploded Mesh or not exploded mesh?).

#AO bleeding

What it looks like. Dark contact shadows from a part that is not there in the game (a removable magazine, an opening lid), or missing shadows where parts do touch.

Fixes:

#Gradients and X-shaped errors

Rainbow gradients across a normal map usually mean "a mismatch between the high-poly and low-poly mesh", including inverted vertex normals (Substance 3D Bakers documentation: Normal map has strange colorful gradients). Check normals, reset transforms, and check name matching if you use it (Substance 3D Bakers documentation: Normal map has strange colorful gradients).

X-shaped smudges across quads come from different triangulation. Marmoset calls them "a type of tangent space mismatch" (Marmoset Toolbag documentation: Baking Tips & Tricks); Adobe shows black artefacts when the engine triangulates differently from the baker (Substance 3D Bakers documentation: Triangulating before baking). Triangulate before baking and export the triangulated mesh. See triangulation.

#Jagged edges and lost detail

#Further reading and watching

Shows Toolbag's skew painting fixing a skewed bake; watch after trying the geometry fixes in the skewing section. Watch on YouTube

References

  1. Polycount forum (EarthQuake, MoP, PredatorGSR and others) · Normal map with weird angle · Polycount, 2010 · forum · accessed 2026-10-21
  2. Polycount forum (mikhga, Shadow2Matrix and others) · Mobile Asset and Optimization. Tips Please · Polycount, 2015 · forum · accessed 2026-10-21
  3. Joe Wilson · The Toolbag Baking Tutorial · Marmoset, 2017 · article · accessed 2026-10-21
  4. Marmoset · Baking Tips & Tricks · Marmoset Toolbag documentation, 2025 · docs · accessed 2026-10-21
  5. EarthQuake (Joe Wilson) · Making sense of hard edges, uvs, normal maps and vertex counts · Polycount forum, 2012 · forum · accessed 2026-10-21
  6. Adobe · Seams are visible after baking a normal texture · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  7. Adobe · Normal map has strange colorful gradients · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  8. Adobe · Mesh parts bleed between each other · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  9. Polycount forum (EarthQuake, JamesWild, Kon Artist and others) · Exploded Mesh or not exploded mesh? · Polycount, 2013 · forum · accessed 2026-10-21
  10. Marmoset · Bake Groups · Marmoset Toolbag documentation · docs · accessed 2026-10-21
  11. Adobe · Ambient Occlusion from Mesh · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  12. Adobe · Triangulating before baking · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  13. Adobe · Aliasing on UV seams · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  14. Simon Péloquin (guide); Arti Sergeev (editor) · Best Practices for Hard Surface Normal Map Baking · 80 Level, 2018 · article · accessed 2026-10-21
  15. Digital Extremes · Normal Map Baking · Warframe Steam Workshop guide · docs · accessed 2026-10-21

Also consulted

Last updated 2026-10-22