Before You Open Substance Painter
Your mesh needs to be ready before it goes into Substance Painter. That means clean UVs with no overlapping islands (unless they are intentionally mirrored for symmetrical assets), all transforms applied, and your mesh exported as an FBX or OBJ. If your UVs are a mess, your bakes will be a mess, and everything downstream suffers. Fix the UVs first.
You will also want a high-poly version of your asset if you have one. Even a simple subdivision or a manually sculpted detail pass gives the baker something to pull information from. If you only have a low-poly, you can still bake useful maps — you will just have less detail to work with.
Importing and Baking Maps
Create a new project in Substance Painter and select your mesh file. Set your document resolution — 2048 x 2048 is a good starting point for a game asset. You can always work at 4096 and export down.
Once the mesh is loaded, go to Texture Set Settings and run the bake. The three maps you want to prioritize are Normal, Ambient Occlusion, and Curvature. Here is why each one matters:
- Normal map — transfers surface detail from your high-poly to the low-poly. This is where edge detail, panel lines, and surface texture live. Without this, your asset looks flat regardless of what you paint on it.
- Ambient Occlusion (AO) — bakes soft shadow information into the crevices and tight corners of your mesh. Substance Painter uses this to drive smart masks and generators. It also adds immediate visual depth when blended into your base color.
- Curvature — captures edge sharpness and concavity across the surface. This is what allows smart materials to automatically apply wear on edges and dirt in grooves. Without a curvature map, your procedural effects will not read correctly.
If you have a high-poly, point the baker at it in the High Definition Meshes section. Match the cage carefully — projection errors show up as dark smearing on the normal map. Increase the maximum frontal and rear distance values slightly if you see artifacts, then rebake.
Understanding the Layer Stack
The layer stack in Substance Painter works from bottom to top — lower layers are the base, upper layers are refinements and detail. There are two main layer types you need to understand before you start painting.
A Fill Layer applies a flat material or color across the entire mesh (or wherever its mask allows). This is where you start. Drop a fill layer, assign a base material from the shelf — something close to what you want — and use it as your foundation. You can modify individual channels: base color, roughness, metallic, height. You do not have to accept everything the material gives you.
A Paint Layer is a manual layer where you use brushes to add or adjust specific areas. Use this for damage details, painted markings, surface variation, or anywhere you want direct control over what the surface looks like.
Masks control where a layer is visible. You can add a black mask (hides everything) or a white mask (shows everything) to any layer and then paint or use generators to reveal it. Add a generator to a mask and select a smart material preset — edge wear, dirt, grunge — and Substance Painter will use your baked maps to place that effect automatically. Adjust the balance and offset sliders until it reads correctly on your mesh.
Building Up the Material From Base to Detail
Start with a single fill layer using your base material. Get the color and roughness close to where you want them. Do not try to finalize anything yet — just establish the read.
Add a second fill layer above it for surface variation. Lower its opacity. Use a grunge map in the mask to break up the uniformity. Even a 10 to 15 percent variation in roughness across the surface makes a material feel physically real instead of plastic.
Add an edge wear layer. Fill layer, black mask, add a generator set to edge wear or curvature-based highlight, adjust intensity. This single step does more for realism than most painting you will do manually.
Now add your damage or unique detail layers on top. Scratches, dirt buildup in recessed areas, paint chipping if it is a painted metal surface. Each of these should be a separate layer so you can adjust or remove them independently.
Exporting for Unreal Engine 5 or Unity
Go to File, then Export Textures. Substance Painter has built-in export presets for both engines. Select “Unreal Engine 4” for UE5 — the channel packing format is the same. For Unity, use the “Unity 5 (Standard Metallic)” preset unless your project uses a custom shader setup.
What you are actually exporting:
- Base Color — your diffuse/albedo information, RGB
- ORM or packed texture — Unreal packs Occlusion into R, Roughness into G, Metallic into B as a single texture to save memory
- Normal map — surface detail, DirectX format for Unreal, OpenGL format for Unity (the green channel is flipped between them)
Export at 2048 for most game assets. Use 4096 only for hero assets that will be viewed up close. At 4096, texture memory adds up fast across a scene. Check the DirectX vs OpenGL normal map setting before exporting — importing a DirectX normal into Unity without flipping the green channel will make your lighting look inverted, and it is a common first-timer mistake.
Once your textures are exported, import them into your engine, assign to the material slot, and connect each map to the correct input in the material editor. Your first complete texture pass will not be perfect — go back into Substance Painter, adjust, re-export, and reload. That iteration loop is the actual workflow.
Explore the VFX, Game Dev, and Virtual Production at Sinfull Studios for more.