Until now we have almost exclusively treated Phong shading. An additional way to add more realism to a rendered scene is to use bump mapping. It allows to increase the visual detail of a scene without requiring excessive amounts of geometric detail. It is a technique that was invented by Blinn [3] to add roughness or wrinkles to a smooth surface. It does not change the underlying geometry of the model, but fools the shading to produce an interesting surface by using a perturbed surface normal read from a normal map (Figure 7(a)). Bump mapping is a very efficient approach because it decouples the texture-based description of small-scale surface irregularities used for per-pixel lighting computations from the vertex-based description of large-scale object shape required for efficient transformation, rasterization and hidden surface removal [10].
Since lighting is already done in tangent space - where the large-scale normal is always - the perturbed small-scale surface normal can be read directly from a texture map. This so-called normal map can be constructed from a height map by using finite differences to get the local tangent plane and the corresponding surface normal (Figure 7(b)).