Automate Baking in Blender: Normal, AO and Curvature | Mixar

Automation guide

Baking in Blender without the settings ritual

Baking normal, AO and curvature maps in Blender: the settings that actually matter, why bakes come back wrong, and how to run the whole pass as one brief.

Mixar7 min read

Baking in Blender is not conceptually hard. Projecting detail from a high-poly mesh onto a low-poly one is straightforward. What slows people down is the ritual around it, and in Mixar that whole ritual is one instruction: the sixteen bake types are a menu rather than a setup exercise.

Mixar is a 3D editor built on Blender, so the bake settings below are the same ones you already know; what changes is that an AI agent inside the application can configure and run them for you. The ritual, for the record, is this: the image node has to be selected but not connected, the cage has to be large enough but not too large, the ray distance interacts with the extrusion, the normal space has to be tangent, and one wrong box gives you a map that is subtly wrong rather than obviously broken.

Below is the detail behind that: the settings that matter, the failure modes and their causes.

Bake types
Sixteen, including AO, pointiness, cavity, dust, bevel, position
Engine
Cycles, which must be enabled or the bake reports an error
Best used as
Mask inputs for a layer stack, not final textures
Agent access
One instruction, cage and ray distance set for you

The settings that cause almost every bad bake are the same four, and they interact:

Cage
An expanded copy of the low-poly that defines ray origins. Too tight misses detail, too loose catches neighbours
Extrusion
How far the cage pushes out along normals when you have no explicit cage object
Max Ray Distance
How far rays travel inward. 0 means unlimited, which is rarely what you want
Selected to Active
Must be on for high-to-low, with the low-poly as the active object

The diagnostic shortcut: stray colours or fragments of the wrong object mean the cage is too large; blank or black patches mean it is too small. That single sentence resolves most bake problems, and it is the thing a settings list never tells you.

The bake types worth knowing#

Before the list, the four settings that decide whether any of them work. They live under Render Properties > Bake with Cycles as the engine:

SettingWhat it doesGetting it wrong
Selected to ActiveProjects from selected onto the active objectOff, and you bake the low-poly onto itself
Cage / ExtrusionWhere rays start fromToo large catches neighbours, too small misses detail
Max Ray DistanceHow far rays travel inward0 means unlimited, which grabs the wrong surface on thin geometry
MarginBleed past island edgesToo small and seams show black at distance

Selection order is load-bearing and easy to get backwards: select the high-poly first, then shift-select the low-poly last so it is the active object. Reverse that and Blender bakes the low-poly onto the high-poly, which produces a technically successful bake of nothing useful.

Normal. High-poly surface detail projected onto low-poly geometry. The one people mean when they say "baking".

Ambient Occlusion. How much ambient light reaches each point. Rarely used directly in a modern PBR shader, but essential as a mask input: dirt accumulating in crevices is an AO-driven mask.

Curvature or Pointiness. Convex and concave detection. This is the mask that drives edge wear, which is the single highest-value weathering effect per unit of effort.

Cavity. Concave areas specifically. Useful where AO is too soft.

Diffuse, Glossy, Combined. Full lighting bakes. Useful for lightmaps and for baking procedural materials down to textures, and worth being careful with because Combined includes lighting you probably do not want in a base colour map.

Displacement and Position. Height information and world-space position, both useful as procedural mask inputs.

Mixar's mesh baking exposes AO, curvature, cavity, dust, bevel and position specifically as mask inputs for the layer stack, which is the use case that matters most day to day: the maps are not the deliverable, they are what makes the weathering follow the geometry.

The Blender bake settings that actually matter#

Baking lives in Render Properties > Bake, and it requires Cycles. Eevee cannot bake. That alone accounts for a share of the "the Bake panel is missing" reports. Blender's Cycles baking reference documents every field below; what follows is which of them decide the outcome.

Selected to Active. On for a high-to-low bake. Select the high-poly first, then shift-select the low-poly so it is active. Off for baking a single object's own material to a texture.

Extrusion and Max Ray Distance. Extrusion pushes the ray origin outward along the low-poly normals; ray distance caps how far the ray travels. Too small and parts of the high-poly are never hit, leaving gaps. Too large and rays from one part of the mesh hit a different part, producing ghost detail from the other side of the object.

Cage. A separate, slightly inflated copy of the low-poly used to control ray direction. Worth the effort on anything with hard edges or thin geometry, because it fixes the artefacts that extrusion tuning alone cannot.

Margin. Bleeds the baked result outward past the UV island boundary so mipmapping does not sample background pixels at the island edge. 16 px at 2K is a reasonable default; scale it with resolution.

Normal space: Tangent. Object space normals exist and are not what a deforming asset wants.

Why bakes come back wrong#

In rough order of how often each one is the answer:

No image texture node selected. The bake target is whichever Image Texture node is selected and active in the low-poly's material. It does not need to be connected to anything. If nothing is selected, Blender reports there is no valid image to bake to. If the wrong node is selected, it silently bakes over a texture you wanted.

Overlapping UVs. Two islands on the same texture space means the second bake overwrites the first. This is the cause of "half my bake is fine and half is garbage".

Inverted normals on the high-poly. Rays hit a back face and return nothing or nonsense. Turn on Face Orientation in the viewport overlays and check before baking, and see the scene cleanup checklist for the full pre-bake pass.

Unapplied scale. Ray distances are in world units. A mesh at 0.01 scale needs a ray distance a hundred times smaller than you think, and the numbers you would normally use produce nothing.

Cage too tight. Detail missing in recesses. Widen it.

Cage too loose. Ghost detail bleeding from the far side of the mesh. Narrow it, or use an actual cage object rather than extrusion.

Wrong green channel at export. The bake is correct and the engine reads it inverted. Blender bakes +Y (OpenGL); Unreal wants -Y (DirectX). Flip on export, not by re-baking.

Modifiers not applied consistently. Subdivision on the high-poly at render level but not viewport level, or a mirror modifier producing overlapping UVs.

Which of this is judgement and which is ritual#

Read that failure list again and sort it. Overlapping UVs, inverted normals and unapplied scale are pre-conditions that can be detected and fixed mechanically. The image node selection, the margin, the normal space and the colour space are settings with a correct answer that does not vary. Cage tuning is the only genuinely iterative part, and even that follows a rule: gaps mean widen, ghosting means narrow.

So the pass decomposes into: verify preconditions, configure known-correct settings, run, inspect the result, adjust the one parameter that varies. That is an agent-shaped task, not because baking is hard, but because the ratio of mechanical steps to decisions is about ten to one and the mechanical steps are where the mistakes happen.

A bake pass that works#

  1. Clean both meshes. Applied transforms, correct normals, no loose or interior geometry.
  2. Unwrap the low-poly with no overlaps and even texel density.
  3. Match the position and orientation of high and low exactly.
  4. Create the target image at the right resolution, 32-bit float for normal maps if you will do further processing on them.
  5. Add an Image Texture node in the low-poly material, assign the image, leave it selected and unconnected.
  6. Select high-poly, then shift-select low-poly.
  7. Set Bake Type, enable Selected to Active, set extrusion or cage, set margin.
  8. Bake, then inspect at 100 percent zoom. Look at island edges and at recesses.
  9. Save the image. Blender does not save baked images with the file unless they are packed, and losing a bake to a crash is a rite of passage nobody needs twice.

After the bake#

Baked masks are inputs, not outputs. In a layer-based texturing workflow the AO map drives a dirt layer, the curvature map drives edge wear, the cavity map drives grime in recesses. That is where the visual payoff is, and it is covered alongside the material side in the AI texture generator guide. Which maps generate and which must be baked is the companion piece: it is the same split as this page, seen from the texturing end.

For the final export, the baked normal map goes out with everything else and needs the same green-channel decision as any other normal map. Batch export prep covers the rest of that step, and the AI agent for Blender pillar covers where the bake sits in the sequence either side of it.

Frequently asked questions

Why is my Blender bake black or empty?

The most common cause is that no Image Texture node is selected and active in the low-poly object's material. The bake target is the selected node, and it does not need to be connected to anything. After that, check that you are on Cycles rather than Eevee, that the high-poly normals face outward, and that the ray distance is large enough to reach the high-poly surface.

How do you bake a normal map in Blender?

Create an image, add an Image Texture node in the low-poly's material and select it, select the high-poly then shift-select the low-poly, switch to Cycles, set Bake Type to Normal with Tangent space, enable Selected to Active, set extrusion or assign a cage, set a margin, and bake. Save the resulting image explicitly afterwards.

What causes ghosting or floating detail in a bake?

Rays travelling too far and hitting geometry on the other side of the mesh. Reduce the extrusion or max ray distance, or use a proper cage object instead of extrusion so ray direction is controlled per vertex. Thin geometry and hard edges are where this shows up first.

Does Blender bake in Eevee?

No. The Bake panel requires Cycles. Switch the render engine to Cycles to bake, then switch back afterwards if Eevee is your working viewport engine. The baked textures are engine-agnostic once produced.

Can baking be automated in Blender?

Yes, and it is a good candidate because the settings that decide a bake are the same every time. The cage, the ray distance, the normal space and the selection order are mechanical once the target is stated. Mixar, a 3D editor built on Blender, runs mesh map bakes as one instruction and can fold them into a longer pass, so the cleanup and unwrap that have to happen first are part of the same brief.