See also:

Materials

Textures

Material layering

Introduction

Material layering is a simple concept of adding multiple BSDFs on top of each other and blending them using a variety of techniques. With the introduction of Substance Painter, almost everyone uses them. What’s important here is that we can also use them on run-time.

Unreal Engine wiki does a great job at explaining its use-cases: https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/Materials/LayeredMaterials/

A solid explanation of layered materials can be found here in a talk by YAGER from their work on Cycle: Frontier. Their work was inspired by The Coalition’s work which was in turn inspired by Ready At Dawn’s work.

However, where RAD and The Coalition developed a workflow where a custom tool baked down all the fancy layers into one BSDF during the build process, YAGER does not. This is because they have very lightweight and simple materials and said their target frame was fine without those optimisations.

Untitled

Layered Materials for Environments | Unreal Fest Europe 2019 | Unreal Engine

The Visual Technology of Gears 5 | Unreal Dev Days 2019 | Unreal Engine

Layered materials are a super interesting next step for environment art. We can blend between different materials (on layers) using:

Advantages

Advantages of layered materials are:

  1. Blending between different layers can be done in-engine, making this a very artist friendly WYSIWYG workflow.
  2. They utilize Material Functions, which are reusable. This allows you to set up a library of Material archetypes, or Materials that define a basic real-world surface type. For example, you can create layers that represent generic surfaces such as aluminum, steel, leather, plastic, rubber, and so on. You can then use a Layered Material to blend between them.
  3. This can be very useful when wanting to create a detailed object - such as a character - without having to create a massive set of materials to apply separately to the surface.
  4. Asset dependency chains on base or common presets makes it easy to fix or tweak material values and have the change propagate throughout all materials using that parent.

Disadvantages

  1. Unreal will make drawcalls for every material in the material layer stack, even if their pixels are not visible. UE5’s new Substrate material system alleviates that by only drawcalling the materials that have visible pixels.
  2. Vertex Colors and/or Blending Maps are not free and bring more samplers with them. Blending maps are also unable to share as they are unique per object.

However, most of the drawbacks of using material layers can be mitigated by baking or simplifying the material down. This is basically identical to what Substance Painter or Quixel Mixer does on export.