Normal Map Tutorial
Click Here for an updated versions of this Tutorial.
Normal Mapping The Right Way
In this tutorial I will explain how to make A Normal Map "the correct way" from Height Maps for the Source Engine.
What you require to create a normal map for this tutorial.
- Photoshop - Nvidia Normal Map Filter
- The knowledge what the purpose is of a Normal Map
- Basic knowledge of photoshop.
The Diffuse Map
I will use my PP-2000 skin as a example in this tutorial:
The Wrong Way
Now lets see what most do and what is wrong:
Most just take the diffuse map and run it trough a normal map filter, like you can see above.
A normal map filter takes white as height and black as depth and because a diffuse map got light area's as highlights and dark as shadows, the normal map that is made out of this diffuse map will give a wrong effect. If i would use this on the pp-2000, it would look like this in game:
Because we made a normal from the diffuse the text is not right engraved and the base looks all weird and stony.
The Right Way
So what you should do is make a height map (bump map), starting with a gray surface RGB: 128,128,128. Than make the area's you want to be height white, and black depth. Here's a small example of a height map (bump map).I made a gray surface and made black and white stripes, when i would run this trough a normal map filter, it should look like this:
Though because we are working with the Source Engine the green channel or y channel need to be inverted so it should look like this:
Its very simple to change the green channel or y channel, you can do this in your channel tab or in the nvidia filter it self, here's how you do it:
On the left you see the normal map filter, to change it you only need to check invert Y or you could go to your channels tab (most of the time next to layers tab) and select the green channel and press crtl+I (Invert)
As we would render this normal on a plane it will look like this:
If we would make a height map for the pp-2000 skin, it would look something like this:
The grip, text and hole's are filled with black, because they need to be bumped down, but like the screws and the front pattern they need to come out so they need to be white. Do note not everything need to be bumped, only the things that aren't modeled like grip, text, patterns, etc...
If we would run this trough a normal map filter it should look like this:
As we would apply this normal in game it would give this effect:
With the right normal map applied the text is right engraved and the metal surface is smooth as it should be.
Final Note's
This was the short tutorial how to make easy but right normal maps from height, i hope you learned something with this tutorial and that you will never use diffuse normal mapping again. If I forgotten something please let me know.
But to memorize it a bit more:





















