All ToolsStart a project ↗
Product finish preparation

Prepare product finishes with deliberate roughness and metalness

A bright photograph does not tell you which pixels are metal or how rough a surface is. Start with the product’s construction and approved references, then build maps whose meaning you can explain and whose values you can check.

The decision

What this solves

A correctly encoded map can still describe the wrong surface or be assigned to the wrong material.

Describe the surface before making a map

Separate the visible surfaces: exposed metal, painted panels, plastic, printed marks, glass and coated parts. Describe what is known and what still needs confirmation. A metal component underneath opaque paint does not mean the visible paint should be assigned a fully metallic response.

For a technology enclosure or premium consumer product, ask for labelled finish references and consistent views of each region. For an industrial assembly, identify which revision and components the references cover. Photographs show light, exposure and environment as well as the material; they are not a roughness measurement.

Establish a controlled roughness check

Make three opaque grayscale test patches with values 0, 128 and 255. In a normalized eight-bit data input, these correspond to 0, approximately 0.502 and 1. Keep the material factor at 1 while checking that the map reaches the intended slot. This verifies the input path; it does not assign a measured physical finish.

The roughness tool currently has an English interface. Use it to prepare an explicit map, keep camera and lighting fixed, and change one variable at a time. A mid-grey map is not a promise of “50% gloss”. Glossiness-to-roughness inversion is only appropriate when the source and destination definitions agree; a numeric inversion alone is not a calibrated material conversion.

Paint metalness intentionally

Use the metalness editor to mark the intended regions. For a simple separated-surface test, black 0 represents the non-metal region and white 255 the metal region. Keep edge treatment deliberate; an intermediate edge pixel can be a blend, not evidence of a different alloy.

Try the original sample, then clear or edit the mask and inspect the downloadable PNG. The tool does not identify metal from photographic brightness. Save the mask with its material role and apply it explicitly to the correct part or shared material.

Verify channels and distinguish surface detail

A standalone grayscale mask is not an ORM image. In the supported glTF metallic-roughness layout, roughness belongs in G and metalness in B. In the channel packer, a controlled pixel with R=255, G=128, B=0 and A=255 gives a mid-value roughness channel and a zero metalness channel. Split G and B back out to check those values.

Keep source and output dimensions equal for this check and avoid colour correction or lossy JPEG export. The packer preserves numeric channels rather than interpreting a photograph. Its English interface remains labelled as such.

Height describes a separate kind of detail. The height tool’s seeded sample is repeatable, and a flat height input produces a flat normal in the tested connected workflow. That does not measure product relief. In the renderer handoff, height becomes normal detail; the mesh is not displaced.

The grayscale test file contains three pixels, left to right: 0, 128 and 255. The ORM test contains one pixel: R=255, G=128, B=0, A=255. These tiny original files check numeric channels, not UV coverage or visual finish.

Review the finish as part of the product

Keep the same lighting and camera for the first comparison, then inspect the surface under more than one useful lighting direction. Check transitions between materials and whether all parts sharing a material should receive the change. A correct pixel value can still sit on the wrong UV region.

For a production handoff, include the native model, material-region labels, approved references, map roles, channel packing, dimensions and unresolved finish decisions. Explain what the product film or image should communicate. That gives the studio a basis for look development without presenting generated masks as measured materials.

Tools for this task

Start with these tools

Use the tools in order, or jump straight to the one that matches the question in front of you.

Workflow

Step-by-step workflow

The sequence keeps the work practical and reduces the usual guesswork before production.

Label the visible finishes

Distinguish exposed metal, coatings and other surfaces using approved product references.

Check the roughness input

Use opaque 0, 128 and 255 patches with fixed light, camera and factor.

Open tool

Create a deliberate metalness mask

Mark regions manually and inspect the exported PNG.

Open tool

Verify channels and hand over context

Check packed channels, material assignments and the reference information needed for production.

Open tool
Example outcome

Original downloadable opaque PNGs contain grayscale values 0, 128 and 255 and one ORM pixel R=255, G=128, B=0, A=255.

Common mistakes
  • Inferring metalness from brightness in a photograph.
  • Calling generated roughness a measured finish.
  • Applying a packed texture to a standalone grayscale slot.
Work with XO3D

Related XO3D services

Use the tools to clarify the task. For a product campaign that needs creative direction and production, explore the relevant XO3D programme.

Next pages

Keep going

FAQ

Questions this page answers

Can a photo generate physically measured roughness?

No. These image and mask tools provide editable starting data. Lighting and colour in a photo do not uniquely determine physical roughness.

Should a painted metal enclosure be white in the metalness map?

Do not classify the hidden substrate alone. Represent the visible surface and coating using the intended shader model and approved finish reference.

Is grey 128 exactly 0.5?

For normalized eight-bit data it is 128 divided by 255, approximately 0.502. The value does not mean a measured percentage of gloss.

Can I send a packed ORM image straight to the renderer’s metalness slot?

No. This connected renderer input expects an opaque standalone grayscale PNG. Split the intended channel first and check the selected material.

Next step

Put the guide into practice

Open a tool, check the result and use the relevant guide when a question comes up.

Open Edit a metalness mask

Published by XO3D Labs: 2026-10-15

Updated: 2026-10-15

About the studio behind these tools

Practical tools from XO3D, a director-led product CGI studio working with tech, industrial and premium consumer brands on product films, launch stills and interactive experiences.

That makes us the right choice for launch-critical work where the visual standard has to be high and the product may not exist yet.

It makes us the wrong choice for three things: hundreds of routine SKUs to a fixed template, a permanently live self-service configurator across a large range, and the campaign idea itself.