KatsBits Community

Game Editing => Textures & 2D content => Topic started by: kat on July 17, 2015, 04:18:21 AM

Title: Converting Normal maps to Bump maps
Post by: kat on July 17, 2015, 04:18:21 AM
Problem
Typically Normal maps are converted into Bump or Height maps by simply opening the Normal map in an image editor and using some form of image desaturatation, either a filter or some other image process that swaps Normalised RGB colours for grey-scale values. This an incorrect approach to take because the variable colours present in normal maps do not represent the same light=height, dark=depth approach to creating the illusion of a three-dimensional surface. In other words, Normalised RGB colours and grey-scale tones are not interchangeable, they each represent completely different types of image data.


Shown above a Normal map (left) has undergone a simple image desaturation process to 'convert' the image to a series of grey-scale tones (right). This causes issues however because the filter interprets lighter normalised colours, the pale blues and greens[1], as light-grey tones, which are in turn treated as 'height' elements of the resulting bumpmap (vice versa for darker colours[2])

Solution
The Correct way to convert a Normal map into a grey-scale height or Bump map is to open the Normal into a proper Normal map processing application like nJob, or an image editor with a Normal map filter that can invert-process normal maps, and selecting the appropriate option to convert or reprocess 'Normal to Height' (in the case of nJob) or 'Normal to Bump'. This will desaturate the Normal map by correctly reinterpreting the three-dimensional structure represented by the Normalised RGB colours as simple Z-axis 'height' and 'depth' values.


On the left is the original 'template' used to generate the normal map. On the right is the result of reprocessing the actual Normal map in nJob. Although there are minor differences between the two, they are far less significant than those resulting from simple desaturation. In-game especially, the difference is noticeable

Additional Resources
- Bake Normal maps from meshes using Cycles (http://www.katsbits.com/tutorials/blender/cycles-bake-normal-maps.php)
- Bake Normals using Blender Internal (http://www.katsbits.com/tutorials/blender/bake-normal-maps.php)
- How NOT to make Normal maps (http://www.katsbits.com/tutorials/textures/how-not-to-make-normal-maps-from-photos-or-images.php)
- Make Normal maps from Images (http://www.katsbits.com/tutorials/textures/making-normal-maps-from-images.php)