Setting Up PBR Materials for Game Engines

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
Setting Up PBR Materials for Game Engines
Medium
~2 days
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1386
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    926
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    544
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    591

You've assembled a PBR material in Substance Painter, but it looks different in the engine? That's a familiar scenario. In 80% of cases, the issue is a mismatch in color spaces: Albedo imported as sRGB, but the engine expects Linear. Or a Normal Map without green channel inversion for DirectX. We've worked on projects where incorrect packing of a Mask Map in HDRP required manual rework of 50 materials. Our methodology eliminates such errors. We analyze source textures, select proper import settings, create a Master Material with parameters—and the material looks identical to Substance Painter. Contact us to get a consultation on your materials.

The problem is almost always one of three: incorrect color space, wrong channel packing, or a mismatch in Tone Mapping settings between the DCC tool and the engine. We solve it in 2–4 days for a set of 20 materials.

Why do PBR materials look different in the engine?

Each engine interprets PBR data differently. Unity uses different material formats depending on the pipeline; Unreal Engine 5 requires a packed ORM texture. If these nuances are not accounted for, Albedo shifts, Smoothness inverts, normals flip. The result is a material that "doesn't work."

How to set up channel packing for HDRP and URP?

In Unity, the difference between HDRP and URP is not just in rendering quality. They have completely different material formats.

Universal Render Pipeline (URP) uses a Lit Shader with straightforward packing: Albedo, Normal, Metallic (R) + Smoothness (A), AO (G), Emission. In URP, Smoothness is inverted Roughness. If you export Roughness from Substance Painter and plug it into the Smoothness channel without inversion, the material will be glossy where it should be matte.

High Definition Render Pipeline (HDRP) has a Mask Map packed as Metallic (R), AO (G), Detail Mask (B), Smoothness (A). This non-standard packing is not automatically generated by Substance Painter's default templates. You need to either use the HDRP template when creating the project in Substance Painter or manually compose the Mask Map. Incorrect channel packing is one of the most common bugs when migrating assets from another engine.

Color Space is another critical point. In Unity, Albedo is imported as sRGB, Normal Map as Linear (uncheck sRGB in Import Settings), Roughness, Metallic, AO as Linear. Ignoring these settings is the source of half the problems.

How to properly pack an ORM texture for Unreal Engine?

In Unreal's Material Graph, textures are connected to the corresponding inputs of the Principled BSDF analogue. But there are a few nuances.

Packed ORM texture. In Unreal Engine, the standard is packing AO (R), Roughness (G), Metallic (B) into one texture with the Linear Color flag. This reduces the number of texture samples in the shader from three to one, improving performance by 20% in scenes with many materials. The correct Export Preset for Unreal in Substance Painter is Unreal Engine 4 (Packed).

Normal Map coordinates. Unreal uses DirectX normal map space: the green channel (Y) is inverted relative to OpenGL. When importing normals, either use the DirectX flag when exporting from Substance, or enable the Flip Green Channel option in Unreal's Import Settings.

Texture Compression. Unreal compresses textures into BC7 (DirectX) or ETC2 (mobile). Albedo: Default (BC7), Normal Map: Normal Map (BC5), Metallic/Roughness/AO: Masks (BC4/BC7 without sRGB).

Material Instances are a must. Instead of duplicating the Material Graph for each variant, create one Master Material with parameters and then create Instances. This reduces the number of unique shaders by 3–4 times, speeds up loading by 30%, and allows parameter changes without recompilation. Such shader optimization reduces draw calls and improves FPS. For example, we optimized a project from 200 materials down to 15 Master Materials + 200 Instances, cutting load time by 40%.

How we set up PBR materials: step-by-step process

  1. Audit source textures: check bit depth, color space, presence of all maps.
  2. Select the target engine and render pipeline, determine the packing format.
  3. Configure export from Substance Painter with the correct preset or write a custom JSON config.
  4. Import into the engine with proper Import Settings (sRGB/Linear).
  5. Assemble a Master Material with parameters, create Instances.
  6. Verify the material on a test scene: Albedo (30–240 sRGB), Normal Map (no artifacts), Smoothness (0–1), AO (no double shadowing), Metallic (binary).

Comparison of render pipelines by PBR parameters

Parameter Unity HDRP Unity URP Unreal Engine 5
Texture packing Mask Map (RGBA) Separate with Smoothness ORM packed (R=AO, G=Rough, B=Met)
Smoothness From stored roughness Inverted Roughness From Roughness channel
Normal Map space OpenGL (default) OpenGL DirectX (requires Y inversion)
Normal compression BC5 BC5 BC5
Material inheritance Shader Graph / Instances Shader Graph / Instances Master Material + Instances

What's included in PBR material setup

  • Analysis of source textures and their suitability for the target engine.
  • Export Preset configuration and texture conversion (channels, color space).
  • Creation of Master Material with parameters (Base Color, Normal, ORM/Mask, Emission).
  • Assembly of Material Instances for each asset.
  • Verification on a test scene with side lighting and HDRI.
  • Documentation of settings and transfer to the project's git repository.
Task Scale Estimated Time
Setup of one material from 0.5 day
Migration of 10–20 assets from 2 days
Development of Master Material + 30 Instances from 5 days
Full material audit of a project by agreement

Timelines are clarified after project analysis. Order PBR material setup—we guarantee compatibility with your engine. Contact us for a free work scope assessment.

Physically Based Rendering is the foundation of modern game materials. More on Wikipedia.