Skip to content

Normal Map Generator for 2D Sprites

Give flat sprites depth under 2D lights. Drop a sprite, move the light across it in the preview, and download a normal map that Godot and Unity read as it is. Nothing leaves your device.

Made on your device. Your images are never uploaded.

  • Never uploaded
  • Live light preview
  • Many images at once

How it works

How to make a normal map from a sprite

  1. Step 1: Add your sprite

    Choose, drop or paste a sprite, a tile or a texture. A whole folder works too.

  2. Step 2: Shape the relief

    Pick where the depth comes from and how strong it is, and move the pointer over the preview to see the light fall on it.

  3. Step 3: Download the PNG

    The map is saved as name_n.png, the name engines pair with the sprite, at the sprite’s own size.

Normal Map Generator

2D sprites that react to light

  • Lit as you work

    The preview lights the sprite with its own normal map, so you judge the result and not a purple picture.

  • Depth from shape or brightness

    Round a flat-coloured sprite from its outline, read the relief of a texture from its light and dark, or mix both.

  • Right for your engine

    Green up for Godot and Unity, or flipped for Unreal, with the sprite’s transparency kept.

  • Never uploaded

    Everything happens in your browser, so your pictures stay on your device.

In detail

Normal maps for 2D games

What a normal map does

A sprite is flat, so a light in a 2D game brightens it evenly, like a sticker. A normal map is a second image of the same size whose colours say which way each pixel faces. With it, the engine lights the side of the sprite that faces the lamp and shades the other side.

No drawing holds that information, so it has to be guessed. This tool guesses a height for every pixel and turns the slopes of that height into the map.

Choosing where the depth comes from

  • Shape rounds the sprite from its outline towards the middle. It suits characters and objects drawn in flat colours, where brightness says little about depth.
  • Brightness treats light pixels as high and dark pixels as low. It suits textures: stone, brick, bark, ground tiles.
  • Both mixes the two, and is the best start for most sprites.
  • Strength and smoothing: raise the strength for deeper shadows and the smoothing for softer, rounder light. Roundness sets how far in from the outline the surface keeps rising.

Using the map in your engine

In Godot, create a CanvasTexture, put the sprite in Diffuse and the map in Normal Map, and add a PointLight2D or a DirectionalLight2D to the scene. In Unity, add the map as a secondary texture named _NormalMap in the Sprite Editor and light the scene with the 2D lights of the Universal Render Pipeline.

Both read green as up, which is how the map is saved. Turn on Flip the green channel for engines that read it as down, such as Unreal.

Normal Map Generator

Frequently asked questions

Are my images uploaded anywhere?

No. Everything runs in your browser, on your own device. Your images are never sent to Moriqa or anyone else, and nothing is kept after you close the page.

How do I make a normal map from a sprite?

Add the sprite, choose where the depth comes from, check the lit preview, and download the PNG. It has the same size as the sprite.

Why is a normal map purple and blue?

Its colours are directions, not colours: red runs left to right, green up and down, and blue points at the viewer. A flat surface comes out as the typical light purple.

Does it work for pixel art?

Yes. The map keeps the sprite’s exact size and its hard edges. Keep the smoothing low for a crisp, chunky look, or raise it for softer light.

Is a generated map as good as a hand-painted one?

No. It is a good starting point, and often good enough for props and tiles. For a main character, artists usually correct the map by hand.

Should I flip the green channel?

Not for Godot or Unity. Flip it only if the light seems to come from below when it is above, which means your engine reads green the other way.

Need the sprite first?

Open Moriqa’s pixel art editor to draw and animate sprites, free in your browser.