There are two primary methods to perform bump mapping. The first uses a height map for simulating the surface displacement yielding the modified normal. This is the method invented by Blinn[2] and is usually what is referred to as bump mapping unless specified. The steps of this method are summarized as follows.
Before a lighting calculation is performed for each visible point (or pixel) on the object's surface:
Look up the height in the heightmap that corresponds to the position on the surface.
Calculate the surface normal of the heightmap, typically using the finite difference method.
Combine the surface normal from step two with the true ("geometric") surface normal so that the combined normal points in a new direction.
Calculate the interaction of the new "bumpy" surface with lights in the scene using, for example, the Phong reflection model.
The result is a surface that appears to have real depth. The algorithm also ensures that the surface appearance changes as lights in the scene are moved around.
The other method is to specify a normal map which contains the modified normal for each point on the surface directly. Since the normal is specified directly instead of derived from a height map this method usually leads to more predictable results. This makes it easier for artists to work with, making it the most common method of bump mapping today.[3]