Normal Map Creation
Jump to navigation
Jump to search
A normal map should be created in the same dimensions as the image texture (color map) it will go with. There are a few options for how to create one, depending on the quality you want, your skill with various programs, or your patience.
Using tools
Converting from a heightmap
As the Source tool Height2Normal doesn't work anymore, you will have to resort to other tools in order to convert a heightmap to a normal map.
Todo: Which ones?
Using an image editing program
Using a 3D program
Other Tools
- CrazyBump - Produces some very good normal maps. Some of them can be argued as almost having the same depth as a parallax map.
- ShaderMap - A free alternative to CrazyBump!
Conversion
In VTFEdit
When converting your texture:
- Choose BGR8888 or BGRA8888 (if your texture has an alpha channel) as your image format.
Tip:You can sometimes get away with DXT compression.
- 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.
In Vtex
- Save your normal map as a TGA in the same resolution as the original texture. Give it a name that ends in _normal. The _normal at the end of the name will affect how Vtex converts it. For the brick wall example, we would name the file
brickwall_normal.tga
. - Add
nocompress 1
andnormal 1
to <texture filename>.txt in the same folder as your texture, then compile. - After compiling the normal map, place the VTF in the same place as your original texture.
In the material
Add this line to the VMT somewhere between the braces:
$bumpmap <texture name>
Then fill in the path and name of your normal map VTF. Here's an example VMT for a normal-mapped material:
LightmappedGeneric { $basetexture walls/brickwall $surfaceprop brick $bumpmap walls/brickwall_normal }
