The 3D Handbook
Key term

Macro normals

A normal map baked one-to-one from a sculpt that carries only an asset's large forms, blended in the shader with tiling materials that supply the small detail. The standard way to texture big rocks and cliffs without a huge unique texture.

sculptingbakingnormal-mapshadersrocks

A macro normal is a normal map baked one-to-one from a sculpt that holds only the asset's large forms: the big planes, ridges and breaks of a rock or cliff. Small detail does not live in it. That comes from tiling materials blended on top in the shader. The result is a unique-looking asset that needs only a modest unique texture.

Jared Sobotta's rock set for The Last of Us Part I is the clearest published example: the high-poly sculpts were used for "1x1 Macro normals", while the surface came from "1-3 tiling rock materials, lichen, grunge, and moss inside of the shader" (ArtStation: Rock Breakdown).

#How it works

A macro normal workflow has two layers, each on its own UVs:

  1. The macro layer. A unique bake from the sculpt, on the asset's normal (non-overlapping) UVs. "1x1" means one texel position per point on the surface, as in any unique bake; see baking.
  2. The detail layer. One or more tiling materials, with their own normal maps, repeating across the surface many times.

The shader combines the two normals, and usually uses the macro layer's information to steer where moss, dirt or a second rock material appears.

Three surface profiles stacked. Top, an orange smooth wave labelled macro normal. Middle, a fine repeating ripple labelled tiling detail normal, with tile boundaries marked. Bottom, the two added together.
The macro layer carries the big shape seen from a distance, the tiling layer carries the close-up detail, and the shader adds them. The profiles are illustrative.Diagram by the handbook author

Sobotta describes the sculpting goal accordingly: "the fidelity I was going for mainly was the largest scale shapes" (ArtStation: Rock Breakdown). If the sculpt also carried small cracks, they would clash with the tiling material's cracks, at a different scale and direction.

#Why studios use it

  • Memory. A tiling material can be shared by every rock in a level. Only the macro bake is unique, and because it holds only large, soft shapes it survives at a lower resolution than a fully detailed bake would.
  • Consistency. A whole set of rocks that shares the same tiling materials looks like one geology. Sobotta's rocks all draw from the same small group of materials (ArtStation: Rock Breakdown).
  • Close-up sharpness. Tiling detail stays crisp at any distance from the camera, which a single unique texture stretched over a 20 m cliff cannot. Epic's detail-texture documentation makes the same argument: a highly repeated texture over the base stops a material "looking pixelated when it is viewed very closely" (Unreal Engine documentation: Adding Detail Textures to Unreal Engine…).

#Blending the two normals

Two normal maps cannot be combined by simply adding or multiplying their colours. Colin Barré-Brisebois and Stephen Hill explain why: "Since the data represents directions, we can't simply treat the channels independently as we do for colours" (Self Shadow: Blending in Detail). Their article compares common methods and introduces reoriented normal mapping, designed so that "if one of the normal maps is flat, the output matches the other normal map" (Self Shadow: Blending in Detail). See normal map blending for the methods in detail.

#How to set one up

These steps set up a macro normal with one tiling detail layer in an Unreal Engine material. Any engine with a node-based material editor works the same way. The worked numbers are for a 3 m boulder.

  1. Sculpt the large forms only. Keep to primary and secondary forms, as Sobotta did with "the largest scale shapes" (ArtStation: Rock Breakdown). Leave out cracks and pores smaller than about 10 cm.
  2. Bake the macro normal. Bake the sculpt onto the low poly's unique UVs (UV channel 0) at 1024 px; it holds soft shapes, so it rarely needs more. See baking.
  3. Pick a tiling detail material. Use a tiling rock normal map authored for about 1 × 1 m, so it repeats about three times across the boulder.
  4. Sample both normals. In the material, sample the macro normal with the default UVs. Sample the detail normal with a TexCoord node multiplied by a scalar parameter, DetailTiling = 3, so you can tune it per instance (Unreal Engine documentation: Adding Detail Textures to Unreal Engine…).
  5. Blend the normals properly. Combine the two with a normal-blending function rather than Add or Multiply, so that a flat detail map leaves the macro normal unchanged (Self Shadow: Blending in Detail). See normal map blending.
  6. Use the macro data for masks. Feed the macro normal's up-facing component, or a baked cavity map, into the blend between rock, moss and dirt layers, as Sobotta's shader did with the high-poly normal and cavity data (ArtStation: Rock Breakdown).
  7. Check at three distances. At 1 m the detail layer should carry the surface; at 20 m the macro shapes should; in between, neither should show a visible repeat.

#Video tutorials

#Use in recent games

Published breakdowns that name the technique are rare; the clearest are from one game.

  • The Last of Us Part I (2022), Naughty Dog: Tommy's Dam rocks. The sculpts became "1x1 Macro normals", blended in the shader with "1-3 tiling rock materials, lichen, grunge, and moss" (ArtStation: Rock Breakdown).
  • The Last of Us Part I (2022), Naughty Dog: eroded embankments. Sobotta's erosion work combined prototype meshes, terrain geometry and instanced rocks, with a height map displacing the terrain for thicker erosion lines (ArtStation: Erosion Breakdown). The large forms come from the meshes and the bake, the small erosion detail from tiling materials.
These sculpts hold only large shapes. Baked one-to-one, they become the macro normals; the fine surface comes from shared tiling materials.Jared Sobotta, via ArtStation
The same rock set with its tiling materials applied. Compare the large shapes with the sculpts above, and the small detail with the tiling layers.Jared Sobotta, via ArtStation
Large forms from meshes and terrain, small erosion detail from tiling materials blended on top.Jared Sobotta, via ArtStation

#Common mistakes

  • Sculpting fine detail into the macro sculpt. It doubles up with the tiling layer and creates conflicting scales (ArtStation: Rock Breakdown).
  • Blending normals by adding colours. Use a proper normal blend (Self Shadow: Blending in Detail).
  • Spending high resolution on the macro bake. It carries soft, large shapes; check whether a lower resolution looks the same in game.
  • Mismatched tiling scale. If the tiling material's rock grain is larger than the macro forms, the two layers read as one confused surface.

normal map · normal map blending · detail maps and macro variation · tileable materials · baking · sculpting rocks and cliffs · primary, secondary and tertiary forms

#Further reading and watching

References

  1. Jared Sobotta · Rock Breakdown · ArtStation, 2023 · web · accessed 2026-10-21
  2. Epic Games · Adding Detail Textures to Unreal Engine Materials · Unreal Engine documentation · docs · accessed 2026-10-21
  3. 80 Level · A Closer Look at Rock Assets Made for TLOU Part I · 80 Level · article · accessed 2026-10-21
  4. Colin Barré-Brisebois and Stephen Hill · Blending in Detail · Self Shadow, 2012 · article · accessed 2026-10-21
  5. Epic Games · Nanite Virtualized Geometry in Unreal Engine · Unreal Engine 5.8 Documentation, 2026 · docs · accessed 2026-10-21
  6. Jared Sobotta · Erosion Breakdown · ArtStation, 2023 · web · accessed 2026-10-21

Last updated 2026-10-22