Baking high-poly detail onto the low-poly
Baking is where the agent confidently produces a normal map full of skirts, waves, and black gaps — because it set a cage and ray distance it cannot see the consequences of, and a render thumbnail will not reveal the artifacts until they ship.
Choose your track
Read this module through your lens
What baking actually does
You cut the model to a triangle budget, which threw away real geometric detail — bolts, seams, fabric weave. Baking is how that detail comes back without the polygons: you keep a high-poly version and “bake” its surface detail into texture maps (a normal map for the fine bumps, an ambient-occlusion map for contact shadows) that wrap onto the cheap low-poly mesh. At a glance the low-poly looks almost as detailed as the high.
The catch is that a bake is a ray-cast transfer between two meshes, governed by parameters the agent sets without being able to see the result: which mesh is the source and which the target, a “cage” that bounds the rays, and a ray distance. Get those wrong and the rays miss, cross, or overshoot — producing skirts, waves, and black gaps in the map.
And crucially, the shaded model can look fine while the map is a mess. The advanced skill is to stop trusting the render and read the map.
The case study: a bolted panel
”Bake a normal map for this panel.”
The agent baked the low-poly onto itself — there was no high-poly in the pairing — so the normal map is flat blue and carries no bolt detail at all. On a second attempt with the high-poly included, it set a huge ray distance; now the bolts have skirts and the recessed areas show black gaps where rays shot past the surface. The shaded preview looked “mostly okay,” which is why it nearly shipped.
”Bake from HIGH panel_high to LOW panel_low using a cage. Set ray distance to ~3 mm, just past the deepest recess. Output a tangent-space normal and an AO map at 2K. Show me the raw maps and flag any skirts or black gaps.”
The normal map now shows crisp bolt heads, no skirts; AO has clean contact shadows. One recess still gaps — a 1 mm distance bump and re-bake closes it.
Read the map, not the render
The single habit that separates a usable bake from a shipped artifact: open the baked texture as an image and zoom in, instead of judging the shaded model.
A correct tangent-space normal map is a calm field of blue-purple with crisp detail where the high-poly had it. Skirts appear as bright halos bleeding off the edges of features — the signature of too-large a ray distance or a missing cage. Black gaps are where rays found nothing to hit, often from too-small a distance or a high-poly that does not fully envelop the low. The AO map should be clean soft shadows in crevices, with no banding or leaks across UV islands.
Why does the shaded render lie? Because lighting, base colour, and roughness mask map errors at a glance — the eye forgives a lot when there is a nice highlight. The map texture has nowhere to hide. Inspect it directly, every time.
Hands-on exercise
Take a model where you have both a detailed and a budget version (or add surface detail to a high-poly copy). Prompt a bake without specifying the pairing or distance, and inspect the raw normal map — note whether it is flat or full of skirts. Then prompt with explicit high/low pairing, a cage, and a ray distance tuned to the deepest recess. Screenshot the raw normal and AO maps, zoom in, and mark any remaining artifact and the distance change that fixes it.
Second case · a carved wooden sign
The same lesson, a different object
Bake a normal map for this carved sign.
First bake captured nothing — it baked the low-poly onto itself, so the map is flat blue with no letters. Second try used a huge ray distance, giving the carved letters bright skirts and black gaps in the grooves.
Bake from HIGH sign_high to LOW sign_low using a cage, ray distance about 2 mm past the deepest groove. Output a tangent-space normal and an AO map at 2K. Show the raw maps and flag skirts or gaps.
The letters now read crisply in the normal map, no skirts. One groove still gaps — a 1 mm distance bump closes it. Judged on the map, never the shaded render.
Common failures · spot them fast
The failure gallery
Baked from low onto itself (no high detail captured)
Wrong cage/ray distance -> skirts, waves, intersecting-geometry artifacts
Black gaps where rays missed the high-poly
Normal map in wrong space (object vs tangent)
Agent shows the shaded render, hiding map artifacts
Each of these is caught by a quality gate — keep the cheatsheet open while you work.
Worked example
See the journey
The pattern
Cheatsheet
Cheatsheet
Prompt skeleton
Bake from HIGH [name] to LOW [name].
Maps: normal (tangent), ambient occlusion.
Use a cage; set ray distance just past the largest surface gap (~[N] mm).
Match the low-poly UVs; output [resolution].
Show the baked normal + AO maps (not the shaded model) and flag any skirts/black gaps.
Failure modes
- Baked from low onto itself (no high detail captured)
- Wrong cage/ray distance -> skirts, waves, intersecting-geometry artifacts
- Black gaps where rays missed the high-poly
- Normal map in wrong space (object vs tangent)
- Agent shows the shaded render, hiding map artifacts
Key operations
- Pair high and low explicitly (selected-to-active)
- Set a cage; tune ray distance to surface gap
- Bake normal (tangent) + AO at target resolution
- Inspect the raw map textures for artifacts
- Re-bake problem areas with adjusted distance
Quality gates
- Does the normal map carry the high-poly detail (not flat)?
- No skirts, waves, or black gaps in the map?
- Tangent-space normal (mostly blue/purple field)?
- AO clean, no leaking/banding?
- Did you inspect the MAP, not just the shaded model?
Workflow steps
- Confirm high and low share UV-compatible layout
- Prompt the bake with explicit cage + ray distance
- Open the baked maps as images, zoom in
- Find skirts/gaps; adjust distance or cage; re-bake
- Log the map crops, before/after
Next module
- game_validation_and_export — passing the asset cleanly into an engine.
Reflection
Reflection card
Active retrieval — answer from memory before re-reading. Saved to this browser.
You've completed this module when…
- A bake with high and low explicitly paired and a stated ray distance.
- The raw baked normal + AO maps screenshotted (not the shaded model).
- One artifact (skirt, gap, or wrong space) identified and re-baked.
Next: game_validation_and_export — passing the asset cleanly into an engine.
Finish — back to Game Asset →