## NormalMapAI — Free Online Normal Map & PBR Texture Generator NormalMapAI is a free, zero-login online Normal Map Generator and full PBR Texture Maker built on in-browser WebGL2 GPU shaders. Artists, game developers, and 3D printing creators drop any 2D photo or texture and generate tangent-space normal maps (OpenGL +Y and DirectX -Y), 16-bit PNG height and displacement maps, roughness, ambient occlusion (AO), metallic, curvature, specular, emissive, and channel-packed ORM maps. Every pixel is processed 100% locally, so textures never leave your device. Pricing is Free: 100% free in-browser, no login required. ## Core capabilities One source image becomes a complete PBR set with no account. Normals export for OpenGL (+Y) or DirectX (-Y). Height and displacement are 16-bit PNGs so relief and 3D-print height stay smooth. Roughness, metallic, curvature, specular, and emissive maps are generated with ambient occlusion. An ORM packer combines occlusion, roughness, and metallic for glTF and game-engine materials. Seamless mode makes tileable textures, and the background remover writes transparent PNGs for decals and sprites. The preview shows a sphere, cube, plane, cylinder, or torus under HDRI or point lighting, with presets for glTF, Blender, UE5, and Unity. The dedicated [Ambient Occlusion (AO) Map Generator Online](https://normalmapai.com/ao-map-generator) builds an ambient occlusion map from the same 2D image, still entirely in the browser via WebGL2. ## Engine workflows ### Blender Export the OpenGL +Y normal, the 16-bit height or displacement map, roughness, and AO. In the Shader Editor, run the normal through a Normal Map node set to Tangent Space into Principled BSDF Normal. Connect roughness to Roughness. Use the 16-bit height as Displacement on a subdivided mesh. ### Unreal Engine 5 Flip to DirectX -Y when the material expects the DirectX green channel. Pack occlusion, roughness, and metallic with the ORM preset and assign that texture in a UE5 material. Drive World Position Offset or Nanite displacement from the 16-bit height map. The UE5 export preset keeps channel order aligned with the engine. Nothing is uploaded during generation. ### Unity Pick OpenGL or DirectX to match the project, then import the PNG set. Mark the normal texture as a Normal Map. Assign roughness, metallic, and AO on a Lit, URP, or HDRP material. Use the ORM packed map when a shader wants one packed texture. The glTF preset covers pipelines that round-trip through Unity. Processing stays local, with zero login. ## Step-by-step usage 1. Open NormalMapAI in a WebGL2 browser. No account is required. 2. Drop a 2D photo or texture into NormalMapAI. 3. Generate normal (OpenGL +Y or DirectX -Y), 16-bit height or displacement, roughness, AO, metallic, curvature, specular, emissive, or ORM. 4. Optionally make a seamless tileable texture, or remove the background for a transparent PNG decal or sprite. 5. Inspect the result on a sphere, cube, plane, cylinder, or torus with HDRI or point lighting. 6. Export with the glTF, Blender, UE5, or Unity preset. Every pixel stays on your device.