PBR in Unity — Understanding the Standard Shader
Unity's PBR material setup differs from Unreal in two important ways: it has two different render pipelines with different material workflows, and it uses Smoothness instead of Roughness. Get these right and the rest is straightforward. This guide walks through both URP and HDRP setups from a Trumble export.
URP vs HDRP — Which Pipeline Are You Using?
Unity has two modern render pipelines, each with its own material system. Knowing which one your project uses is the first thing to establish — the material setup is different for each.
Universal Render Pipeline (URP)
Optimised for mobile, mid-range PC, and console. Uses the Lit shader. Simpler material setup — separate texture slots for Metallic and Smoothness. Good choice for most indie projects and any mobile target.
High Definition Render Pipeline (HDRP)
Optimised for high-end PC and console. Uses the Lit shader with the Mask Map packed texture convention. More complex but significantly better visual quality. Required for photorealistic targets.
Check which pipeline your project uses by going to Edit → Project Settings → Graphics. The Scriptable Render Pipeline Settings field shows either a URP or HDRP asset. If it's empty, you're on the Built-in pipeline (the older legacy system).
URP Material Setup
In URP, create a new Material and set its shader to Universal Render Pipeline/Lit. The Inspector shows the material's texture slots directly — no node graph needed for basic PBR setup.
HDRP Material Setup
In HDRP, create a Material and set its shader to HDRP/Lit. HDRP uses a packed Mask Map texture instead of separate slots — one texture carries Metallic, AO, Detail Mask, and Smoothness across its four channels.
Import textures with correct settings
Base Map: sRGB On. Normal Map: set Texture Type to Normal Map. Mask Map: sRGB Off, Texture Type to Default (not Normal Map or Sprite).
Create and configure the material
Right-click in the Project window → Create → Material. In the Inspector, set the shader to HDRP/Lit. Assign your textures to the correct slots.
Check the Surface Type
Set Surface Type to Opaque for standard assets. Use Transparent only for glass or other truly transparent surfaces — not for cutout assets, which should use Alpha Clipping instead.
The HDRP Mask Map
HDRP's Mask Map is Unity's equivalent of Unreal's ORM texture — a packed texture carrying multiple greyscale maps in one file. The packing convention is different from ORM, which is the most common source of confusion when working across both engines.
| Channel | Map | Value Range |
|---|---|---|
| Red (R) | Metallic | 0 = non-metal, 1 = pure metal |
| Green (G) | Ambient Occlusion | 0 = fully occluded, 1 = fully open |
| Blue (B) | Detail Mask | Controls detail layer blending (can be white if not using detail layers) |
| Alpha (A) | Smoothness | 0 = fully rough/matte, 1 = mirror smooth (inverse of Roughness) |
Note that Metallic and AO are in different channels compared to Unreal's ORM (where AO is Red and Metallic is Blue). And instead of Roughness, Unity uses Smoothness — the mathematical inverse of Roughness — in the Alpha channel. Both of these differences require Trumble to output a differently packed texture for Unity HDRP vs Unreal.
The Smoothness Trap
The single most common mistake when moving assets between Unreal and Unity is confusing Roughness and Smoothness. They're mathematically inverse — a Roughness value of 0.8 equals a Smoothness value of 0.2. Using a Roughness map in a Smoothness slot (or vice versa) makes polished surfaces look rough and rough surfaces look shiny.
Roughness (Unreal, Godot)
White = rough / matte. Black = smooth / shiny. A value of 1.0 is completely diffuse chalk. A value of 0.0 is a perfect mirror.
Smoothness (Unity)
White = smooth / shiny. Black = rough / matte. The exact inverse. A value of 1.0 is a perfect mirror. A value of 0.0 is completely matte.
Exporting from Trumble for Unity
Trumble has separate export presets for Unity URP and Unity HDRP. Select the correct preset for your project's pipeline and Trumble outputs the right texture format with the right channel packing for each.
Unity URP export
Outputs separate Albedo, Normal, Metallic (greyscale), and AO maps. Smoothness is embedded in the Alpha channel of the Metallic map. sRGB set correctly per map.
Unity HDRP export
Outputs Albedo, Normal, and a packed Mask Map (R=Metallic, G=AO, B=Detail, A=Smoothness). Roughness is inverted to Smoothness automatically.
Base Color / Albedo. Same for both URP and HDRP. Assign to Base Map slot.
Normal map in OpenGL convention (Y+). Import as Normal Map type in Unity texture settings.
HDRP Mask Map only. R=Metallic, G=AO, A=Smoothness. Assign to Mask Map slot in HDRP/Lit.