Substance and Blender 2.79+

In Blender 2.79, there is a new Principled BSDF shader. This means there’s a new workflow for importing textures from Substance Painter and Substance Designer. The good news is the workflow is very simple. But it’s a new workflow nonetheless.

To loads PBR textures for the Principled BSDF, you’ll need the following channels:

  • Base Color
  • Roughness
  • Metallic
  • Normals (formatted for OpenGL)

You might notice this is the default format for Substance. So if you like, you can just use the “Document Channels” export mode in Substance Painter. Alternately, you can use this Substance Painter export preset. You can add it to your shelf, or see here for creating and installing export presets. Download it here:

The textures are simply loaded and connected to their corresponding sockets. Note that normal, roughness, and metallic must be set to “non color data” to disable gamma correction.


Other Map Types


To use emission maps, connect them to an emission node and combine with with the Principled BSDF via an Add Shader:

Transmission (in the sense of “glass”)

The Principled BSDF supports dielectric transmission, so you can hook up your transmission/opacity map directly. Note that the metallic map will “override” transmission, since transmission only applies to the dielectric layer. This makes sense when you think about it for a second, since glass is also a dielectric, and metals aren’t transparent. In a lot of softwares’ ubershaders, however, transmission overrides everything so this might be jarring at first.

Transmission (in the sense of “alpha maps”)

You can use alpha maps by mixing the Principled BSDF with a Transparent BSDF. In this example, our basecolor texture has cutout opacity data stored in the alpha channel:

Ambient Occlusion

You don’t need AO maps in Cycles, ever. Ambient Occlusion is shadows (aka occlusion) for the global “ambient” lamp. Hence the name. Cycles does not have an ambient lamp object. The world light is a physical light at infinity in all directions, rather than an ambient light that adds an even glow to things. There is a “World AO” options, which is technically an ambient lamp with built-in occlusion calculation. There is no option to use pre-baked AO with the World AO function, however. AO maps should never be applied to diffuse or direct lighting, only to the ambient lamp. See this famous blog post for more information:

While AO maps applied to diffuse can be very useful for dirt effects, it is almost always preferable to pre-mix this into the regular basecolor/rough/normal/metal textures, rather than loading baked AO separately and compositing it within the shader. Adding AO dirt during texture painting will allow you to avoid loading the AO map, saving memory. It also allows you to “bake” the compositing operation, as well as having more control over said compositing.


Microdisplacement can be used to represent heightmaps with tessellation/displacement. This workflow has not changed since Blender 2.78, and is the same whether you’re using the Principled BSDF or the legacy PBR node groups.