PBR Texture Production

The Game Developer's PBR Texture Handbook

As of August 2026, this handbook gives game developers and material artists one engine-aware PBR texture system: map semantics, base color and delighting, normals and height, roughness, metallic classification, support maps, seamless authoring, calibrated material families, controlled-light review, color space, formats, channel packing, eight renderer targets, runtime budgets, production QA, and troubleshooting.

Intermediate Game developersMaterial artistsEnvironment artists Published

Download the free 108-page handbook

PDF / 108 pages / no sign-in required

Cover of The Game Developer's PBR Texture Handbook by the PLAYTEX AI Editorial Team
Free 108-page flagship reference

Companion references

Download the working sheets

Use the handbook for context. Keep these compact references nearby during naming, export, and engine import.

Release notes

What changed?

  • : First edition published Published the 108-page flagship handbook, the complete online edition, and downloadable naming-convention and engine-import reference sheets.
  • : Primary-source review completed Checked material semantics and import guidance against current Khronos, Unity, Epic Games, Godot, Blender, Three.js, W3C, OpenEXR, Microsoft, Adobe, and PBRT references.

Direct answer

What makes a PBR texture set production-ready?

Build a portable PBR material by keeping surface evidence separate from scene lighting, declaring every map as color or numeric data, preserving unpacked canonical masters, translating those masters through a named target preset, and approving the result under controlled light and on target hardware. Treat specification rules as fixed, engine conventions as target-specific, and material value ranges as review starting points rather than universal truth.

Where PLAYTEX AI fits: Use Material Delighter to prepare lighting-neutral source color, PBR Map Generator to derive a coherent starter stack, PBR Engine Converter to build target packs, PLAYTEX AI Material Preflight to inspect the delivery, PBR Texture-Set Rotator for synchronized transforms, and Texture Budget & VRAM Analyzer for runtime estimates. Every PLAYTEX AI route in this guide is listed in the public tools directory.

What you will get

  • Understand what every common PBR map represents and how its values should be sampled.
  • Build one coherent canonical stack that can be translated reliably across engines and renderers.
  • Approve materials with controlled-light evidence, known import tests, and a runtime texture budget.

Who should use this handbook

  • A solo developer needs a reliable PBR workflow without memorizing disconnected engine settings.
  • A material artist must hand the same surface to Unity, Unreal Engine, Godot, Blender, Three.js, or glTF.
  • A studio needs naming, packing, calibration, QA, and troubleshooting rules that reviewers can reproduce.
  • A source photo or generated image must become a lighting-neutral, seamless, engine-ready material stack.
  • A project needs to reduce texture memory without removing the detail players can actually see.

Acceptance test

Approve the asset only when these are true

  • The visible material layers, physical scale, target engine, pipeline, shader, and closest view are recorded.
  • The untouched source, rights, provenance, capture conditions, and canonical masters are archived.
  • Base color contains no captured directional light, highlights, cast shadows, or permanently multiplied AO.
  • Every map has a declared semantic, range, neutral value, color-space role, bit depth, channel, and resolution.
  • Normal Y convention, tangent basis, triangulation, mirrored-UV behavior, and height scale are documented and tested.
  • Metallic classification follows the visible optical layer; clean conductors and dielectrics are not filled with arbitrary gray.
  • Roughness or smoothness conversion happens exactly once, and major variation has a physical explanation.
  • Seams, repetition, feature scale, transparent-edge RGB, alpha representation, and all dependent-map boundaries pass review.
  • The canonical stack is unpacked, synchronized, versioned as one set, and can regenerate every target delivery.
  • The material passes unlit, neutral, hard-key, grazing, alternate-environment, distance, and motion checks with exposure locked.
  • A known-value probe confirms channel order, color-space conversion, normal green, alpha mode, and shader bindings after import.
  • Target compression, full mip chain, streaming behavior, and resident texture memory pass on representative hardware.
  • The shipped folder contains only approved outputs, a manifest, preset version, engine and shader version, licenses, and review evidence.
  • The delivered files were reopened and verified in a clean project rather than only in the authoring environment.

1. What is the PBR mental model?

Physically based rendering is a contract between stable surface data, a shading model, lighting, and the camera. Geometry defines the silhouette and large form. Texture maps describe spatial changes in intrinsic color, micro-surface direction, reflectance spread, material class, coverage, and support effects. The renderer combines those facts with the current scene instead of asking the artist to paint the final illuminated picture into the maps.

The most useful mental model is simple: describe the surface and let the renderer describe the light. A portable material avoids captured highlights and cast shadows in base color, does not use metallic as a generic shine slider, and remains plausible when the light or environment changes. Energy conservation and microfacet response explain why dielectrics and conductors behave differently and why roughness changes reflection spread rather than removing reflection.

2. What does each PBR texture map represent?

Base color and most emissive textures carry visible color. Normal, roughness, smoothness, metallic, ambient occlusion, height, opacity masks, and packed channels carry numeric data. That distinction controls sampling: color textures are commonly stored with the sRGB transfer function and decoded for lighting, while numeric data should normally bypass that conversion.

Every production map needs a written contract: semantic, valid range, neutral value, transfer-function role, channel, resolution, bit depth, UV set, normal convention, and destination input. Alpha is not automatically opacity; it may carry smoothness, a mask, or unused data. A thumbnail is not enough to determine meaning, so filenames and the delivery manifest must make the role explicit.

3. What is the difference between base color and diffuse color?

Base color in a metallic-roughness model participates in both dielectric diffuse response and conductor reflectance. On a dielectric surface it should represent lighting-neutral intrinsic color. On a conductor, it tints the reflected light while the common model largely suppresses a conventional diffuse lobe. Older diffuse or specular workflows can assign the word diffuse a narrower role, so the terms should not be swapped blindly.

A usable base-color source contains no directional highlights, cast shadows, white-balance drift, or permanently multiplied AO. Delighting should remove captured illumination while preserving real pigment, stains, wear, and material variation. Clipped highlights and crushed shadows contain missing evidence; recapture under diffuse or cross-polarized light when physical accuracy matters more than recovering the existing image.

4. How are tangent-space normal maps different from height maps?

A tangent-space normal map stores a direction per texel and changes the lighting normal without changing the mesh silhouette. A height map stores scalar elevation that can drive normal generation, parallax, tessellation, or displacement. Preserve a higher-precision height master when possible, then derive target normals at the intended scale and texel density.

The mesh tangent basis is part of the asset. UV orientation, mirrored islands, triangulation, and tangent generation can change how identical pixels are interpreted. OpenGL-style Y+ and DirectX-style Y- normals commonly differ only in the green component; flip green once as a controlled test. Use geometry for silhouette-scale forms, displacement for real relief when supported, and normals for small lighting detail.

5. How should roughness and smoothness be authored?

Roughness broadens and softens reflected shapes as it increases. Smoothness is commonly its inverse: smoothness equals one minus roughness. Invert exactly once, in the numeric-data path, only when the destination contract requires it. Legacy gloss maps do not always share one response curve, so a label alone may not prove a perfect inversion.

Calibrate the broad reflection spread with a uniform value under a high-contrast environment before adding texture. Then introduce large variation tied to coating, wear, moisture, contamination, or polishing, followed by restrained micro-variation at the final texel density. Generating roughness directly from base-color luminance creates false relationships and often produces sparkle rather than believable material response.

6. What values belong in a metallic map?

The metallic channel classifies the visible optical layer as dielectric or conductor. Clean opaque regions usually sit near 0 or 1. Gray is most defensible where texture filtering mixes a boundary, a thin layer partially covers a pixel, or the resolution cannot resolve the transition. Broad arbitrary gray fields often produce muddy hybrid response.

Classify what the light reaches, not what the object is called. Paint, rust, oxide, dust, mud, varnish, and fingerprints are usually dielectric even when they cover steel. Intact paint over a metal object stays metallic 0; only exposed conductive regions move to 1. The colored reflectance of a conductor belongs in base color, not in a tinted metallic map.

7. How should AO, emission, opacity, and displacement be used?

Ambient occlusion estimates local blocking of ambient or indirect light and belongs in a separate input when the target supports it. Emission supplies color and often a separate intensity, but it does not automatically cast light into a scene. Opacity can mean binary coverage, partial blending, or a mask stored in another channel, and those modes have different sorting and filtering behavior.

Use alpha cutout or mask for binary coverage such as leaves and fences, blending for genuinely partial coverage such as smoke or gauze, and a transmission model for solid glass when available. Vertex displacement needs enough geometry to move, while parallax changes only apparent depth. Record the height midpoint, scale, direction, and scene-unit meaning instead of treating grayscale as self-explanatory.

8. How do you prepare and delight a source image?

Archive the untouched source and record capture conditions, scale, and rights. Correct lens distortion, perspective, exposure, white balance, vignetting, and artifacts before cropping or tiling. Those defects otherwise become repeated structure or contaminate every derived map.

Remove illumination in layers: broad gradients first, then local cast shadows, then specular contamination. Compare with the original frequently so real pigment and embedded wear survive. Generated images need the same review because they can contain contradictory highlights, impossible relief, and inconsistent scale. Material Delighter can estimate a cleaner source, but the result remains an estimate rather than measured reflectance.

9. How do you create a seamless material without obvious repetition?

Opposite edges must join, but a hidden border is only half the problem. Offset the image by half its width and height to expose the seam, repair structural crossings, and recheck all borders. Then inspect a 2 by 2 and 4 by 4 field at the intended world scale to find memorable stones, knots, cracks, stains, or gradients that reveal the tile origin.

Treat the stack as one synchronized system. A seamless base color with a discontinuous normal or roughness map is still broken. Structural edits should propagate through height, normal, AO, and masks. Large-scale dirt, wetness, color breakup, and landmarks are often more reusable as engine layers, decals, or world-space variation above a quieter base tile.

10. What makes a coherent PBR map stack?

A coherent stack agrees on UVs, dimensions, aspect ratio, physical scale, feature placement, material boundaries, and version. Separate observed or authored masters from derived data, reuse shared masks for coating and substrate boundaries, and regenerate dependent maps after a structural edit instead of hand-patching unrelated exports.

Resample once, late. Repeated resizing softens masks, changes alpha coverage, and damages normal direction. Version the entire material set with a manifest that records source hashes, export preset, target, and dimensions. A folder containing base color v7, normal v5, and roughness final2 is not a reproducible delivery even if every image looks plausible alone.

11. How do you calibrate stone, wood, metal, ground, fabric, and painted surfaces?

Start with material identity and finish rather than copying a universal slider value. Dry stone and ground are usually dielectric and broadly rough; wet films lower roughness and can darken apparent color without turning the material metallic. Wood remains dielectric, but unfinished fibers and varnished coatings can occupy very different roughness ranges. Fabric is normally rough and may need sheen or directional response instead of metallic behavior.

Clean exposed metal belongs near metallic 1, with base color carrying colored reflectance and roughness describing polish, brushing, fingerprints, or oxidation. Paint is a dielectric coating even on steel, while chips expose the conductive substrate locally. The handbook offers explicit review starting windows for each family, but moisture, coatings, wear, fiber direction, and renderer response can move a real surface outside them.

12. How do you review maps under controlled lighting?

Use a repeatable rig with fixed camera, exposure, white balance, tone mapping, and geometry. A sphere reveals highlight spread and grazing response, a plane reveals tiling and tangent direction, a rounded cube exposes seams and edges, and the final asset shows production context. Automatic exposure can disguise real differences between material revisions.

Each light test answers a different question: unlit view isolates base color, a neutral environment shows overall balance, a hard moving key reveals normal direction, a grazing reflection reveals roughness continuity, and an alternate environment tests portability. Compare one variable at a time and capture labeled A/B evidence with identical settings.

13. Which color space, bit depth, name, and file format should each map use?

Lighting operates in linear space. Base color and common emissive textures are usually stored with the sRGB transfer function and decoded on sample. Normal, roughness, metallic, AO, height, opacity masks, and packed channels are numeric data and should normally bypass that conversion. The shader input, not the grayscale appearance or file extension, determines the correct path.

Keep higher-precision masters for height, displacement, gradients, and aggressive edits, then quantize once for delivery. PNG is lossless, supports alpha, and allows up to 16-bit samples; OpenEXR supports half and float channels for HDR or precision-heavy data; JPEG is lossy and unsuitable for normals or critical masks. Use a filename grammar that identifies asset, material, semantic, optional precision, size, target, and fixed-width revision.

14. How should PBR channels be packed for export?

Channel packing combines independent grayscale data into RGBA and can reduce texture samples or file count. The order is not universal. glTF and Godot commonly use ORM: occlusion R, roughness G, metallic B. Unity HDRP Mask Maps use metallic R, AO G, detail mask B, smoothness A. Unity URP Lit commonly uses metallic R, occlusion G, and smoothness A. Unreal projects define their order in the material graph.

Keep separate canonical masters and generate packs through versioned presets. Sample the result as numeric data, name the order explicitly, and view every channel after import. Adding alpha can select a larger GPU compression format, so the reduction in file count may not reduce memory. Judge the final target compression rather than the source PNG alone.

15. How do PBR imports differ across engines?

The shader choice comes before the engine name. Unity Built-In, URP, and HDRP have different common layouts. Unreal material graphs are configurable. Godot ORMMaterial3D and glTF metallic-roughness define ORM semantics. Blender depends on explicit node wiring, and Three.js properties sample particular channels. Importers can also detect normals, change compression, or assign color-space flags automatically.

Build a known-value probe with unmistakable R, G, B, and A values plus a normal patch with a known raised direction. Import that tiny file before a large delivery and verify each channel, color-space conversion, alpha path, normal green direction, and sampler. Record the engine version, pipeline, shader, preset version, and any overrides so upgrades can be audited rather than guessed.

16. How do you calculate and reduce texture memory?

Resolution grows quadratically. A 4096-square RGBA8 base level contains 64 MiB of texels; a conventional complete 2D mip chain brings the estimate to about 85.33 MiB before allocation overhead. Disk or network size does not equal resident GPU memory. A compact PNG can decode to a large runtime resource, while a GPU block-compressed texture can remain compressed in memory.

Choose dimensions from screen-space need and closest intended view, then select the GPU format by semantic and platform. Mipmaps reduce minification aliasing and enable streamers to load appropriate levels; disabling them often sharpens one still and destabilizes motion. Profile the resident set in a representative worst-case scene on target hardware instead of adding source-file sizes.

17. What belongs in a production PBR QA checklist?

Use four gates. The source gate checks provenance, scale, canonical masters, bit depth, and captured-light contamination. The map gate checks semantic, range, neutral value, alignment, seams, normal convention, color-space role, transparent-edge RGB, and shared boundaries. The engine gate verifies the exact shader, bindings, sampler flags, channel probe, and comparison with the canonical preview.

The runtime and delivery gate checks compression, mips, motion, streaming, resident memory, naming, manifest, license, and package integrity. Automate dimensions, modes, channels, names, and file checks. Reserve human judgment for physical plausibility and visual continuity. Reopen the delivered package in a clean project rather than approving only the authoring folder.

18. What is the fastest way to troubleshoot a PBR texture?

Start from the visible symptom and separate five layers: source pixels, import interpretation, shader binding, lighting, and runtime delivery. Replace suspect maps with known constants, change one reversible variable, and observe the result under controlled conditions. Flip only normal green, invert only roughness, toggle only sRGB, or isolate only one packed channel.

Apply the confirmed correction upstream at the canonical source or export-preset layer so every delivery remains reproducible. Then retest the full stack, a second environment, motion, mips, and the target build. Add the failure and prevention rule to the checklist. Random slider changes destroy evidence and often hide one error behind another.

PBR authoring and delivery reference

Core map semantics

These four inputs establish the common metallic-roughness material response.

  • Base color: Carries lighting-neutral surface color for dielectrics and colored reflectance for conductors. Correct captured lighting first. Review unlit, avoid clipped extremes, and keep AO separate when the target supports it.
  • Tangent normal and height: Normal stores direction for lighting; height stores scalar elevation for derivation or displacement. Lock UVs and tangents, document Y convention and height scale, and keep silhouette-scale form in geometry.
  • Roughness or smoothness: Controls reflection spread across the micro-surface. Match the broad highlight first, tie variation to physical causes, and invert exactly once for smoothness targets.
  • Metallic: Classifies the visible layer as dielectric or conductor in the common model. Keep clean regions near 0 or 1 and reserve gray for justified filtering, boundaries, or partial coverage.

Support maps and coverage

These maps are useful only when their scope and destination behavior are explicit.

  • Ambient occlusion: Modulates ambient or indirect response in locally occluded regions. Keep it out of base color by default and verify whether the destination applies it to indirect light only.
  • Emission: Adds self-emitted color, often multiplied by a separate intensity. Use HDR-capable intensity when needed and do not assume the map illuminates nearby geometry automatically.
  • Opacity and alpha: Defines binary coverage, partial coverage, or another packed scalar depending on the shader. Choose cutout, blend, or transmission deliberately, then inspect edge RGB and straight versus premultiplied behavior.
  • Displacement: Moves vertices or changes apparent depth according to a height field. Record midpoint and physical scale, and confirm the mesh density and target technique can represent the relief.

Color space, precision, and files

Storage and sampling choices preserve or silently change the intended values.

  • sRGB color path: Stores display-oriented color efficiently and decodes it to linear values for lighting. Use for common base-color and emissive color textures when the target shader expects it.
  • Linear or non-color path: Preserves numeric map values without an sRGB transfer-function decode. Use for normal, roughness, metallic, AO, height, opacity masks, and packed channels.
  • Bit depth: Controls how many distinct values survive gradients and edits. Keep higher-precision masters for height and heavy processing; quantize once when the target format is known.
  • Filename contract: Carries semantic, target, convention, and revision when the image leaves its folder context. Use fixed tokens and a versioned manifest; avoid packed, diffuse, or final unless their meaning is defined.

Material calibration prompts

These are review starting points, not measured universal standards.

  • Stone and ground: Usually dielectric with broad dry roughness; wet films lower roughness and can darken apparent color. Review particle scale, pores, fractures, dust, compaction, and moisture as linked signals across maps.
  • Wood and fabric: Remain dielectric while finish, grain, weave, fibers, sheen, and direction shape their response. Separate unfinished material from varnish or coating and avoid high-frequency normal noise that shimmers.
  • Metal and painted surfaces: Clean exposed conductors use metallic 1; paint, rust, oxide, dust, and clear layers remain distinct materials. Build a layer mask so damage reveals the correct substrate instead of making the entire object mid-gray metallic.

Controlled-light review

Each diagnostic view isolates a different part of the material response.

  • Unlit view: Shows base color and data maps without scene-light contribution. Use it to find baked highlights, shadows, clipping, seams, and channel contamination.
  • Hard moving key: Makes directional normal response and tangent discontinuities easy to see. Sweep it over a known raised feature and across UV seams with exposure locked.
  • High-contrast environment: Reveals roughness spread, metallic reflectance, seams, and surface continuity. Rotate it through known angles and compare a uniform-value sweep before textured variation.
  • Distance and motion: Exposes mip, filtering, compression, texel-density, and streaming failures. Review at real gameplay speed and camera range rather than only in a still material preview.

Packing, compression, and runtime budget

The source file is only one stage; target format and residency determine the runtime cost.

  • Channel pack: Combines independent data maps into RGBA according to a target shader contract. Generate from separate masters, name the order, disable sRGB, and inspect all channels after import.
  • GPU format: Controls block size, quality, alpha support, and runtime memory on the target platform. Choose by semantic and target support; inspect normal vectors, smooth gradients, and hard masks after compression.
  • Mip chain: Adds prefiltered lower-resolution levels for stable minification and streaming. Keep it for minified 3D textures, include its overhead in estimates, and inspect alpha coverage and normal filtering.
  • Resident set: Represents the textures and mip levels actually occupying the runtime pool. Profile a representative worst-case scene on target hardware and tune the largest visible costs first.

An eight-stage PBR texture workflow from source to shipped build

As of August 2026, this handbook gives game developers and material artists one engine-aware PBR texture system: map semantics, base color and delighting, normals and height, roughness, metallic classification, support maps, seamless authoring, calibrated material families, controlled-light review, color space, formats, channel packing, eight renderer targets, runtime budgets, production QA, and troubleshooting.

Step 1: Define the visible material system

Name the substrate, coatings, contaminants, moisture state, physical scale, target renderer, and closest intended view. Classify the visible top layer instead of relying on the object category.

Step 2: Prepare a lighting-neutral source

Archive the original, correct lens and perspective, normalize exposure and white balance, then remove captured gradients, cast shadows, and highlights without erasing pigment or real surface history.

Prepare source color in Material Delighter

Step 3: Declare the map contract

For every map, record its semantic, valid range, neutral value, color-space role, channel, bit depth, resolution, normal convention, UV set, and destination input before editing or packing.

Step 4: Build canonical, unpacked maps

Author or derive base color, height, normal, roughness, metallic, AO, emission, and opacity from shared masks and one approved set revision. Keep source-like masters separate from engine delivery files.

Build a starter stack in PBR Map Generator

Step 5: Make scale, seams, and layers coherent

Repair opposite edges, remove memorable repetition, preserve real-world feature scale, and propagate structural edits through every dependent map. Keep macro breakup above the reusable tile when practical.

Step 6: Calibrate under controlled lighting

Review a sphere, plane, rounded cube, and the final mesh under locked exposure. Use unlit, neutral environment, hard-key, grazing-reflection, distance, and motion tests to isolate different failures.

Step 7: Translate for the exact target

Choose the engine, render pipeline, shader, packing order, normal convention, texture formats, importer flags, and alpha mode. Generate target exports from canonical masters and validate them with a known-value probe.

Build an engine package

Step 8: Preflight, profile, and package the evidence

Inspect the final files as a set, compare the bound material with the canonical preview, profile resident memory and streaming on target hardware, then ship the manifest, preset version, review captures, and approved outputs together.

Run material preflight

Engine import matrix: the three facts to verify first

This matrix is a fast orientation layer. The exact material or shader remains the authoritative contract.
Engine or rendererPacked data expectationImport rule to verify
glTF 2.0 metallic-roughnessR = occlusion, G = roughness, B = metallic; numeric data is linear.Base color RGB uses sRGB encoding, alpha is straight coverage, and tangent normals use +Y.
Unity Built-In StandardMetallic is commonly R and smoothness comes from metallic A or albedo A.Name the legacy pipeline, import normals as Normal map, and verify the Flip Green Channel setting.
Unity URP LitCommon Lit packing uses metallic R, occlusion G, smoothness A, and leaves B unused.Name the exact Lit or Shader Graph contract; custom graphs can use another layout.
Unity HDRP LitMask Map uses R metallic, G AO, B detail mask, and A smoothness.Do not bind glTF ORM directly; repack channels and invert roughness to smoothness.
Unreal Engine materialRoughness, metallic, AO, and packed masks use sRGB off; channel order is project-defined.The material graph is the contract. Record its order and confirm normal compression and green orientation.
Godot ORMMaterial3DR = occlusion, G = roughness, B = metallic.Godot expects OpenGL-style +Y normals and can invert green in the importer.
Blender Principled BSDFRoughness, metallic, normal, AO, and packed masks use Non-Color interpretation.Use the Normal Map node for tangent normals and an exporter-supported graph for glTF delivery.
Three.js MeshStandardMaterialaoMap reads R, roughnessMap reads G, and metalnessMap reads B.Color maps use SRGBColorSpace; numeric maps use NoColorSpace; verify the AO UV channel.

PBR authoring shortcuts that create fragile materials

  • Do not paint scene lighting into base color or multiply AO permanently into every delivery.
  • Do not generate roughness by blindly inverting base-color luminance.
  • Do not use metallic as a generic shine control or classify every region of a metal object as metallic.
  • Do not flip an entire normal image when only the green component needs a convention change.
  • Do not repair each tile map independently; shared structure and boundaries must stay aligned.
  • Do not call a texture packed without declaring the channel order and target shader.
  • Do not trust automatic importer detection without a known-value probe and channel inspection.
  • Do not use a PNG or JPEG file size as the runtime VRAM number.
  • Do not disable mipmaps to sharpen one screenshot when the texture will be minified in motion.
  • Do not approve a hero render without a neutral rig, alternate environment, distance pass, and target build.

What is PBR texturing in game development?

PBR texturing describes stable surface properties such as base color, tangent normal, roughness, metallic class, AO, emission, opacity, and height so a renderer can evaluate the material consistently under different lights and environments. The maps should describe the surface rather than bake the final illuminated appearance.

Which PBR texture maps should use sRGB?

Base color and common emissive color textures usually use sRGB encoding. Normal, roughness, metallic, ambient occlusion, height, opacity masks, and packed material channels are numeric data and should normally be sampled as linear or non-color. The destination shader remains authoritative.

Is metallic usually black or white?

In the common metallic-roughness model, visible dielectric regions are near black and clean exposed conductive regions are near white. Gray is mainly justified by filtered boundaries, partial coverage, or unresolved mixtures. Paint, rust, dust, oxide, and dirt on metal are usually dielectric layers.

Is smoothness just inverted roughness?

For workflows that explicitly define perceptual smoothness as the inverse of roughness, smoothness equals one minus roughness. Perform that conversion exactly once in the numeric-data path. Legacy gloss maps or custom shaders can use different semantics, so confirm the destination contract.

What is an ORM texture?

ORM is a channel pack with occlusion in red, roughness in green, and metallic in blue. It is used by glTF and Godot ORMMaterial3D and aligns with the channels sampled by Three.js MeshStandardMaterial. It is not the same as a Unity HDRP Mask Map.

How much memory does a 4K RGBA8 texture use?

A 4096 by 4096 RGBA8 base level uses 64 MiB. A conventional complete 2D mip chain brings the estimate to about 85.33 MiB before alignment or engine overhead. A GPU-compressed target format can reduce residency substantially; the PNG file size does not determine VRAM.

How should a material be tested before export?

Lock exposure and review the material unlit, under a neutral environment, with a moving hard key, at grazing reflection, in a second environment, at the closest and farthest real camera distances, and in motion. Then import a known-value channel probe and profile the target build.

Can one PBR texture package work unchanged in every engine?

A canonical unpacked map stack can feed many targets, but the delivery package often changes. Engines and shaders differ in roughness versus smoothness, packed channel order, normal convention, alpha behavior, color-space flags, texture compression, filenames, and importer settings.

Is The Game Developer's PBR Texture Handbook free?

Yes. The complete 108-page PDF, the three-page naming-convention sheet, and the four-page engine-import matrix are available from this page without sign-in. The online edition is also free to read.

How accurate are the material value ranges in the handbook?

They are explicitly labeled as review starting windows, not universal standards. Real response changes with surface finish, coating, moisture, wear, capture method, shader model, lighting, and tone mapping. Use measured references when available and verify under controlled conditions.

Primary sources

Official specifications and renderer documentation

PLAYTEX AI guidance is paired with official specifications and platform documentation where the handoff depends on an outside convention.

  1. Khronos glTF 2.0 Specification
  2. Khronos KTX 2.0 Specification
  3. Epic Games: Physically Based Materials in Unreal Engine
  4. Epic Games: Using Texture Masks in Unreal Engine
  5. Epic Games: Texture Streaming Overview
  6. Epic Games: Texture Asset Editor
  7. Unity Manual: Standard Shader Material Inspector
  8. Unity Scripting API: TextureImporter.sRGBTexture
  9. Unity Manual: Normal map import settings
  10. Unity Manual: URP Lit shader
  11. Unity HDRP: Mask and Detail Maps
  12. Godot: StandardMaterial3D and ORMMaterial3D
  13. Godot: ORMMaterial3D class reference
  14. Blender Manual: Principled BSDF
  15. Blender Manual: glTF 2.0 material setup
  16. Three.js: MeshStandardMaterial
  17. Three.js: Color Management
  18. W3C: PNG Specification, Third Edition
  19. OpenEXR: Technical Introduction
  20. Microsoft: Direct3D Block Compression
  21. PBRT: Roughness Using Microfacet Theory
  22. Adobe Substance 3D: Bitmap 2 Material parameters