Normal Mapping Tutorial
Normal Mapping is a technique to make textured surfaces appear more "lifelike" by having them respond to changing lights and viewing angles. As the light moves around, it reflects off of simulated "bumps" on the surface (the bumps are not real, the polygons are flat, but they look real because of how they reflect the light).
This demo requires that your video card support full pixel shaders. If not, the scene will look like any other scene.
Normal mapping uses a vertex shader and a pixel shader that are both mathematically quite complex. It is beyond the scope of this tutorial to explain the mathematics behind normal mapping. We strongly suggest you go read an explanation elsewhere, and return to this tutorial only when you understand what a "tangent vector," a "binormal vector," and a "normal map" are in principle.
The model was created in the usual way, but when using maya2egg, it was necessary to provide the command line option "-tbnall". This generates the tangents and binormals. If you look inside the egg file, you can see the tangents and the binormals. The normal maps were created by generating black-and-white elevation maps, and then running them through Nvidia's "photoshop normal map filter", which is available on developer.nvidia.com.
The image below shows the tutorial in action.