Skip to main content

Browser-based PBR tool

Displacement Map Generator

Turn image luminance into a height-derived displacement starting point with local processing, live material preview, and an optional full PBR export set.

Eight map outputs

Generate a consistent map set locally, then validate it in the material system where scale and lighting are visible.

No upload requiredPNG + ZIP export

Local PBR generator

Generate displacement detail from an image.

The Displacement tab is selected first so you can judge the grayscale relief, while the same pass provides Normal, Height, AO, Roughness, Metallic, Specular, and ORM outputs.

Browser tool·no server upload

Generate displacement detail from an image.

The Displacement tab is selected first so you can judge the grayscale relief, while the same pass provides Normal, Height, AO, Roughness, Metallic, Specular, and ORM outputs.

Processed in your browser
stone-sample.png

Upload an image or choose a sample texture to start.

Preparing a Stone sample…
Preview surface
PNG exportHeight-based conversionNo sign-upSee supported outputs

Batch PBR export

Apply one material setup to a whole texture set.

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.

Batch processing·up to 20 images

Batch-generate a consistent PBR map set.

Use one Strength, Blur, Contrast, and engine direction setting across a folder of related images, then download eight PNG outputs per source.

Files stay in this browser

Drop multiple images here

PNG, JPG, JPEG, and WebP files up to 12 MB each. The browser processes them sequentially to keep memory use predictable.

No images queued yet.
Add several source textures to create a consistent PBR map set.
Sequential browser processingOne shared parameter setZIP export

Keep height information visible before it reaches geometry

Build a practical first pass, then refine it in your renderer.

Displacement needs a height signal that matches the scale of the final mesh. This tool gives you a normalized, grayscale starting point and a lit preview so you can spot exaggerated edges, noisy pixels, and baked lighting before export.

  • Normal RGB tangent-space directions
  • Height Grayscale relative elevation
  • AO Grayscale occlusion estimate
  • Roughness Grayscale surface response
  • Metallic Grayscale metalness starting point
  • Specular Grayscale reflection starting point
  • Displacement Grayscale height-derived detail
  • ORM R = AO, G = Roughness, B = Metallic
OutputStoresUseful for
NormalRGB tangent-space directionsSmall surface lighting detail on a mesh
HeightGrayscale relative elevationBump, displacement, or cleanup
AOGrayscale occlusion estimateCrevice and contact shading
RoughnessGrayscale surface responseGloss and highlight control
MetallicGrayscale metalness starting pointPBR material authoring
SpecularGrayscale reflection starting pointSpecular workflow inputs
DisplacementGrayscale height-derived detailMaterial displacement tests
ORMR = AO, G = Roughness, B = MetallicPacked 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

A repeatable path from pixels to material maps.

A grayscale height map is the clearest input because its brightness is meant to represent relative elevation. Color textures also work, but their luminance may mix hue, shadows, highlights, and actual surface relief.

Open the generator
01

Use a height-friendly source

Start with grayscale data when possible. White-to-black values should describe relative elevation rather than only color or lighting.

02

Set the relief range

Use Contrast to control the height separation and Strength to control the derived normal response. Neither control can recover missing geometry.

03

Soften artifacts

Apply a small Blur when the source contains isolated pixels, compression noise, or details too small for the final mesh scale.

04

Export height or PBR maps

Download the displacement or height PNG for a grayscale workflow, or use the complete set when the same source also needs roughness and ORM outputs.

Private local processing

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.

Validate at final scale

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

Useful for iteration, not a substitute for material judgment.

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-derived relief map from a grayscale source.

Prepare a bump or displacement starting point for Blender, Unity, or Unreal.

Compare displacement strength against a normal map in a lit preview.

Batch a set of height references with identical contrast and blur.

Displacement and Height are exported as grayscale PNGs. They can be used for material experiments, bump conversion, or as a starting point for geometry-based displacement after you establish the correct height range in your 3D application.

FAQ

Questions before you export?

These answers cover output meaning, local processing, channel conventions, and the limits of deriving PBR maps from one image.

What is the difference between a height map and a displacement map?

Both are grayscale representations of relative surface height in this tool. Height is the neutral source-data label, while displacement describes the intended use of that grayscale signal to move geometry or drive a displacement shader.

Can a displacement map generator create real geometry?

No. This page creates an image. Your 3D application or material system must use that image to displace geometry or alter shading, and the final result depends on mesh density, scale, filtering, and shader settings.

Should a displacement map be grayscale?

Yes, grayscale is the clearest format because each pixel can represent a relative height. Color inputs are accepted, but the tool converts them to luminance first and cannot tell whether a color change represents actual elevation.

Why does my displacement map look too harsh?

Lower Contrast or Strength, add a small Blur, and inspect the map at the same scale used by the final material. Strong baked shadows and compression noise can also create false height edges.

Can I download a normal map with the displacement map?

Yes. The same local generation pass creates Normal, Height, AO, Roughness, Metallic, Specular, Displacement, and ORM PNG outputs, so you can download only the map you need or use the full PBR set.

Related tools

Continue the material workflow.

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.

Open the main generator