Although it is nothing new, physically based rendering (PBR) has received a lot of attention recently. PBR shading tries to emulate the way objects react to light in the real world. Because of this, it has become widely popular in the gaming industry as it provides more realistic results with a faster workflow. By using real world principles, PBR shaders react much more realistically and stay more consistent under different lighting conditions. Join the new generation of artists and continue reading to see how to use these in your workflow.
First off, let me take you through a typical workflow in Cycles. Firstly, you create a material and then work on texturing. Once you have finished the texturing you create a shader by mixing different types of shaders. Then you take your color texture into Gimp or Photoshop and create the different maps (e.g. specular, roughness, bump, displacement, etc.) Then you mix your shaders with the maps you just made. Then you have to go back and tweak all the textures until you get them right. And you don’t always get a realistic shader.
Now let me introduce to you the new way of shading. PBR shading involves four types of maps: an albedo (similar to a diffuse), a roughness, a metalness, and a bump or displacement map. In addition to these you could also use an AO map.
An albedo map defines the color of the diffuse material. Unlike a diffuse map, an albedo map only defines color and therefore leaves out all lighting and AO. This basically means, unlike a normal texture the albedo map is all one value, but with different colors.
Roughness works slightly differently than specularity. Although you could use roughness with the old method, the glossy amount was generally an arbitrary number. With a PBR shader there is no specularity. The shader has a base reflectivity and then a Fresnel curve defines the rest for you. To use this in Cycles, you would take the base roughness and then paint areas of varying roughness.
Metalness is probably the simplest thing to understand when it comes to PBR shaders. All it does is define whether or not a material is metallic or not. So if you want steel, the value would be white and the black for the albedo texutre. You can also have grey values for slightly dirty metals and such. It is as simple as that.
Although reflectivity is not a map, it is important. Basically, you have a base reflectivity or F0 that defines how reflective a material is when looking straight at it. Then you add the Fresnel curve which makes the shader 100% reflective at grazing angles. Most materials are around a value of 0.04, but all materials are slightly different.
That is pretty much the basics of how PBR shading works. Just for clarity I’ll go through it one more time. First you set the base reflectivity and whether or not the material is metallic. Second, you set the color using an albedo texture, then you mix it with a glossy shader using a roughness map. That is basically it. In the next part, I will go through how to set one up in Blender and show you how to create a simple material. I plan on posting the next part in a couple weeks.