Normal Mapping
Normal Mapping perturbs the lit surface normal per pixel without adding geometry, so a flat plane can read as cracked stone or hammered metal. Genesis supports the standard URP tangent-space inputs and adds strength scaling, a secondary detail layer, and per-channel masking.
When to use it
- Almost every Lit material — cheap shape definition without polygons.
- Hero props that need close-up bump detail.
- Stylized characters where a soft normal adds form without breaking the cel banding.
- Terrain and rocks — usually paired with Triplanar Mapping.
Difference from Detail Textures
How it works
Genesis samples _BumpMap, unpacks it from DXT5nm or BC5 to a tangent-space normal, scales the X and Y components by _BumpScale, and transforms the result into world space using the mesh’s TBN matrix. The world normal then drives every other lighting term — diffuse, specular, rim, MatCap, and SSS.
Properties
Usage
- Author the normal in Substance, Blender, or xNormal and import it as a Normal Map in Unity.
- Assign it to the Normal Map slot. A strength of 1 matches the source; push to 1.5 for stylized exaggeration.
- For close-up shots, add a high-frequency Detail Normal at 5–10x tiling.
- Use a packed mask to restrict bump to specific regions — none on a smooth visor, full on the body.
material.SetTexture("_BumpMap", normalTex);
material.SetFloat("_BumpScale", 1.2f);
material.SetTextureScale("_DetailNormalMap", new Vector2(10, 10));Tips & gotchas
- Always set the import type to Normal Map, or Unity will not pack to DXT5nm and the green channel will look wrong.
- BC5 is preferred for high-strength normals; DXT5nm shows banding past a strength of 1.3.
- Procedural meshes need tangents — call
mesh.RecalculateTangents()or import tangents from the FBX. - A single normal sample is cheap; the detail normal doubles the cost, so measure before shipping.
Related
- Detail Textures — secondary albedo and normal at independent tiling.
- Triplanar Mapping — normal-friendly UV-free projection.
- Translucency & SSS — driven by the same world normal.
- MatCap — normal influence on MatCap UVs.
Last updated on