All ToolsStart a project ↗
Material troubleshooting

Roughness vs glossiness: fix the map before the lighting

Roughness describes how broadly a surface spreads a reflection. Glossiness runs in the opposite direction. For a pipeline that defines glossiness as one minus roughness, convert with roughness = 1 - glossiness. Check the destination shader first: a specular map is not a glossiness map.

glTF packed material channels: green is roughness, blue is metallic, red is occlusion only when separately referenced.
Read each channel independently. Red is not automatically connected to occlusion just because the image is packed.Download the reference SVG
One minus, onceNumeric illustration for a one-minus glossiness convention. Not a measured finish.
  1. Glossiness 0.8Convert: 1 - 0.8 = roughness 0.2.
  2. Glossiness 0.5Convert: 1 - 0.5 = roughness 0.5.
  3. Glossiness 0.2Convert: 1 - 0.2 = roughness 0.8.
The decision

What this solves

A product can look like polished plastic or chalk because the wrong map, channel or colour interpretation reaches the shader. Changing the lights can hide the symptom without repairing the material.

What black and white mean

In a conventional roughness input, low values produce a narrower reflection and high values spread it. This does not make a black roughness patch a black material. Base colour, metalness, lighting and viewing angle still contribute to the visible result. Judge the reflection on a known shape, not the greyscale file alone.

A glossiness workflow reverses that progression. Before inverting a whole library, make two small known-value patches, assign them to the destination shader and confirm which patch produces the broader highlight. This makes the conversion decision reproducible.

The one-minus conversion

For normalised values use R = 1 - G. For an eight-bit greyscale image under the same numeric convention use R8 = 255 - G8. Thus 204 becomes 51. This is an arithmetic conversion of stored values, not a guarantee that two different renderers will produce identical highlights.

Do the operation once. A source exporter may already have inverted a glossiness map. Record the original map role and the conversion in the filename or handoff note so another artist does not invert it again.

Colour space and packed channels

Treat scalar material data according to the receiving shader documentation. Applying a display-colour transform to a roughness value changes the number that drives the material. A midpoint stored in a file can therefore arrive as a different roughness even though the thumbnail looks plausible.

For glTF metallic-roughness textures, roughness uses the green channel and metallic uses blue; these values use linear interpretation. Do not connect the RGB composite as if it were a single greyscale map. Check the actual channel assignment after export.

Why a photo is only a starting point

A dark area in a photograph might be paint, shadow, dirt or a reflection. Converting brightness directly to roughness cannot distinguish those causes. Use generated maps as candidates, then separate the material regions and compare against the real finish where a reference is available.

For review, keep geometry, camera and lights fixed while comparing maps. Start with a simple neutral surface and change one input at a time. Once the map behaves predictably, return to the final art direction and judge the complete product.

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

Recommended workflow

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

Identify the input

Read the source material documentation and filename. Establish whether it is roughness, glossiness, specular colour or a packed texture.

Open tool

Check the interpretation

Confirm the shader input, channel and colour-space setting. Invert only when the source and destination conventions require it.

Open tool

Compare the export

Inspect the same product with a broad reflection and a small highlight. Reopen the exported asset before approving it.

Open tool
Example outcome

Worked example, not a measured material: a glossiness value of 0.8 becomes roughness 0.2 in a one-minus pipeline. A glossiness value of 0.2 becomes roughness 0.8. Keep both patches in a test strip so an accidental second inversion is obvious.

Basis and limitations

The arithmetic example defines its convention explicitly. No surface measurements or universal material presets are claimed. Authored by XO3D Labs. Examples are synthetic and intended for troubleshooting.

Khronos glTF material specification: Primary reference for the glTF channel assignment and linear scalar inputs.

XO3D Labs Roughness Map tool: The working tool for inspecting and exporting a roughness map. Verify the saved map in the destination renderer.

Common mistakes
  • Inverting a specular-colour map as though it were glossiness.
  • Applying two inversions in separate applications.
  • Changing the lighting before checking the shader channel.
Next pages

Keep going

FAQ

Questions this page answers

Can I recover exact roughness from a photograph?

No. Image brightness can come from colour, lighting or material response. Treat a derived map as a candidate and compare it with an appropriate reference.

Is roughness the same as specular?

No. Roughness controls reflection spread. Specular inputs describe other reflection properties according to the shader. Confirm the material model before converting.

Should I always invert a glossiness map?

Only when the source defines glossiness as the inverse of the destination roughness, and the exporter has not already converted it.

Next step

Talk to XO3D

Bring the product, audience, launch date and required assets. We can help define the creative direction and production scope from there.

Tell us about your brief

Published by XO3D Labs: 2026-09-17

Updated: 2026-09-17

About the studio behind these tools

XO3D is a director-led product CGI studio, and these tools come out of its own production pipeline rather than being built as marketing. We work 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.