liveBook · Manning

Normal mapping

As explained in Geometry for Programmers

Normal mapping is a rendering technique that uses a texture to perturb surface normals without changing the underlying geometry.

Normal mapping makes a low-detail model appear richly textured by using bitmap colors to alter surface normals during shading. It changes the lighting calculation, not the underlying geometry, so a simple sphere can look brick-covered without adding quads or triangles. section 9.2.3

A brick-covered sphere

A brick normal texture applied to a sphere makes it look as though the surface contains thousands of quads, although the model still has only a few hundred. The example uses the simple UV mapping UV(x, y, z) = (x, y), projecting the sphere onto the x-y plane. section 9.2.3

Practical trade-offs include:

  • Preserves economical geometry because added detail exists only in shading. section 9.2.3
  • Depends on UV parameterization, which has no single best solution for every model. section 9.2.3
Figure 9.12 Normal mapping affects the normal vectors only in the shading computation. It doesn’t add any “real” geometry to the scene.
09-12

Shows that normal mapping changes normal vectors for shading while adding no real scene geometry. section 9.2.3

How Geometry for Programmers covers it

How deep it goes
Defines the shading-only mechanism and its UV dependency, but stops short of implementation details or competing algorithms.
Examples
Uses a brick-textured sphere, a low-quad model, and an x-y-plane UV projection.
What it assumes
Assumes familiarity with shading and normal vectors while illustrating their role through a sphere and lighting example.
What you can do after
Evaluate/understand it by distinguishing apparent surface detail from geometry added to the scene.
How it connects
Ties normal mapping to surface normals, smooth shading, textures, UV parameterization, and shading models.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Geometry for Programmers. The section links point to the parts of the book it draws on.