Workflow for creating complex materials in Eevee for baking and PBR export


I’m texturing meshes and one thing that really gives me headache is combining different materials together so that I can keep track of what’s happening in my node tree, make it Eeevee compatible for fast preview and be able to bake them out to a st of PBR textures for a game engine or sketchfab.

This is how I tacked the baking part:

I use a custom Node Group that hosts a Principled BSDF shader and allows me to easily reroute any input to the shader to an Emit shader for baking. It also has an Ambient Occlusion node so I can bake that (taking Normals into account).

This part is pretty ok. I’d like to improve it wit ha custom script that’d swap the connections and texture slots out to speed up the baking process, but it works.

The part I have more trouble with is finding the methodology to use for blending different “layers” of my material together.

Let’s say we have 4 base materials:

  1. Clean steel plate
  2. Rusty steel plate
  3. Paint
  4. Dirt

I see two ways to merge these 4 layers into one material that can be baked to a set of PBR textures:

  1. Use 4 Principled Node Groups and use Mix Nodes to blend them. This is way easier to manage and make sure I know what’s happening in the node tree if I don’t look at it for a week, but in case of having smooth transitions (dirt) this can create unpredictable results.

  2. Use a single Principled Node Group and manually merge every aspect of the material (Base Color, Metalness, Roughness, Normal) between the 4 layers. This has the upside of producing more predictable results in soft transitions between material “layers”, but also becomes extremely messy in my projects.

I wonder how other artists work with this.

Here’s a “single PBR node” type setup that got out of control and I have to re-make it:

If the material was for a Cycles render - I’d have no problems, but since the target product is a set of PBR textures - this becomes difficult and messy.
I’ve been doing 3D for many years, but I’m relatively fresh in making Game Assets, so I’m still looking for a good way to handle this stuff.

I’d be thankful for any ideas on how you handle this mess having Game Assets in mind.

I’ve been doing the second, and yes it’s very messy…

However, this addon looks to be a decent solution: [Addon] Bake Wrangler - Node based baking tool set (Ver: b0.7 *imageset*)

There’s a few others that combine materials in baking as well, but that one has the smoothest, least fiddly workflow I’ve found-- it’s just not quite finished/polished.

1 Like

I didn’t even ask for this, but I’ve been searching fro this kind of tool for a good while. Thank you!

Just thought that if just just keep whole workflow in cycles and bake using cycles to diffuse map + normal map + specular map.

Never tried but I believe that web is full of guides to do that.

The thing is for PBR-based game engines (all the modern ones) you need at least these maps:

Base Color (Albedo)

Blender’s built-in tools allow to bake Base Color, Normal and Roughness without extra tricks, but Metalness is only achievable via a Emit shader trickery and Node Groups AFAIK (that’s what I’ve been doing up to this point).

Diffuse + Specular + Normal is the legacy shading model and it’s no longer used in game eninges seeking realism.