Generate four PBR texture maps from one image
Physically based rendering separates material properties so lighting can remain consistent across scenes. This image-to-PBR texture map generator derives exactly four useful signals from a source: surface direction in the normal map, relative elevation in the height map, localized crevice darkening in ambient occlusion, and a roughness approximation based on local variation. It does not generate or claim a metallic map.
These are deterministic artistic estimates. They save setup time, but they are not laboratory measurements of a real material. Inspect each channel, tune it for the destination renderer, and treat the source color image as albedo only when baked light has been removed.
- Select any generated channel in the 2D output tabs.
- Inspect the normal signal under a movable 3D light.
- Export individual PNG files or all channels in one ZIP.
- Use a consistent filename stem for predictable imports.
Ambient occlusion and roughness need artistic judgment
The local AO approximation darkens areas that sit below nearby luminance samples. It is useful for previews and stylized materials, but it does not trace geometry or replace baked mesh AO. Keep AO subtle in a physically based pipeline, especially when the renderer already calculates screen-space or ray-traced occlusion.
Roughness is inferred from local tonal variation: detailed, noisy regions trend rougher while smoother regions trend less rough. Color photographs can violate that assumption, so inspect the map rather than accepting it as ground truth. The output remains grayscale and easy to revise in a conventional texture editor.
A private path first, AI only by choice
Local generation runs inside this browser. Your source image is not sent to Normal Map Studio, FAL, or another model provider unless you deliberately open an AI workflow and confirm the upload disclosure.
This separation makes the free workbench suitable for client textures, unreleased game assets, and classroom material. AI credits are reserved only after the server accepts an explicitly consented request. Failed or timed-out provider jobs release their reserved credits instead of being presented as successful work.
How the four maps line up in a material
A physically based material is a set of channels that describe different properties of the same surface, and they only work when they agree with each other. The base colour says what the material is made of. Roughness says how polished it is. The normal map says which way each point faces. Any occlusion map adds local shadowing that the lighting model would not otherwise produce. Metalness says whether the surface is a conductor. Four of those are estimates the workbench can derive from one source; the fifth is not, which is why there is no metallic output.
Alignment is the practical risk. Every map in a set must share the same dimensions and the same texel grid, so a feature at coordinate 512, 512 in the base colour must land on the same point in the normal map. Generating the whole set from one source in one pass avoids the misalignment that appears when maps are produced at different times at different sizes, and the resulting offset is usually only noticed once the material is lit.
Order matters when you tune. Adjust the height or normal signal first, because the surface shape drives where the occlusion and roughness detail should fall. Changing the shape afterwards invalidates the occlusion you already checked, so re-inspect the 3D preview after any structural change rather than only after the final one.
Keep the maps as separate files rather than baking them into one image. Engines read them as separate inputs with separate colour-space settings, and a combined texture forces the shader to decode channels it does not want. Separate PNGs with a shared filename stem are the least surprising arrangement a destination project can receive.
Choosing a resolution for a texture set
Resolution should follow the size the material occupies on screen. A texture applied to a small prop needs far fewer pixels than the same material applied to a floor the camera crosses, because the visible detail is a function of texel density rather than of the image alone. Decide the real-world scale of the surface first, then pick the smallest resolution that keeps a consistent texel density across the asset.
The free workbench generates up to 2048 pixels on the longest side, which covers most real-time material work. A Pro Local license raises that to 8192 for the cases where it is genuinely needed: large architectural surfaces, close-up renders, and print-oriented output. Higher resolution is not automatically better, because every extra step multiplies memory, load time, and the cost of the compression step in the destination project.
Prefer a power-of-two size. Mipmap generation, texture streaming, and block compression all behave more predictably at 1024 or 2048 than at an arbitrary width, and non-power-of-two sources can introduce sampling differences between platforms that are slow to diagnose. If the source is not a power of two, resize before generating rather than afterwards.
Match the resolution of the whole set. A normal map at 4096 paired with a roughness map at 1024 forces the shader to sample at different scales, and the mismatch shows up as detail that appears in the lighting but not in the surface. Generate all four channels at one size unless the destination project explicitly requires otherwise.
When a derived set is not enough
Derived maps are a good first pass and a poor final answer for surfaces that will be seen up close. A photograph of a real material contains information that no single-image estimate can separate: baked lighting, colour that does not correspond to height, and wear patterns that follow the object rather than the texture space. Those cases justify a scanned material, a photographed set with lighting removed, or a purpose-made authoring pass.
The useful test is what happens under a moving light. A derived set that looks convincing from one angle but shows a flat response from another is usually limited by the source rather than by the parameters. Before spending time on parameter tuning, rotate the light across the surface and decide whether the source image actually contained the shape you are trying to reproduce.
When the answer is no, change the input rather than the settings. A cleaned source with even illumination, an actual height map, or an AI depth estimate for a scene with real geometry will all produce a better set than a heavily corrected photograph. The controls are there to refine a good input, not to invent relief that was never captured.