Normal Map Creation

From Valve Developer Community
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.


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 beta test - Produces some very good normal maps. Some of them can be argued as almost having the same depth as a parallax map.


Getting the normal map in the game

  1. Save your normal map as a TGA in the same resolution as the original texture. Give it a name that ends in _normal. Then convert it to a VTF. 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. Place the new VTF in the same place as your original texture.
  2. Add this line to the VMT somewhere between the braces:
    "$bumpmap" "texture name"

    and 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"
    }
    Note.pngNote:Multiple materials can use the same normal map file.
  3. When compiling your maps with vtex, Add this line to the <texture filename>.txt file in the same directory as your textures then compile with vtex.
    "nocompress" "1"
    "normal" "1"


See Also


Template:Otherlang:en Template:Otherlang:en:jp