PBR in Unreal Engine 5 — How the Material Editor Works
Unreal Engine 5's Material Editor can look overwhelming at first. But for a standard PBR game asset from Trumble, you only need to know five input slots and one texture packing convention. This guide walks through the complete material setup from texture import to a working in-engine material.
The Material Editor
Unreal's Material Editor is a node-based shader graph. You build materials by connecting texture samples and other nodes to the input slots of the main Material output node. That output node represents the final shaded surface — its inputs correspond directly to PBR channels.
To open a material, double-click any material asset in the Content Browser. A new material opens in the Material Editor. The large node on the right side of the graph is your Material output — everything you add connects into it. The preview sphere on the left updates in real time as you build the graph.
Importing Textures Correctly
Getting import settings right is just as important as the material graph itself. Incorrect import settings cause subtle but significant shading errors that are hard to diagnose after the fact.
T_AssetName_D — sRGB: On, Compression: Default
Albedo is a color texture and should be imported in sRGB color space. Unreal applies gamma correction automatically when sRGB is enabled. Leave compression as Default (DXT1 for no alpha, DXT5 for RGBA).
T_AssetName_N — sRGB: Off, Compression: Normal Map
Normal maps must be imported with sRGB disabled and Compression set to Normal Map (BC5). This applies the correct DirectX Y-flip convention automatically and uses an optimized compression format for normal data.
T_AssetName_ORM — sRGB: Off, Compression: Masks
The ORM packed texture contains greyscale data — not color — so sRGB must be off. Set Compression to Masks (BC4/BC5) to avoid color compression artifacts corrupting the greyscale channel data.
Connecting Your Maps
With textures imported, open your material and add Texture Sample nodes for each map. Right-click in the graph and search for "Texture Sample" to add one, then set its texture in the Details panel on the left.
The ORM Texture Convention
Unreal Engine's standard PBR workflow uses the ORM convention — Occlusion in Red, Roughness in Green, Metallic in Blue. This is the format Trumble's Unreal export preset outputs automatically, so if you export from Trumble with the Unreal preset, the texture is already packed correctly.
| Channel | Map | Material Input | Value Range |
|---|---|---|---|
| Red (R) | Ambient Occlusion | Ambient Occlusion | 0 = fully occluded, 1 = fully open |
| Green (G) | Roughness | Roughness | 0 = mirror smooth, 1 = fully matte |
| Blue (B) | Metallic | Metallic | 0 = non-metal, 1 = pure metal |
The Green channel gets the most bits in DXT/BC compression formats because human vision is most sensitive to green. Roughness — which has the most subtle variation and needs the most precision — is placed in Green for exactly this reason. It's a deliberate technical decision, not an arbitrary convention.
Material Instances
Once your base material is working, you should almost never apply it directly to assets. Instead, create Material Instances — child materials that inherit the parent's graph but expose specific parameters you can tweak without touching the base material.
Convert texture slots to parameters
In the Material Editor, right-click each Texture Sample node → Convert to Parameter. Give it a name (BaseColor, Normal, ORM). Now the texture can be swapped per-instance without editing the material graph.
Create a Material Instance
Right-click the base material in the Content Browser → Create Material Instance. Name it MI_AssetName. Open it to see all your exposed parameters — swap the texture parameters to your asset's specific texture files.
Apply the instance to the mesh
Drag the Material Instance onto your Static Mesh asset (or assign it in the mesh's material slot). Every asset uses its own instance with its own textures — all sharing the same base material graph.
Exporting from Trumble for Unreal
Trumble's Unreal Engine export preset produces everything you need for this material setup in one download. Select the Unreal preset at export time and Trumble outputs:
Albedo / Base Color. sRGB color space. Import with sRGB: On in Unreal. Connect RGB to Base Color.
Normal map in DirectX convention (Y-flipped for Unreal). Import with Compression: Normal Map. Connect RGB to Normal.
Packed ORM — AO in R, Roughness in G, Metallic in B. Import with sRGB: Off, Compression: Masks.