Normal Map Generator
Generate texture maps and inspect lighting on a local plane or sphere.
Try before you buy.
- Free preview: the normal, height and occlusion maps, watermarked at preview size, and the lit preview; full-size maps and exports open with a pass.
- Locked until you unlock it: download and copy.
- Unlock: Pro pass, ₹179 for 30 days or ₹79 for 1 week, a one-time payment that never renews. Unlock: Pro pass, $5.99 for 30 days or $2.99 for 1 week, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
About the Normal Map Generator
Convert image brightness into a height estimate, then use measured gradients to create a tangent-space normal map. Check the maps under lighting your device draws (WebGL). A photograph does not uniquely determine real surface geometry.
How to use it
- Choose a photo, a texture or a grayscale height map.
- Set Sobel or Scharr, strength, blur/detail, height inversion and the green-channel convention.
- Inspect normal/height/approximate occlusion maps and switch the lit preview between a plane and sphere. With a Pro pass, export each complete PNG.
Examples
A constant gray image
Normal RGB 128, 128, 255; constant height; white approximate occlusion.
A flat field has no measured gradient.
Gradient and orientation conventions
The official Sobel and Scharr documentation defines the 3×3 derivative weights. This tool chooses ramp normalisation by 8 or 32, then forms (−strength×dx, +strength×dy, 1) for image rows increasing downward and an OpenGL Y+ export. DirectX export reverses green. Texture upload flips, UV direction and channel signs are distinct; verify the target material system.
Limitations
- Brightness-derived height is an estimate, not recovered geometry. The occlusion map is a local height-neighbour approximation, not ray-traced ambient occlusion.
- Transparent pixels use neutral half-height. Generated data maps are opaque; blur/detail and inversion affect the derived height.
- OpenGL and DirectX green values are opposites. The viewer compensates for the chosen convention. Verify orientation in the target material system.
- WebGL is device-dependent. If local graphics allocation fails, the pixel previews and PNG exports remain available. Large images require enough device memory.
Privacy
On this device: nothing is sent
Your images stay on this device. No upload, media URL or AI service is used.
Frequently asked questions
What do I get without a pass?
Without a pass, Normal Map Generator shows the normal, height and occlusion maps, watermarked at preview size, and the lit preview; full-size maps and exports open with a pass. Until you unlock it, the result can’t be downloaded or copied. A Pro, Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
What do strength and detail change?
Strength scales the surface slope used for normals. Blur smooths the height field; detail adds back the difference between the original and smoothed height.
What does the green-channel switch mean?
The exported Y component changes sign. Choose the convention expected by your material pipeline; the local viewer adapts to it.
Are these true depth and occlusion maps?
No. Brightness is a chosen height interpretation, and local neighbour differences provide only an approximate occlusion estimate.