Choose height-friendly input
Start with grayscale data or an evenly lit material texture where brightness is related to surface relief.
Browser-based PBR tool
Turn an image into a grayscale height-map starting point with private browser processing, live relief preview, and PNG export for Blender, Unity, or Unreal.
Generate a consistent map set locally, then validate it in the material system where scale and lighting are visible.
Local PBR generator
Upload a material image or choose a sample, then adjust Contrast, Blur, and Strength while the height and displacement previews update locally.
Upload a material image or choose a sample, then adjust Contrast, Blur, and Strength while the height and displacement previews update locally.
Upload an image or choose a sample texture to start.
Batch PBR export
Add up to 20 images, process them one at a time in this browser, and download the generated PNG maps in one ZIP. A failed image is marked separately so the rest of the queue can finish.
Use one Strength, Blur, Contrast, and engine direction setting across a folder of related images, then download eight PNG outputs per source.
PNG, JPG, JPEG, and WebP files up to 12 MB each. The browser processes them sequentially to keep memory use predictable.
Make surface elevation visible before you export
A height map stores relative elevation as grayscale values. This tool creates a practical first pass from image luminance so you can inspect relief, reduce noise, and keep the result aligned with the scale of the final material.
| Output | Stores | Useful for |
|---|---|---|
| Normal | RGB tangent-space directions | Small surface lighting detail on a mesh |
| Height | Grayscale relative elevation | Bump, displacement, or cleanup |
| AO | Grayscale occlusion estimate | Crevice and contact shading |
| Roughness | Grayscale surface response | Gloss and highlight control |
| Metallic | Grayscale metalness starting point | PBR material authoring |
| Specular | Grayscale reflection starting point | Specular workflow inputs |
| Displacement | Grayscale height-derived detail | Material displacement tests |
| ORM | R = AO, G = Roughness, B = Metallic | Packed channel workflows |
Roughness, Metallic, Specular, and ORM are starting-point outputs derived from one image signal. They are not a physically accurate material scan and should be tuned against your actual lighting and shader conventions.
How to use this PBR tool
Use a grayscale height reference when possible. Evenly lit material images can work, but baked shadows, highlights, perspective, and strong color can become false height information.
Open the generatorStart with grayscale data or an evenly lit material texture where brightness is related to surface relief.
Use Contrast to separate low and high areas, Strength to control derived relief, and Blur to soften isolated noise.
Switch between Height, Displacement, and the lit surface preview to catch harsh edges or detail that will disappear at asset scale.
Download the grayscale Height or Displacement output, or export the full supporting map set when the material needs it.
The free single-image and batch flows decode, generate, and package results in the browser. Your source images are not uploaded to a conversion endpoint.
A generated map changes lighting response but cannot recover hidden geometry, remove baked shadows, or decide the right physical material values from one image.
Good starting cases
Use the generated maps to shorten the first pass, then adjust ranges, channel packing, color space, and shader settings in the tool where the asset will ship.
Create a height-map starting point from a photo or painted texture.
Prepare grayscale relief for Blender, Unity, or Unreal materials.
Preview a displacement signal before sending it into a shader.
Process a related folder with one consistent setting in the batch tool.
Height and Displacement are grayscale PNG starting points. They can drive bump, displacement, or further normal-map work, but they cannot recover hidden geometry or true physical depth from one image.
FAQ
These answers cover output meaning, local processing, channel conventions, and the limits of deriving PBR maps from one image.
A height map generator converts image luminance into grayscale values that represent relative surface elevation. The result is a starting image for bump, displacement, or normal-map workflows.
Most images can produce a starting point, but grayscale references and evenly lit material textures are more reliable. Baked shadows, reflections, and perspective can be mistaken for height.
A height map stores relative elevation in grayscale. A normal map stores surface direction in RGB, so a renderer can change lighting without moving geometry. The two maps support different parts of a material workflow.
No. It creates a grayscale image. Your renderer or 3D application must use that image for bump, displacement, or geometry experiments, and mesh density and scale still control the final result.
No. The free conversion flow decodes and processes the image in the current browser tab. The local generator does not send the source image to a conversion endpoint.
Related tools
Choose the output or source type that matches the next step of your asset pipeline. Each page keeps the conversion local and links back to the complete PBR workflow.