110,000 triangles in 12.
Bake the detail of a high poly crate into images that a low poly cube can use: a normal map, ambient occlusion and colour. Watch every texel cast its ray, fix what goes wrong, and take the maps to a game engine. Then bake the same crate in Substance 3D Painter.
STAGE
3D Viewport
Drag to orbit · Wheel zoom
Image Editor
KEY IDEAS
How a bake works
For every texel of the image, Blender finds the point of the low poly with those UVs and casts a ray towards the high poly. What the ray finds is written into the texel.
- Selected to Active
- Bake from the selected objects (high poly) to the active one (low poly). Without it, an object bakes itself.
- Extrusion
- How far out the rays start. It must enclose every detail that sticks out of the low poly.
- Cage
- A copy of the low poly, inflated along averaged normals, used as the start of the rays. It avoids gaps at hard edges.
- Max Ray Distance
- How far the rays can travel (0 = no limit). A limit avoids hitting far parts of the model.
- Tangent space
- The normal map stores directions relative to each UV island: R = right, G = up, B = out. Flat is (0.5, 0.5, 1).
- Margin
- Extends the islands outwards so filtering and mipmaps don't pick up the empty background.
BLENDER / SUBSTANCE PAINTER
The same bake, other names
Both programs cast one ray per texel from the low poly to the high poly. What changes is where the settings are and what they are called.
| Blender | Substance 3D Painter | Note |
|---|---|---|
| Selected to Active | High Definition Meshes | In Painter the high poly is a separate file listed in the Baking window. |
| Extrusion | Max Frontal Distance | How far above the low poly the rays start. |
| Max Ray Distance | Max Rear Distance | In Painter it is measured below the low poly surface. |
| Cage | Average Normals · Use Cage | Averaged ray directions, or a cage mesh made in your 3D program. |
| Margin | Dilation Width | Extends the islands for filtering and mipmaps. |
| Bake Type | Mesh maps | Blender bakes one map at a time; Painter bakes every ticked map at once. |
| Swizzle G −Y | Normal Map Format · Output template | OpenGL or DirectX: in Painter the export template writes the format of each engine. |
| Separate objects | Match: By Mesh Name | Painter pairs name_low with name_high, so touching pieces don't bake into each other. |