Documentation

Totally Normal Mapper generates normal maps for 2D sprites. These pages cover every tool and setting, plus a few things about the solve that are useful to know before you start painting.

How it differs

Most generators treat brightness as height. Bright means high, dark means low, and the surface is whatever gradient falls out. On a photo of rock that is a fair guess. On a drawing it is often the wrong one, because the artist already painted the lighting. A generator working from brightness cannot tell a painted shadow from a real fold, so it carves those paint choices into the geometry.

This tool starts from the silhouette: where the artwork ends, the surface has turned away. From that boundary it builds a surface that fits, and it reads your line work as folds. A pixel counts as line work when it is dark, close to neutral, and darker than what surrounds it — all three, which is what separates an inked stroke from a painted shadow.

Two practical results:

  • Painted lighting stays in the colour. A grey shadow over green skin is not mistaken for an inked line.
  • Pixel art stays sharp. A 32×32 sprite exports as a 32×32 normal map. Nothing is blurred to find edges.

What you paint

An overlapping arm looks like a crease in one surface. A hard-cut edge and a surface curving away look the same from the outside. Those go on a hint layer. After the first pass, hints are most of the work. Painting hints is the page to read properly.

Where to start