Normal mapping
One technique that is very popular among real-time 3D applications today is normal mapping. Normal mapping creates the illusion of highly detailed geometry on a low-poly model by storing surface normals in a texture map, which is then used to calculate the lighting of the mesh. This method is especially popular in modern games, where it allows developers to strike a balance between high performance and detailed scenes.
Typically, lighting is calculated using nothing but the surface normal of the triangle being rendered, meaning that the entire polygon will be lit as a continuous, smooth surface.
With normal mapping, the surface normals are replaced by normals encoded within a texture, which can give the appearance of a rough or bumpy surface. Note that the actual geometry is not changed when using a normal map, only how it is lit. If you look at a normal mapped polygon from the side, it will still appear perfectly flat.
The texture used to store the normals is called a normal...