Normal Map Photography
a tutorial by Ryan Clark

 



Introduction

As graphics technology advances, the game artist's job becomes increasingly difficult.  Modern game engines demand detailed normal maps, which can be labor-intensive to create. In this tutorial, I present a new method whereby an artist can create these maps in minutes rather than hours.

If you find this method helpful, or if you have a suggestion, let me know at richardryanclark@gmail.com.

Kind souls have translated this tutorial into Czech and Japanese. Further translations are always welcome!


Materials

Before beginning this tutorial, you will need the following items:

- Digital camera, preferably with a tripod.
- Computer with Adobe Photoshop, or a similar image editor.
- Movable light-source.
- Subject.  (In this example, Subject is a bowl of peanuts.)


Camera
Computer
Light-Source
Subject





Step 1:

Place your camera in a fixed position, and photograph your subject four times, lighted from each of four cardinal directions, as in the examples below.

You may want to experiment with the elevation of your light.  The subject should be lighted from a low angle, but not so low that it's obscured by its own shadow.

lighted from above lighted from the left lighted from below
lighted from the right





Step 2: 

Convert your photographs to grayscale, and crop them as desired.

lighted from above lighted from the left
lighted from below
lighted from the right





Step 3:

Create a new image, using your above-lighted photograph for a green channel, and your left-lighted photograph for a red channel. 

This image will be hereafter called "Above&Left."


Above&Left
green channel = lighted from above
red channel = lighted from the left




Step 4:

Open the levels dialog for "Above&Left."




Choose output levels 127 and 0, and then click OK.



Above&Left:
after levels adjusted



Step 5:

Create a new image, using your below-lighted photograph for a green channel, and your right-lighted photograph for a red channel

This image will be hereafter called "Below&Right"


Below&Right
green channel = lighted from below
red channel = lighted from the right





Step 6:

Open the levels dialog for "Below&Right."

 



Choose output levels 128 and 255, and then click OK.

Below&Right:
after levels adjusted





Step 7:

Paste Below&Right into a new layer over Above&Left.  




Set the top layer's blend mode to "Overlay," and then flatten your image.


Normal Map:
after image overlay





Step 8:

Fill your blue channel with a light color.  You may want to experiment with the shade; a lighter blue will yield a smoother normal map.

Normal Map:
blue channel lightened

At this point, your normal map should be finished and ready for use.




Step 9: (optional)

If your game engine supports parallax mapping, you can use CrazyBump to create the necessary heightmap.

Displacement Map:
from CrazyBump





Further Examples:


Subject:
Decorative Cross
Normal Map:
after steps 1 - 8
Displacement Map:
from CrazyBump


Subject:
some rocks
Normal Map:
after steps 1 - 8
Displacement Map:
from CrazyBump



3D Renderings:

These renderings depict flat surfaces of two polys each.
The appearance of depth is due entirely created by photo-captured normal and displacement maps.







Direct questions and comments to richardryanclark@gmail.com