Home › Image Tools › Normal Map Generator

Normal Map Generator

Load a texture photo and get a matching normal map, height (displacement) map, roughness map and ambient occlusion map in seconds. Tune strength, blur and contrast, check the result on a lit 3D sphere, plane or cube, and download PNGs for Blender, Unity, Unreal or Godot. Everything is computed on your device.

Last updated:

Height
Normal
Roughness
Ambient occlusion

3D preview

Drag the model to rotate it. Compare with the Normal map box unticked to see the difference.

Advertisement
Advertisement

How to use the Normal Map Generator

  1. Load a texture by dropping a photo into the box, choosing a file or pasting an image. A brick sample is loaded so you can explore first.
  2. Shape the height with Invert, Blur and Height contrast. Bright pixels become high, dark pixels low.
  3. Adjust the normal map with Strength and pick OpenGL or DirectX to match your engine. Turn on Seamless edges for tiling textures.
  4. Tune roughness and AO, then check the lit 3D preview. Drag to rotate the model.
  5. Download the map you are viewing or press Download all maps (ZIP).

How the maps are calculated

Every map starts from a height map. The photo's brightness is measured with the Rec. 709 luminance weights Y = 0.2126 R + 0.7152 G + 0.0722 B, so bright pixels count as high and dark pixels as low (or the other way round with Invert). A Gaussian blur removes pixel noise that would otherwise turn into a grainy normal map, and Height contrast stretches the values around their average.

The normal map comes from the slope of that height field. For each pixel a 3 × 3 Sobel filter (weights 1, 2, 1) or Scharr filter (3, 10, 3) measures the change in height left to right (dx) and top to bottom (dy). The surface normal is the vector n = normalize(−dx · s, −dy · s, 1), where s is the Strength, and each component is stored as color = (n + 1) / 2 × 255. A flat area therefore becomes (128, 128, 255), the familiar lavender blue.

The ambient occlusion map compares each pixel with the blurred average of its surroundings at two radii: pixels that sit lower than their neighbourhood (cracks, mortar joints, gaps between stones) are darkened in proportion to how deep they are. The roughness map is a contrast-adjusted copy of the brightness, by default inverted so darker, dirtier areas become rougher.

Which map goes where?

MapColor spaceBlender (Principled BSDF)Unity (URP/HDRP Lit)Unreal Engine
NormalNon-color / linearNormal Map node → Normal (OpenGL)Normal Map slot, texture type Normal map (OpenGL)Normal input, use DirectX or flip green
HeightNon-colorDisplacement node or Bump nodeHeight Map (parallax)World Position Offset / Displacement
RoughnessNon-colorRoughnessSmoothness = 1 − roughness (invert, or pack in alpha)Roughness
AONon-colorMultiply with Base Color, or use for bakingOcclusion MapAmbient Occlusion

Unity's Lit shaders use smoothness rather than roughness, so invert the roughness map (or untick "Darker = rougher" and adjust) before using it there.

Tips for better results

  • Use flat, evenly lit photos. Strong shadows and highlights are read as height. Overcast daylight or a light tent gives the cleanest normal maps.
  • Start subtle. A Strength of 1 to 4 looks natural on most materials; very high values make every speck look like a crater.
  • Blur for big shapes, no blur for fine detail. Raise Blur on stone and bricks so the large forms dominate; keep it low on fabric, leather or skin pores.
  • Check the direction. If mortar or cracks look raised in the 3D preview, tick Invert height.
  • Match your engine. Choose DirectX for Unreal and 3ds Max, OpenGL for Blender, Unity and Godot. The file name records which one you exported.
  • Make it seamless first. For tiling materials, make the color texture seamless, then generate the maps with Seamless edges ticked so every map tiles the same way.

Frequently asked questions

What is a normal map?

A normal map is an RGB image that stores the direction a surface faces at each pixel. Red holds the X (left to right) slope, green the Y slope and blue the part pointing straight out of the surface. A 3D engine uses it to light a flat polygon as if it had bumps, cracks and grooves, without adding geometry. That is why most normal maps look light purple-blue: flat areas encode the vector (0, 0, 1) as RGB (128, 128, 255).

How does this tool make a normal map from a photo?

It first converts the photo into a height map, treating brighter pixels as higher. It then measures how fast the height changes left to right and top to bottom with a Sobel or Scharr filter, multiplies those slopes by the Strength value and normalizes the vector (-dx, -dy, 1) for every pixel. The result is mapped from the -1 to 1 range into 0 to 255 color values.

Should I choose OpenGL or DirectX?

They differ only in the green channel. OpenGL style (Y+, green up) is used by Blender, Godot, Unity and Maya. DirectX style (Y-, green down) is used by Unreal Engine, 3ds Max and Substance's DirectX preset. If your bumps look like dents in your engine, switch the option or flip the green channel there.

Is a normal map generated from a photo accurate?

It is an approximation. A single photo cannot tell color from depth, so dark paint can be read as a groove and highlights as bumps. It works best on evenly lit, mostly matte textures such as stone, brick, bark, concrete, fabric and wood. Use Blur to ignore fine noise, Invert if depth reads backwards and a modest Strength for realistic results. For exact detail, bake normals from a high-poly 3D model instead.

What do the roughness and ambient occlusion maps do?

Roughness tells a PBR shader how blurry reflections are: white is fully rough and matte, black is smooth and glossy. Ambient occlusion darkens crevices that receive less indirect light; it is multiplied with the base color or ambient lighting. Here roughness is derived from the photo's brightness and AO from how much lower each pixel is than its surroundings, both adjustable.

How do I make the maps tile seamlessly?

Start with a texture that already tiles (you can prepare one with a seamless texture maker), then turn on Seamless edges. The filters will then wrap around the borders instead of clamping, so the left and right, top and bottom edges of every map line up without a visible seam.

Are my images uploaded?

No. The image is decoded and processed by JavaScript and WebGL in your own browser, so it works privately and even offline once the page has loaded.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Seamless Texture MakerMake any image tileable with offset blending, edge cross-fade or mirroring, with a tiled preview.Seamless Pattern GeneratorMake seamless dot, stripe, wave, grid, zigzag and check patterns. Export CSS, SVG or PNG.Grayscale Image ConverterTurn color photos into black and white with luma, luminance or average methods and sepia.Stereogram GeneratorMake Magic Eye style 3D autostereograms from text, shapes or your own depth map.Meme GeneratorMake memes with classic templates and custom text.Logo MakerDesign a text logo with fonts, icons and colors, then save SVG or PNG.Certificate MakerDesign certificates from templates and export one or many as PDF.GIF MakerTurn videos and images into GIFs, trim and compress.Business Card MakerDesign business cards and download a print-ready PDF.Flyer MakerDesign printable and social media flyers from free templates.Poster MakerDesign posters in A0–A5 and US sizes and download a print-ready PDF.Invitation Card MakerCreate printable birthday, wedding and party invitations for free.Thumbnail Safe ZonePreview YouTube and TikTok thumbnail safe zones.Thumbnail MakerDesign 1280×720 YouTube thumbnails with templates, bold text and stickersWallpaper GeneratorCreate gradient and pattern wallpapers sized for any phone, tablet or desktopYouTube Thumbnail GrabberPaste a YouTube link to get every thumbnail size, from HD 1280x720 down to 120x90.CSS Gradient GeneratorDesign linear, radial and conic CSS gradients with draggable stops and export CSS or PNG.Chart MakerMake bar, line, area, pie and doughnut charts from a simple table and download PNG or SVG.Venn Diagram MakerMake 2- or 3-circle Venn diagrams from lists; overlaps are found for you. Export PNG or SVG.Mind Map MakerBuild mind maps fast with keyboard shortcuts and auto layout, then export PNG, SVG or JSON.Org Chart MakerType an indented list of names and titles and get a clean org chart to download as PNG or SVG.Timeline MakerCreate horizontal or vertical timelines from dated events with colors, then save PNG or SVG.Gantt Chart MakerPlan tasks with dates, progress and dependencies on a Gantt chart, then export PNG or CSV.Word Cloud GeneratorTurn any text into a word cloud in shapes like a heart or star, then save it as PNG or SVG.Pie Chart MakerMake pie and donut charts with labels, percentages and a legend, then download PNG or SVG.Favicon GeneratorMake a favicon.ico, PNG icons, apple-touch-icon and web manifest from an image, text or emoji.Passport Photo MakerMake passport and visa photos for any country and print them on a 4x6 sheet.Signature MakerDraw or type your signature and download it as a transparent PNG or SVG.Quote Image MakerTurn a quote into a shareable image for Instagram, Stories or X with backgrounds and fonts.Profile Picture MakerMake a round or square profile picture with a ring border and color or gradient background.Before and After Image MakerCombine two photos into a labeled before and after image or an animated slider video.Device Mockup GeneratorPut a screenshot into a phone, tablet, laptop, monitor or browser frame and download a PNG.3D Text GeneratorRender extruded 3D text with depth, bevel, materials and rotation; export a transparent PNG.Album Cover MakerDesign 3000×3000 album and podcast cover art with photo filters and type presets.Animated Text GIF MakerCreate animated text GIFs with typing, blink, bounce, rainbow or scroll effects; GIF or WebM.App Icon GeneratorMake every iOS, Android adaptive, PWA and macOS app icon size from one image, as a ZIP.Birthday Card MakerMake a printable folded birthday card from templates with photos, stickers and fonts; PDF or PNG.Book Cover MakerDesign ebook and print book covers with trim sizes, spine width from page count, PNG/PDF.Trading Card MakerDesign custom collectible cards with photo, stats and rarity frames; print a 9-card PDF sheet.Vision Board MakerMake a vision board with your photos, goals and affirmations, sized as a phone or desktop wallpaper.WordArt GeneratorRetro WordArt text with arcs, waves, gradients and 3D depth. Download a transparent PNG.Anaglyph 3D Image MakerTurn a left/right photo pair into a red-cyan 3D anaglyph or cross-eye stereo pair.Bead Loom Pattern MakerDesign loom, peyote and brick stitch bead patterns with counts, word chart and image import.Birth Announcement MakerAdd your baby's photo, name, birth date, time, weight and length to a card you can share or print.BlurHash GeneratorEncode an image to a BlurHash or ThumbHash placeholder, preview it and copy ready-made code.Business Model Canvas MakerFill the 9 Business Model Canvas blocks with color sticky notes and download a PNG or PDF.Cat Breed IdentifierUpload a cat photo to get likely breeds, coat pattern and colors, using AI that runs on your device.Chalkboard Sign MakerDesign chalkboard-style menu and event signs with hand-lettered fonts and doodles; PNG or PDF.Deck DesignerDesign a deck to scale with joists, beams, posts, stairs and board layout; PNG and list.DICOM ViewerOpen DICOM .dcm medical images in your browser, adjust window/level, read tags and export PNG.Lean Canvas GeneratorFill in the 9 Lean Canvas boxes and get a clean one-page canvas as PNG, JPG or PDF.Loyalty Punch Card MakerDesign business-card-size stamp cards with your logo and reward, then print a sheet as PDF.Pregnancy Announcement MakerMake a pregnancy announcement image with a letter board, ultrasound photo and due date.Price Tag MakerMake printable price tags and shelf labels with sale prices and strike-through, on a cut-ready sheet.Risk Matrix GeneratorPlot named risks on a 3×3, 4×4 or 5×5 likelihood × impact heat map; export PNG, PDF or CSV.vCard QR Code GeneratorTurn contact details into a vCard QR code and a printable business card. PNG or SVG.Wedding Program MakerDesign printable wedding programs: folded, fan or tea-length, with order and party, PDF.Welcome Sign MakerMake wedding, shower and party welcome signs with names and date; poster-size PNG or PDF.Tiny Planet MakerTurn a 360° panorama into a tiny planet or rabbit hole photo with rotation, zoom and tilt.Recolor PNG IconChange the color of PNG icons and logos to any color or gradient, keeping transparency.Brochure MakerMake tri-fold or bi-fold brochures from templates with panel guides and a two-sided print PDF.Comic Strip MakerMake comic strips with panel layouts, speech bubbles, captions and drawings; export PNG.Family Tree MakerBuild a family tree with people, dates and photos; auto-layout, save JSON, export PNG/PDF.Flowchart MakerDrag-and-drop flowcharts with standard shapes, connectors and snap grid; PNG/SVG/JSON.Gift Tag MakerDesign printable gift tags with holiday themes and to/from names, many per page with cut lines.Initials Avatar GeneratorCreate letter avatars from names: shapes, colors, fonts, bulk ZIP, PNG/SVG and data URIs.Instagram Story MakerDesign 1080×1920 Instagram stories with templates, photos, text, stickers and safe-zone guides.Label MakerDesign jar, address, shipping and product labels and print them on Avery-style sheets or PDF.
See all 142 Design & Graphics Makers →