Normal maps from height: the correct way "CSS"

Credits

Submitter
  • P2: Drudge
    Points: 4,867
  • E3: Tutor
    EF: 57
  • C2: Ripe Member
  • A5: Veteran
    Account Age: 4 years
Rafael De Jongh
(Creator/Co-creator)
Studio
Apocalyptic
Key Authors
Boba Fett
Creating the Tutorial

Rating

10.0/10
Based off 3 rating(s)

Additional Info

Genre
Texturing
Difficulty Level
Intermediate

Stats

Post Count
25
ViewCount
5,908
Date Added
2 years ago
Date Modified
8 months ago

Share

Embed Code
Code to use:

More embeddable images

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.

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:

Oh noes! You're not a Member!

Want access to cool stuff? As a member you can:

  • Post. Give the submitter your thoughts on this Tutorial.
  • Say Thanks. Show your appreciation by sending the submitter points.
  • Stamp Posts. Let other posters know what you think of their posts.
  • Rate. Give this Tutorial a rating out of 10.
  • Flag. Alert moderators and warn members of a problem with this Tutorial.
  • Vote. Vote the submitter for the Monthly Awards.
  • Subscribe. Get notified when this submitter submits again.

Interested? Register or Login

Comments

    • P2: Drudge
      Points: 4,867
    • E3: Tutor
      EF: 57
    • C2: Ripe Member
    • A5: Veteran
      Account Age: 4 years
    Rafael De Jongh

    Posted by sHiBaN

    Geeze.

    It's surprising people don't know how to make normal maps. They don't even know what normal maps do! A little researching on the internet would give you an idea. However, this is a very useful tutorial that people need to learn because I dislike bad normal maps.

    Same here thanks - see anything that could be added or improved as this is getting a bit older - also check out my latest tut on normal maps :)

    2D/3D Artist
    • P3: Peasant
      Points: 12,691
    • E2: Guide
      EF: 23
    • C3: Moderator
    • A6: Elder
      Account Age: 7 years
    Shiban

    Geeze.

    It's surprising people don't know how to make normal maps. They don't even know what normal maps do! A little researching on the internet would give you an idea. However, this is a very useful tutorial that people need to learn because I dislike bad normal maps.

    shiban.deviantart.com
    • P1: Beggar
      Points: 163
    • C1: Member
    • A4: Graduate
      Account Age: 4 years

    Posted by HH Boba Fett

    Posted by Crysolace

    one of the images aren't working

    the one i need >.<

    Full tut also can be found here: http://www.boba-fett.co.cc/tuts/normalmaptut.html

    Thanks :)

    • P2: Drudge
      Points: 4,867
    • E3: Tutor
      EF: 57
    • C2: Ripe Member
    • A5: Veteran
      Account Age: 4 years
    Rafael De Jongh

    Posted by Crysolace

    one of the images aren't working

    the one i need >.<

    Full tut also can be found here: http://www.boba-fett.co.cc/tuts/normalmaptut.html

    2D/3D Artist
    • P1: Beggar
      Points: 163
    • C1: Member
    • A4: Graduate
      Account Age: 4 years

    one of the images aren't working

    the one i need >.<

  • Anonymous

    ...what?

    • P1: Beggar
      Points: 27
    • C1: Member
    • A4: Graduate
      Account Age: 2 years

    very nice ;)

    Im legit
    • P2: Drudge
      Points: 3,826
    • E1: Helper
      EF: 1
    • C1: Member
    • A4: Graduate
      Account Age: 3 years

    thanks good tut

    • P2: Drudge
      Points: 1,831
    • C1: Member
    • A4: Graduate
      Account Age: 2 years

    awesome

    =EL ARGENTINO= TAINY
    • P2: Drudge
      Points: 4,867
    • E3: Tutor
      EF: 57
    • C2: Ripe Member
    • A5: Veteran
      Account Age: 4 years
    Rafael De Jongh

    Fixed some images sorry if they where down for a while :/

    2D/3D Artist