PBR materials based on Substance textures

I’ve prepared an example, how to setup a PBR material in Blender, that is based on bitmap textures exported by tools like Substance Painter, 3DCoat, MARI and other texture generating tools.

PBR material setup example in Blender

Here is a basic PBR setup, if you are using Substance Painter (or similar) bitmap textures in Blender.

PBR bitmap architecture

Following are the main image color values that are used for a default PBR material:

  • Color = RGBA image
  • Metal = Greyscale image
  • Roughness = Greyscale image or channel
  • Normal = RGB image
  • Height = Greyscale image or channel
  • Emission = RGB image or channel
  • Opacity = Greyscale image or channel

Try to use 16 bit depth color images. You are not forced to do this and can use 8 bit bitmaps too, but a 16 bit texture image increases the quality of the final rendering. Additionally 16 bit greyscale images deliver a much higher scalibility, if you are using them as height information for mesh displacement.

A comparism between a 8 bit greyscale image and a 16 bit image for using as height information:

  • Amount of “height values” in a 8 bit greyscale image/channel = 256
  • Amount of “height values” in a 16 bit greyscale image/channel = 65.536

You see the possibilities?

Combine textures to save render time and memory

You can combine textures to save memory and the overall render times. Combined textures are bitmaps that include all information that is needed to create a PBR material. But instead of using a seperate file for every PBR parameter, you use just two or three bitmap files, that combine them all. To do this you just have to copy all the greyscale values like roughness or height seperately into the color channels of a single bitmap. To create such bitmaps you can use Adobe Photoshop e.g., or open source solutions like Gimp or Krita.

How the combined bitmaps can be structured:

  • Bitmap 1 is used for the main color informations of the texture.
    Following the color channel architecture:

    • R = Red image color channel
    • G = Green image color channel
    • B = Blue image color channel
    • A = Opacity (optional) or Emission (Otional)
  • Bitmap 2 is used for the PBR data, if you are using Cycles or another path tracers:
    Following the color channel architecture:

    • R = Metalness
    • G = Roughness
    • B = Height
    • A = Opacity (optional) or Emission (Otional)
  • Another variant is to use the normal map and combine it with other values. Here an example:
    • R = Red channel for the x/y-normal (You can use the x channel for the y-normal too, if you invert it)
    • G = Green channel for the z-normal
    • B = Opacity (optional) or Emission (Otional)

So you see, there are different options to optimise your scenes additionally.