"Print" the high-poly's detail onto the low-poly's textures, so a lightweight low-poly reads like a mesh with hundreds of thousands of faces. This step produces the normal map and other core textures — the inputs for texturing (07).
Picking up from Modules 04 + 05: you have a clean low-poly aligned to the high-poly, plus a good UV unwrap — baking marries the two, cooking the high-poly detail into the textures.
The principle: ray-project the high-poly geometry onto the low-poly surface, record the surface direction per pixel, and store it as a normal map. In-engine, put that map on the low-poly, light it, and it shows every bump of the high-poly — at a fraction of the face count.
Key insight: a normal map can only "fake" surface relief — it can't change the silhouette. So the low-poly's outline has to be right back in Module 04 — baking can't rescue a crooked silhouette.
More than just the normal. This set drives the materials and wear effects in Module 07:
Normal: must bake · fakes the high-poly's surface bumps on the low-poly (tangent space)
AO (ambient occlusion): self-shadowed darks in cavities and seams (deepen, dirty up)
Curvature: edge convex/concave info (drives wear, edge highlights)
Material ID: paint each part a flat color (instant per-region select while texturing)
Thickness: light-through / subsurface zones (ears, cloth edges (optional))
Position / Height: gradient / height info (optional, drives procedural effects)
During a bake, rays shoot from the low-poly surface toward the high-poly to sample it. The cage is a slightly inflated copy of the low-poly that wraps the high-poly — it dictates which direction the rays fire and how far.
Use a smooth (averaged) cage: it ignores the low-poly's own normals and projects uniformly from a smoothed direction, so hard edges don't split and leave gaps. This is the recommended approach in most cases.
Set the ray distance to just cover the whole high-poly: too short and the high-poly's protruding parts don't get sampled (black spots); too long and you sample neighboring faces you shouldn't (crosstalk).
Pair low and high by suffix — character_low / character_high — and the baker (Marmoset Quick Loader / Substance) groups them automatically. Wrong names = no match.
Triangulate before baking, and make sure the triangulation matches between the baker and the engine — otherwise the normals go wrong in-engine.
If the high-poly has holes, rays hit nothing and you get black spots. Seal the holes first.
Apply Transform on both low and high (reset position/rotation/scale), and keep the low-poly snug against the high-poly (already done in Module 04).
GPU baking, real-time preview, paint cage/skew in the viewport. What-you-see-is-what-you-get, the industry gold standard — our top pick for this section.
Paid · fastest at spotting flawsCycles' Selected to Active bake, with a cage + ray distance. Free and good enough, but no real-time preview — "blind baking" is slower.
Free · all inside BlenderBake right inside your texturing app (Bake Mesh Maps). If Substance is your next step, baking there is the least hassle.
Seamless into 07If Module 04 used Meshy/Tripo auto-retopo with baking on, the normal is already generated. Quality is so-so, but fine for background characters.
Fast · so-so qualityName them _low / _high, then import into the baker. Matching names auto-form a single Bake Group. Split a complex character into groups by part (body, weapon, helmet each their own group) so they don't cross-talk.
① The cage decides everything. Nine out of ten bake flaws come from a cage that doesn't wrap properly. Get the cage right before you talk textures.
② Tangent space and triangulation must match the engine. Looks great in the baker but blows out in-engine? Nine times out of ten these two don't line up.
③ Normals fix the surface, not the silhouette. Rippling or a wrong outline is a low-poly/segment problem — go back a step to fix it, don't grind on it in baking.
▸ All three pass → on to Module 07: texturing + materials (◐ AI + hand-fix).