Bump mapping adds an extra sense of realism to today's computer graphics applications that is so simple, it just cannot be ignored. Learn how to do this in GLSL with OpenGL.
Textures are going to be what make and break this terrain. A nice looking tutorial, and you will be seeing grass, mud, rocks and sand, but a bad texture and you will see just a bunch of colors. Lets add a nice texture to our terrain shall we?
GLSL also gives us the texture coordinates that we assigned in OpenGL. This means that if you pass the texture id to the shader, you can replicate all the texturing done in OpenGL.
Textures by themselves are perfectly fine, you don't have to do anything with them. But have you ever wanted to load a movie into a 3D scene? Maybe you want to read a movie file, and display it on a quad moving around your scene. Well you can, but you have to do it frame, by frame.
While GLUT provides a sphere for us to draw, that sphere does not contain texture coordinates. In this tutorial, I will show you how to create your own sphere, which has texture coordinates included. Now you can make that solar system demo you have always wanted!
Mip maps are an essential texture extension, which creates scaled down versions of a texture and uses them when an object gets further away, or closer to the near plane. This scaled down version of the texture, makes for nicer, smoother looking textures.
When assigning a texture to an object, you need to declare the texture coordinates, little values between 0 and 1 that tell us which part of the image maps to which part of the 3D model. OpenGL has some texture coordinate methods for generic texturing.
The next step in the quest for realism after lighting, comes in the form of texturing. Texturing is the art of drawing an image on top of a 3D object and is the core behind all 3D applications. Could you imaging Half Life 2 coming out, and the characters looked like store mannequins?