What the generator infers
High-frequency local changes are treated as microsurface variation and added to Base Roughness. This cannot identify a material by appearance; it produces an editable mask for an artist to refine.
- White reflects broadly and looks rough
- Black reflects sharply and looks smooth
- Import as Linear / Non-Color
- Review compressed image sources carefully
Set base roughness and contrast
Base Roughness establishes the overall reflectance spread before local detail is added. Start from the material class you intend to represent: polished surfaces need a darker base, while chalk, unfinished wood and weathered stone usually need a lighter one. Contrast separates smooth and rough regions, but excessive contrast produces an artificial black-and-white mask.
Detail Influence controls how strongly small changes in the inferred height field affect roughness. Lower it when the source contains image noise, pores that should belong only in the normal map or compression artifacts. Use Invert only when the source relationship is consistently opposite to the desired response; it is not a substitute for selecting material regions manually.
Evaluate roughness under lighting
Roughness is easiest to judge from moving highlights, not from the grayscale texture alone. Rotate the light in the 3D preview and watch the width and stability of reflections. If highlights sparkle at normal viewing distance, reduce contrast or detail influence. If the material looks uniformly plastic, introduce broad, restrained variation instead of high-frequency noise.
Generated roughness should remain linear data in Blender, Unity, Unreal Engine and Godot. Do not apply an sRGB color transform. When packing the result into ORM, confirm that the destination shader reads roughness from the green channel and does not expect smoothness, which is the inverse quantity.
Where manual editing matters
A color image cannot determine whether a bright region is bare metal, wet paint or a light-colored dielectric. Use selections or a paint tool to correct semantic areas such as scratches, fingerprints, coatings and exposed substrate. The generator supplies coherent local variation; the artist remains responsible for material meaning.
Prepare an image for roughness generation
Begin with a source that shows the material clearly and evenly. A flat albedo scan is usually more useful than a beauty render because directional lights, deep shadows and bright reflections can be mistaken for changes in microsurface response. Correct perspective, remove large lighting gradients and crop the material to the area that will actually be used. If the texture must tile, repair its seams before judging generated roughness; a seam in the source often becomes a distracting line in the reflection.
Resolution should match the amount of meaningful detail in the material. Enlarging a small JPEG does not restore pores or scratches, and aggressive compression can turn block boundaries into false roughness variation. PNG or a carefully encoded WebP source generally preserves edges better. When a photograph contains fine sensor noise, apply a little blur in the height stage or reduce Detail Influence so the roughness map describes the surface rather than the camera.
A practical roughness map workflow
Load the image and compare the albedo, height and roughness tabs. First make sure the height interpretation is not dominated by shadows or color patterns. Set Base Roughness from the intended material class, then raise Detail Influence slowly until meaningful wear, grain or pores affect the highlight. Adjust Contrast last. This order keeps the average material response stable while local variation is introduced deliberately instead of producing a dramatic but unusable grayscale image.
Turn on the 3D preview and test a plane for tiling, a sphere for highlight shape and a curved object for changing reflection angles. Move the light rather than judging one attractive frame. A convincing roughness texture produces stable, broad material behavior at normal viewing distance and reveals additional variation as the camera approaches. If the pattern reads like printed color under every light direction, it is probably too closely copied from albedo.
Roughness versus smoothness
Roughness and smoothness describe opposite ends of the same control. In a roughness map, black represents a smooth surface with a narrow, clear highlight and white represents a rough surface with a wider, dimmer highlight. A smoothness workflow reverses that meaning. Do not rename a roughness file and assume the engine will invert it automatically; either invert the values during authoring or connect the channel through the correct shader operation.
Blender, Unreal Engine and many metallic-roughness workflows use roughness directly. Some Unity shaders store smoothness in an alpha channel or expect a pipeline-specific mask map. Custom shaders may define a different range or channel. Before packing or compressing the texture, check the exact material contract and test two known values so a convention error does not make every surface look like polished plastic or dry chalk.
Choose values by material class
Use real material behavior as the starting point, not the average brightness of the photograph. Clean glass, polished clear coat and smooth metal tend toward lower roughness, while unfinished stone, concrete, paper and dusty surfaces tend toward higher values. Most real assets still occupy a moderate range rather than pure black or white. Reserve extreme values for regions that genuinely need a mirror-like or exceptionally diffuse response.
Variation should also make physical sense. Finger oils can create smoother marks on a rough device, worn edges may become smoother after repeated contact, and chipped paint may expose a substrate with a different response. Water, oxidation and dust can change roughness without changing metallic identity. These relationships require semantic editing because the generator sees local image structure but cannot know what substance each pixel represents.
Fix common roughness artifacts
Sparkling highlights usually indicate excessive high-frequency contrast, source noise or texture compression. Reduce Detail Influence, soften the source slightly and evaluate with the destination engine's mipmaps enabled. Large bright or dark patches that follow illumination suggest baked lighting in the source; remove the gradient or paint a broader material response by hand. A visible tile boundary requires source cleanup and Repeat edge sampling, not simply more contrast.
Banding can appear when a subtle gradient is stretched too aggressively or compressed into too few levels. Keep the working adjustments moderate and avoid repeated lossy exports. If the roughness looks correct in the browser but wrong in an engine, verify that sRGB is disabled, the right channel is connected and the shader expects roughness rather than smoothness. Texture compression and platform quality settings can also remove small variations.
Export, pack and validate the texture
Export roughness as an 8-bit grayscale data texture unless a particular pipeline requires a packed file. Eight-bit precision is normally adequate because reflections, lighting, filtering and compression hide extremely small value steps. Keep a lossless master when further painting is planned. Use an explicit suffix such as roughness so team members and import automation do not confuse it with gloss or smoothness.
When using the supplied ORM texture, roughness is stored in green, ambient occlusion in red and metallic in blue. Confirm this order in the destination shader. Inspect the final material at its expected texel density, with production compression and several lighting environments. Validation in the target renderer is the final authority; the browser preview is a fast, consistent authoring aid rather than a promise that every engine will shade identically.
- Import roughness and ORM as Linear or Non-Color data
- Check whether the shader expects roughness or inverted smoothness
- Review mipmaps and compression at the target platform quality
- Keep generated values editable for material-specific corrections
