Modeling an Object in 3D requires a lot of skill and patience, that too a detailed model requires lot of time in every aspect such as modeling, texturing and rendering. But nowadays most of the 3D games present us with ultimate realism and performance in realtime. How is this possible for the game engine to render a 3D model with high level of detail as well as responding instantly to players input.
The secret lies in the Game engine as well as the simplification of certain procedures. For example when we render a frame in 3dsmax or Maya, a lot of render elements such as Ambient Occlusion, Global Illumination, Raytracing, Radiosity etc.. goes into it. But Game engines use a different method, where all these render elements or done before the model goes into the game engine. One such element is Bump mapping and Normal mapping.
Bump mapping is based on the intensity of the image, usually grayscale which is used to calculate the relative height of the pixels, while Normal mapping stores te direction of Normals, which renders the Normals in different directions as we intend to render. Look at the images below, where a truck tyre is detailed through Normal maps.
Lowpoly Tyre (Actual Mesh) without Normal Map
The same mesh with Normal Map used in Bump slot.
So a Normal Map is usually used to fake high-resolution geometry detail on what is actually a low-resolution mesh. This is one aspect used in 3d games, which helps to add fine detail to the models. You can create your own Normal maps using tools like CrazyBump or Nvidia’s Normal Map filter for Photoshop.