Skip to main content
Course web for the Spring 2019 Computer Graphics Class

Painting Normal Maps by Hand

You need to paint normal maps for Workbook 9.

I am aware that this is hard – how do you know what to paint for XYZ?

The idea is I want you to try simple things so you can get an idea of what the results are. You can learn by experimenting.

Of course, it’s hard, since you need to think of what do colors mean, and then figure out how to make meaningful patterns of colors.

Remember: since things go from +/- 1, the “zero” is halfway on the color scales. Since colors go from 0-255, halfway is 127/128. So:

  • The Z Vector (0,0,1) is pale blue (0x8080FF)
  • The X Vector (1,0,0) is red (0xFF8080)
  • The Y Vector (0,1,0) is green (0x80FF80)

In principle, your vectors should be unit length – but they should be normalized in the shader (so being precise is not important).

To see what is is like to paint textures using bad tools (I usually use Photoshop for image editing, but I realize most people neither have it, nor have the time to learn to use it), I decided to try to make a normal map using a free, online editor that is very much not meant for normal map editing: https://pixlr.com/x/. Using this thing, I made a new 256 x 256 image, and then using the painting tools covered the canvas is pale blue (using the color picker to get as close to 0x8080FF as I could). Then I made some brush marks with red and green. So my texture has some normals that are strongly pointing along the X axis and the Y axis.

You can see my bad texture:

Hopefully, you can try to predict what this will look like as a normal map. The red will show point the vectors in the X direction (we have the extreme lighting from the wavy demo, so these will appear redish or bluish on the plane), the green is in the Y direction (there is less light from above, those spots will appear darker).

You can see the results: https://cs559.github.io/FrameworkDemos_ForStudents/n4-normalMapTest.html

This is less about making a “good” normal map, and more to get a sense of what happens when you start to paint normals. If you want to make a “good” (or useful) normal map, you need tools that help you draw them better. Bump maps are much easier to draw.