The 3D Handbook
Topic

Baking

Transferring detail and information from a high-poly mesh (or the low poly itself) into textures; what each common map stores and is used for, the main bakers, a reliable workflow, naming, anti-aliasing and resolution.

bakingtexturingnormal-mapshigh-to-low

Baking means calculating information about a mesh and saving it into a texture. Adobe's definition: "Baking is the name of the process about saving information related to a 3D mesh into a texture file" (Substance 3D Bakers documentation: What is baking?). In game art the most common case is the the high-to-low workflow: detail from a dense high-poly model is "transferred onto the second mesh UVs and then saved into a texture" (Substance 3D Bakers documentation: What is baking?).

The low poly stays cheap to render, while its normal map makes it shade as if it had all the high-poly bevels, bolts and panel lines. Other baked maps feed the texturing stage: Adobe notes that "many filters and materials can adapt to the specific geometry of a 3D mesh by looking at the baked textures" (Substance 3D Bakers documentation: What is baking?).

A detailed slab with grooves and bolts, a plain box, and the plain box showing the baked details.
Left: the high poly, 2,076 triangles, with bevelled edges, two grooves and eight bolts modeled as separate pieces sitting on the surface. Middle: the low poly, a 12-triangle box. Right: the same box with a normal map baked from the high poly (Cycles, tangent space, 1024 px). The grooves, bevels and bolts appear in the shading, but the silhouette stays a plain box.Rendered in Blender 5.2 (Cycles) by the handbook author

#How a bake works

A cross-section. A flat grey low-poly line, a black high-poly line with a raised rivet and a sunken groove, and a dashed orange cage line above both. Grey arrows run down from the cage, and orange dots mark where each first hits the high poly. Below, a row of pixels each contains an arrow; most point straight up, while pixels under the rivet and groove sides point at an angle.
Each pixel of the low poly's UV layout sends a ray. The ray records the first high-poly surface it hits, and the pixel stores that surface's direction (normal map), occlusion, height and so on.Diagram by the handbook author

For each pixel in the low poly's UV layout, the baker finds the matching point on the low poly and casts a ray. Substance's settings describe the search range: the frontal distance "controls how far above the low-poly surface the ray should start", and the rear distance how far below it should stop (Substance 3D Bakers documentation: Common parameters). Instead of distances you can use a cage, "essentially a copy of your low poly that expands outward to enclose the high poly" (Marmoset: The Toolbag Baking Tutorial). See bake cage.

This only works if the low poly has unique, non-overlapping UVs for the baked maps. See UV mapping and UV packing and padding.

#The maps and what they are for

Map What it stores Used for
Normal (tangent space) Surface direction of the high poly relative to the low poly Real-time shading detail on the low poly. See normal map and tangent space and MikkTSpace
Ambient occlusion (AO) How much ambient light reaches each point Contact shadows and dirt masks. Substance offers a Cosine distribution "more suited for shading and lighting" and a Uniform one "more suited for layer masking" (Substance 3D Bakers documentation). See ambient occlusion
Curvature Convex edges and concave cavities "Generating masks for scratches, recessed dirt, and other effects" (Marmoset)
Thickness How thick the mesh is at each point, by casting rays inward (Substance 3D Bakers documentation) "A Sub Surface Scattering (SSS) shader or for masking textures"
Position Mesh position in RGB, "otherwise known as a gradient map" (Marmoset); Substance can also store one axis in greyscale (Substance 3D Bakers documentation) Top-to-bottom gradients, such as dust on top or moss at the base
ID (material or colour ID) "A unique color for each material assigned to your high poly objects" (Marmoset); Substance can also use vertex colour, mesh or polygroup IDs (Substance 3D Bakers documentation) Quick selection masks in texturing: "to bake polypaint or material IDs to create selection masks"
Height Distance between high and low poly, within inner and outer limits in scene units (Marmoset) Parallax, tessellation, or blending. See height and displacement maps
Bent normals "The average direction of ambient lighting" (Substance 3D Bakers documentation) Simulating complex lighting "with certain shaders" (Marmoset)

In texturing software, maps such as AO, curvature and position mainly feed filters, generators and smart materials that adapt to the mesh's shape (Substance 3D Bakers documentation: What is baking?). Only ship the maps your engine's shader actually reads; often that is the normal map plus an AO channel in a packed texture.

#Bakers

Baker Notes
Substance 3D Painter Bakes inside the texturing app. Cage options: distance based, automatic (experimental) or a custom cage file (Substance 3D Painter documentation)
Marmoset Toolbag Bake groups, painted cage offset and skew, outputs up to 8192 × 8192 (Marmoset); Toolbag 5 added interactive baking previews and UDIM baking (CG Channel)
Blender (Cycles) Free. Bakes Normal, AO, Roughness, Emit and other passes; Selected to Active with an optional cage and extrusion (Blender Manual)
xNormal "A free app to bake texture maps like normal maps and ambient occlusion", for Windows (xnormal.net)
Knald Bakes normal, bent normal, height, occlusion, curvature, transmission, vertex colour and material ID maps (knaldtech.com)
Houdini Labs Maps Baker transfers and generates maps such as AO, thickness, curvature and position, but is being replaced by the Bake Geometry Textures COP and the Karma Texture Baker (Houdini documentation; Houdini documentation)

For platforms and licence models, see UV, retopology and baking tools.

#A reliable workflow

  1. Finish the low poly and its UVs. Hard edges must sit on UV seams; Marmoset: "break apart your UV islands along all hard edge borders" (Marmoset: The Toolbag Baking Tutorial). See smoothing, hard edges and smoothing groups.
  2. Triangulate the low poly before baking and export. Adobe explains that there is "no standard" way to split quads and n-gons, so a different triangulation in the engine causes artefacts (Substance 3D Bakers documentation: Triangulating before baking). See triangulation.
  3. Line up high and low. Both meshes in the same place, same scale, transforms reset.
  4. Name the parts. Use matching _low and _high suffixes. See naming below and bake groups and exploded bakes.
  5. Set up the cage or ray distances so the cage encloses the high poly. See bake cage.
  6. Match the tangent space to the target engine. See tangent space and MikkTSpace.
  7. Bake a quick, low-resolution test, check it on the model in a viewer, fix problems, then bake final quality.
  8. Check in the engine with the final material, under lighting similar to the game's.

#Naming conventions

Name-based matching pairs each low-poly part with its high-poly part, so parts only bake onto themselves. Substance uses the default suffixes _high and _low; the feature is "off by default" and "case sensitive" (Substance 3D Bakers documentation: Matching by Name). Marmoset's quick loader sorts objects into bake groups from their names and is not case sensitive, so "object_HIGH" and "object_low" can be mixed (Marmoset: The Toolbag Baking Tutorial).

A safe habit that works in both: crate_lid_low, crate_lid_high, crate_body_low, crate_body_high. Keep names lowercase and unique. See also naming conventions.

#Anti-aliasing and resolution

Anti-aliasing. Without it, edges in the bake come out jagged. Substance offers subsampling at 2 × 2, 4 × 4 or 8 × 8, noting it "can significantly increase baking time" (Substance 3D Bakers documentation: Common parameters). In Marmoset, "Samples determines the quality of the anti-aliasing" (Marmoset: The Toolbag Baking Tutorial).

Resolution. Substance defaults to 2048 px (Substance 3D Bakers documentation: Common parameters). Bake at least at the final texture size; many artists bake larger and scale down. Detail size matters: Marmoset warns "Details smaller than 1 pixel will not be recorded properly" (Marmoset Toolbag documentation: Baking Tips & Tricks). The 80 Level hard-surface guide advises you to "exaggerate your chamfers" so they read at your normal map resolution, and to bake "as large as possible" (80 Level: Best Practices for Hard Surface Normal Map…). Aliasing along UV borders also drops with higher resolution and UVs aligned to the pixel grid (Substance 3D Bakers documentation: Aliasing on UV seams).

Bit depth. Bake normal maps in 16-bit. The Warframe guide warns that "Upressing from 8bit to 16bit won't help if you've accidentally done it in 8bit" (Warframe Steam Workshop guide: Normal Map Baking). Marmoset notes many renderers still require an 8-bit normal map in the end, but some artists keep 16-bit sources "in order to defer dithering to the final stage" (Marmoset: The Toolbag Baking Tutorial).

#Common mistakes

For diagnosing specific errors, see fixing baking artefacts.

#Further reading and watching

Covers mesh preparation, cage adjustment and troubleshooting in one sitting; a good companion to the workflow list above. Watch on YouTube

References

  1. Adobe · What is baking? · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  2. Adobe · Common parameters (Substance bakers) · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  3. Joe Wilson · The Toolbag Baking Tutorial · Marmoset, 2017 · article · accessed 2026-10-21
  4. Adobe · Ambient Occlusion from Mesh · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  5. Adobe · Thickness Map from Mesh · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  6. Adobe · Position Map from Mesh · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  7. Adobe · Color Map from Mesh · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  8. Adobe · Bent Normals from Mesh · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  9. Adobe · How to bake mesh maps · Substance 3D Painter documentation · docs · accessed 2026-10-21
  10. Jim Thacker · Marmoset releases Toolbag 5.0 in free public beta · CG Channel, 2024 · article · accessed 2026-10-21
  11. Blender Foundation · Render Baking (Cycles) · Blender Manual (2.93), 2021 · docs · accessed 2026-10-21
  12. xNormal · xNormal · xnormal.net · tool · accessed 2026-10-21
  13. Knald Technologies · Knald · knaldtech.com · tool · accessed 2026-10-21
  14. SideFX · Labs Maps Baker 5.0 geometry node · Houdini documentation · docs · accessed 2026-10-21
  15. SideFX · Karma Texture Baker LOP · Houdini documentation · docs · accessed 2026-10-21
  16. Adobe · Triangulating before baking · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  17. Adobe · Matching by Name · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  18. Marmoset · Baking Tips & Tricks · Marmoset Toolbag documentation, 2025 · docs · accessed 2026-10-21
  19. Simon Péloquin (guide); Arti Sergeev (editor) · Best Practices for Hard Surface Normal Map Baking · 80 Level, 2018 · article · accessed 2026-10-21
  20. Adobe · Aliasing on UV seams · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  21. Digital Extremes · Normal Map Baking · Warframe Steam Workshop guide · docs · accessed 2026-10-21
  22. Polycount forum (ZacD, GreyJke, jaker3278) · Recommended software for baking normals/ambient occlusion maps? · Polycount, 2018 · forum · accessed 2026-10-21

Also consulted

Last updated 2026-10-22