Normal Maps and Baking, Done Properly
Normal maps store the direction a surface faces at each pixel, letting a low-polygon model look detailed; baking is the process that transfers that detail from a high-polygon version.
Why does it matter?
Baking is how real-time and web assets look detailed within a polygon budget, and a wrong setting produces seams, artifacts or lighting that looks inverted.
What are the numbers?
- Normal map per-pixel surface direction that fakes detail without extra geometry
- Tangent-space normal maps the usual type for assets that deform or are reused
- Green channel convention OpenGL style in Blender and Unity, DirectX style in Unreal Engine
- Baking projecting detail from a high-poly model onto a low-poly model's textures
- Cage or ray distance controls how far the bake searches between the two meshes
What should I do?
- Match the low-poly silhouette closely before baking
- Split UVs at hard edges to avoid shading seams
- Use a cage or tuned ray distance for complex shapes
- Confirm the green channel convention for the target engine
- Check the bake under moving lights, not just one angle
What should I avoid?
Avoid:
- Baking with overlapping UVs that are not meant to share texture
- Mixing normal map conventions between tools
- Expecting a normal map to fix a poor silhouette
- Compressing normal maps with settings meant for color textures
When should I get help?
Short answer Bring in help when baked assets show seams or inverted lighting, or when a high-detail model must run in a browser or game engine.
Where this comes from
- Blender Foundation — Blender manual: Render baking
- Unity Documentation — Normal map (bump mapping)
- Unreal Engine Documentation — Textures
The figures and practices above come from the sources listed.
Working on something like this?
We take on 3D Design & Development work for teams who want it done once, properly. Tell us what you are building and we will tell you honestly whether we are the right studio for it. Start a project.
Where to go next
Spotted something wrong? Report an error on this page. We correct on the page and say what changed.