PBR Guide

I thought I would post a overview/tutorial I made a while ago. A few of my team members have not used a PBR workflow before, so I made this as a reference and starting point for further research. Hopefully this can teach someone something and if I have anything wrong, I would really appreciate a comment or e-mail. 


PBR is now the default rendering system for Unreal 4 and Marmoset. It uses realistic shading/lighting models and measured surface values to represent real-world materials.


  1. Easier to create realistic assets because guesswork is removed

  2. Accurate in all lighting situations

  3. Consistent artwork, even between artists


Base color input. This is basically the diffuse. Make sure all lighting information is removed (shadows and highlights). It will look very plain, this is okay. Most details are handled by other maps. Be careful not to make your albedo too dark. Here are some reference values for accurate albedo maps. The reference numbers refer to the luminosity values in the histogram. Ambient occlusion is lighting information, so do not use it in this map. Here is a video about how to approximate an albedo map from a diffuse map if you want to repurpose your texture library. 


Generally not necessary. Forget all you used to know about specular maps. Values refer to real life index of refraction (if you use this map, look up the appropriate values). It is now what determines Fresnel reflections and BDRF, not the shininess of a material. If it is modified (which is unnecessary in 99% of situations), it is to add small scale shadowing or micro-occlusion. More details can be found in the specular section of Epic's documentation

Greyscale map determining how rough the surface of a material is. This is where you can go crazy artistically. Values are approximated and vary within materials based on dirt/damage. Use your best judgement and be sure to compare values you are using here to values that are being used in other areas of the asset and the scene as a whole to make sure it will make sense and come together cohesively. 
0=Black=smoothest possible
1=White=roughest possible (in UE4, opposite in Marmoset)


Only used when a material has some metal. PURE black and white. In-between values are only used for rust/corrosion/dust. Resist using grey values as much as possible. 


This is the same as before. A clean inital bake is extremely important.