← All guides

Guide

How to Use a Free Normal Map Generator (Step by Step)

A normal map stores surface direction so flat photos catch light in 3D. This guide walks through NormalMapAI’s free generator — from upload to engine ZIP — without installing software.

Steps

  1. Open the free generator on the homepage and upload a JPG, PNG or WebP, or pick a sample material.
  2. In the Normal controls, set strength and choose OpenGL or DirectX to match your engine.
  3. Check the live 3D preview (shader ball, cube or plane). Flip Invert height if bumps look like dents.
  4. Optional: open Seamless Texture first if edges do not tile, then send the result back to the generator.
  5. Pick an engine preset and resolution, then download the ZIP (normal map included).

What a normal map is

A normal map is an RGB texture that stores which way each pixel of a surface faces. Red and green encode X/Y tilt; blue encodes facing toward the camera. Engines use that data to fake small bumps without extra polygons.

You do not need a laser scan. A well-lit photo of wood, stone, fabric or metal is enough for a usable map when you generate it in the browser.

Strength, detail and format

Strength controls how steep the bumps look. Start around mid-range; too high makes plastic “orange peel”. Detail adds finer high-frequency normals on top of the main height field.

OpenGL stores +Y in green; DirectX stores −Y. Unreal expects DirectX; Unity, Godot and Blender expect OpenGL. Wrong format inverts lighting. Engine export presets set this for you.

Export tips

Import the normal map as non-color / linear data (sRGB off). Pair it with albedo, roughness and AO from the same ZIP so lighting stays consistent.

For game assets, 2048×2048 is the usual sweet spot; use 4096 for hero surfaces. Mobile often ships 1024 or 512.

FAQ

Is the normal map generator free?

Yes. NormalMapAI runs in your browser with no sign-up and no usage limits.

Do I upload my photo to a server?

No. Decoding and map generation stay on your device.

Why does my normal map look inverted?

Toggle Invert height, or switch OpenGL / DirectX. Side lighting makes the wrong Y orientation obvious.