Bump map
Textures often called Bump Maps, or Normal Maps are used to simulate three-dimensional details on a two-dimensional surface by manipulating its lighting.
Last updated
Was this helpful?
Textures often called Bump Maps, or Normal Maps are used to simulate three-dimensional details on a two-dimensional surface by manipulating its lighting.
Last updated
Was this helpful?
Textures often called Bump Maps, or Normal Maps are used to simulate three-dimensional details on a two-dimensional surface by manipulating its lighting.
Each pixel in a bump map contains the (x, y, z) coordinates that define a normalized vector.
Because of this each color channel in a bump map has meaning:
Horizontal facing (X axis).
0 = left
128 = forward or facing viewer
255 = right
Vertical facing (Y axis).
0 = up
128 = forward, or facing viewer
255 = down
Height (Z axis).
0 = facing 'in' to the texture, away from the viewer. This is a 'bad' value. Anything under 128 means that the surface should be facing away from the player, which is not possible.
128 = maximum depth capable of receiving dynamic light. It's a bad idea to go under this.
255 = facing 'out' of the texture towards the viewer.
dev/flat_normal
uses the above-mentioned values. However they are incorrect. An actually flat bump map should be [128, 128, 255]
The three channels represent a normal vector for every pixel which represents the direction that the pixel is facing in 3D spaces. This allows the engine to generate shadows and highlights on a two-dimensional surface, or give a 3D model more detail.
A bump map is largely useless for really flat surfaces like smooth concrete or metal, but even smooth concrete sometimes has enough depth to it to make one worthwhile.
A bump map should be rendered in Tangent space and use vector dimensions X+ Y- Z+.
Various programs can automate the creation of bump maps, either by image analysis or by using 3D geometry the user pro
Bitmap2Material 3: Alternative to CrazyBump.
CrazyBump: Produces some very good normal maps. Some of them can be argued as almost having the same depth as a parallax map.
Filter Forge: Can generate normal maps for its filters and external images.
InsaneBump: Specifically made to be a free alternative to CrazyBump, produces high quality normal maps.
MindTex: A cheaper alternative to CrazyBump. Also produces high-quality normal maps.
Normal2dudv: a third party tool for converting bump maps to Dx8-friendly du/dv maps.
ShaderMap: A free alternative to CrazyBump.
SSBump Generator 5.3: Another free, open source alternative to CrazyBump that generates Self Shadowed Bump Maps as well as normal maps.
When converting your texture:
Choose your image format. Uncompressed formats like BGR888 are higher-quality than compressed formats like DXT1, but be wary of file size.
Check the "Normal map" box in the texture's flags list after the import is complete. It's about 1/5 of the way down the list.
Add nocompress 1
and normal 1
to <texture filename>.txt in the same folder as your texture, then compile.
See $bumpmap
.