From the field

GenPBR cut my material iteration from hours to minutes. Height and normal maps stay predictable when art direction shifts, so re-exports do not surprise me.

Umamidayo · Game developer

Workflow

Image in. Maps out. Ship.

The same path whether you searched for a PBR generator, a height map generator, or a normal map maker.

  1. 01

    Drop a plate

    PNG, JPG, or WebP. Diffuse, albedo, or photo. Processing stays on your device for the public generator.

  2. 02

    Tune under light

    Normal strength, height contrast, roughness, and metalness against a live 3D preview before you commit.

  3. 03

    Export the stack

    Per-channel PNG or ZIP for Unity, Unreal, Blender, Maya, and Roblox SurfaceAppearance.

Entry points

Start where your search landed

One browser pipeline. Focused guides when you only need a heightmap, a normal map online, or a full metal/rough set.

Height map generator

Free heightmap generator from image. Grayscale elevation for displacement, parallax, or terrain. Adjust contrast in the 3D preview, then export PNG. Also covers height map maker, heightmap converter, and Roblox heightmap workflows.

Normal map generator online

Browser normal map maker from PNG, diffuse, or albedo. Set strength against the live preview. OpenGL by default for Unity, Blender, and Roblox. Invert Y for DirectX / Unreal. Same tool for png to normal map and diffuse to normal map.

Full PBR texture set

PBR maker and material generator in one pass: normal, roughness, metallic / metalness, AO, and height. For image to PBR, PBR map generator, and texture map generator intent without stitching filters by hand.

Why GenPBR

Built for material iteration, not demo slides

Deterministic height maps, normal maps, and full PBR sets you can re-export without surprises. Built for iteration, not demo slides.

Start generating free

Free tier

Core PBR maps without a subscription

Generate normal, roughness, metallic, AO, and height maps at 512×512 with no account. Sign up for 1024px, bulk uploads, and saved projects.

Privacy

Client-side processing

Textures stay on your machine. No upload queue, no asset retention, suitable for unreleased game art and client work under NDA.

Preview

Live 3D material viewer

Validate grazing-angle response before export. Catch normal convention mismatches early instead of after engine import.

Export

Engine-ready output

PNG per channel, ZIP archives, or MaterialX. Drop into Unity, Unreal, Blender Principled BSDF, or Roblox SurfaceAppearance.

Iteration

Regenerate without penalty

Tune strength and re-run on the same base image. Paid plans keep adjustments free, you only spend credits on new source plates.

Capture

Right-click anywhere you find textures

Chrome Capture grabs webpage images; Windows Explorer Capture handles local files. Both download engine-ready map ZIPs with a few free uses per install.

GenPBR Capture →

API

Pipeline automation

When manual uploads stop scaling, use the REST API for batch material generation in your build or asset pipeline.

PBR API →

Engine handoff

Most bad results are import settings

The maps can be fine and still look wrong in-engine. Fix color space, packing, and normal convention before you blame the generator.

Validate in generator
  1. 01

    Linear masks

    Roughness, metallic, AO, and height should import as linear, not sRGB, in most pipelines.

  2. 02

    Normal convention

    OpenGL green channel for Unity, Blender, Roblox. Invert normal Y for DirectX-style Unreal materials.

  3. 03

    Packing and names

    Confirm ORM channel order if you pack. Keep stable suffixes so tools auto-match maps.

Capture

Right-click to PBR from Chrome or Explorer

Grab a webpage texture or a local PNG/JPG and download a ZIP with normal, metallic, roughness, and AO. 3 free conversions per install, then a GenPBR API key for plan quota.

textures.example / stone-albedo.png

Texture library page

Example albedo texture on a webpage ready for GenPBR Capture right-click conversion
Real Capture UI: right-click any webpage image → Convert to PBR Material , tune parameters in the extension popup, then download a ZIP of maps.
Base (source) PBR map sample from GenPBR Capture

Base (source)

source image

Normal PBR map sample from GenPBR Capture

Normal

normal_map.png

Metallic PBR map sample from GenPBR Capture

Metallic

metallic_map.png

Roughness PBR map sample from GenPBR Capture

Roughness

roughness_map.png

Ambient Occlusion PBR map sample from GenPBR Capture

Ambient Occlusion

ao_map.png

Same ZIP from Chrome Capture or Windows Explorer Capture

Usage

Active pipeline traffic

Estimates based on the last 30 days

Visitors (est.)

96K+

Page views (est.)

156.0K+

Edge requests (est.)

1M+

REST API

Automate when uploads stop scaling

The browser tool is the starting point. When materials need to flow through CI, asset validators, or studio batch jobs, use the GenPBR API.

  • Batch material generation from your build pipeline
  • Starter and Pro tiers with scoped rate limits
  • Deterministic outputs, same input, same maps
  • Webhooks and studio workflows on higher tiers
POST /v1/materials
{
  "source": "<image-url>",
  "maps": ["normal", "roughness", "metallic"],
  "resolution": 1024
}

Commercial

Need a license for shipped work?

Free generation covers personal use. A 3-day Starter trial adds a commercial license, higher exports, and API access. $0 today.

FAQ

Straight answers

Workflow, privacy, and export, no filler.

Is there a free height map generator online?
Yes. GenPBR is a free height map generator and heightmap generator from image. Upload on /generate or open /height-map-generator, tune contrast in the 3D preview, and export a grayscale PNG for displacement or parallax. No signup for core resolutions.
Is there a free normal map generator online?
Yes. The normal map generator (also your normal map maker / normalmap online) converts PNG, diffuse, or albedo in the browser. Set strength in the 3D preview, keep OpenGL Y for Unity, Blender, and Roblox, or invert Y for DirectX / Unreal. See /normal-map-generator, /png-to-normal-map, and /diffuse-to-normal-map.
How do I convert an image to PBR?
Upload an albedo, diffuse, or photo on /generate (or follow /image-to-pbr). GenPBR builds a coherent metal/rough set: normal, roughness, metallic, AO, and height. Preview under light, then export PNG or ZIP.
What PBR maps does GenPBR generate?
Normal, metallic (metalness), roughness, ambient occlusion, and height. Export individually, as a ZIP, or MaterialX where supported. That covers PBR maker, PBR material generator, and texture map generator workflows.
Is GenPBR free to use?
Yes. Use the public generator without signup at 512px. Create a free account for 1024px and daily credits. Starter and Pro add commercial rights, API access, and higher resolutions. No watermarks on core generation.
Is my data uploaded to a server?
For the public browser generator, processing runs on your device. Your source images are not uploaded to GenPBR servers for that flow. Capture and API surfaces use their documented request paths when you opt into those products.
How does the 3D preview help?
The live WebGL viewer shows how normal, roughness, metallic, AO, and height read together under a movable light. Catch inverted normals, blown height, or wrong roughness before you import into an engine.
Why do roughness or metallic look wrong in my engine?
Usually import settings. Treat roughness, metallic, AO, and height as linear (not sRGB). Confirm ORM packing order if you pack channels. Confirm DirectX vs OpenGL for normals. Re-check the material in GenPBR 3D preview before re-exporting.
What is GenPBR Capture?
GenPBR Capture turns images into a PBR ZIP (normal, metallic, roughness, AO) from where you already work. Chrome/Edge/Opera right-click webpage images; Windows Explorer Capture right-clicks local files. Both include a few free conversions per install, then optional plan API keys.
Is GenPBR AI-based like DeepBump?
No. GenPBR uses deterministic algorithms. The same input and settings produce the same maps, which is what production pipelines and version control need. You get tunable strength controls instead of opaque model variance.