Normal maps are used to simulate height changes i.e. bumps, plates, dents on otherwise flat surfaces depending on ingame lighting. More on normal mapping can be found here. Normal maps are essential in keeping low tris/poly count because they can substitute parts of the model that would otherwise have to be modelled.
There are multiple ways to create a normal map. The Two most common are:
- Conversion from grayscale height map
- Hi-poly to Low-poly bake
Conversion from heightmap
Height map is a gray texture (127,127,127) filled with black and white color in the range of <0,255> where 0 means maximum dent and 255 represents absolute top. Once done, heightmap has to be converted to a normal map via a tool.
Hi-poly bake
Bake from Hi-poly offers some of the best results in normal map creation. While it produces very good results it is time consuming as the creator needs to have two version of the model, where the Hi-poly one has to have all the baked "height" parts modelled in sufficient quality. Hi-poly bake depends on the tool/suite used therefore only some videos are presented:
Normal maps bake in Substance Painter
Normal maps bake in 3D Studio Max
Normal maps bake in Blender
NOTE 1: Blank normal map is (127,127,255)
NOTE 2: To overlay generated normal map over another (even blank one), you need ho "half" its blue channel (Ctrl+L in Adobe PS)
NOTE 3: Blue channel is often handled in various ways by different game engines, it can also be omitted altogether like in Mashinky.