Multitexturing is the mechanism behind much of realism in today's realtime computer graphics. Multitexturing is the ablility to apply two or more textures (most modern graphics cards can do 8 textures) to the same primitive in a single pass. These textures can be combined through fixed funtion (knobs and switchs) or programmable pipelines. Ultimately, the programmable pipleline is more flexible and easier to deal with, but in this simple program we will use the fixed function pipeline approach. A latter tutorial will show how to use fragment shaders to get the same effect. But, fragment shading builds on multitexturing, it just bypasses the fixed function register combiners. I really can't stress how good this is, because using the fixed function pipeline ultimately becomes unwieldly very quickly.