PBR Workflow
It is recommended that you read the Physically Based Rendering Encyclopedia before examining this document as it covers the theory behind PBR. While not required, it does cover more complex topics that may assist you in creating your assets by hand.
Contents
PBR Map Types
Albedo
The Albedo map replaces the diffuse map and is denoted by the basename texture (XXX.dds). Albedo maps contain no lighting information, so you will not multiply your ambient occlusion map into it.
Reflectance
The Reflectance map replaces the shine map and is denoted by the basename followed by the -reflect suffix (XXX-reflect.dds). Reflectance maps contain specular colors in the RGB channels and gloss information in the alpha channel.
Occlusion
The Occlusion map is a new addition and is denoted by the basename followed by the -ao suffix (XXX-ao.dds). The Occlusion map holds Ambient Occlusion in the red channel and Cavity Occlusion in the green channel with the blue and alpha channels remaining empty.
Converting Existing Maps
Albedo/Diffuse
So let’s jump right into the thick of things. In this tutorial, I’m going to be using Hades’ Medusa as the subject of a proper PBR makeover. As you can see, I removed the grime and oxidation features for the most part as it’s easiest to make a visually brand spanking new Medusa. Additionally, I’ve removed the Ambient Occlusion because it now has its own texture slot in FSO. This is based off the blue Medusa I showed off in the PBR thread. One of the most important parts of making PBR textures is understanding the difference between Dielectrics and Metals. Simply put, Dielectrics have only diffuse color and gray specular while Metals have gray diffuse and a colored specular. Both can be glossy or matte as gloss is linked to microsurfacing, not material properties. For this, we’re going to make the already colored parts painted, while the gray parts will become metallic. Since FreeSpace takes place in outer space and the Medusa is a combat craft, I’ve elected to give it a uniformly rough surface which results in a very low gloss. After the basic albedo(diffuse) and specular maps have been created and tested, we’ll go ahead and give it some chipped paint and oxidation as if it had seen some hard years. Since the albedo is already finished, we just need to convert the shine map into a reflectance map.
Reflectance
We'll start first by creating a mask so we can keep track of which parts are metal (White) and which parts are dielectric (black). We copy this over into the specular map file so we can start working there. We're going to simplify this a bit by assuming that all the different paint colors have the same specular color, all the metals have the same specular color, and finally, that the entire ship has a uniform glossiness.
We'll start with the gloss part as it's very simple: Just change the alpha channel to a uniform color. I think that a value of 0.15 is a good starting point. Next, we'll say that the specular value for the painted portions is around 0.2 as this is one of the commonly seen scanned values for paint. For the metallic portions, an sRGB of 158, 173, 180 should do the trick.
Ambient and Cavity Occlusion
The -ao maps in FSO hold the information of two different map types, Ambient Occlusion (red channel) and Cavity Occlusion (green channel). Ambient Occlusion can be baked in Blender, Maya, or 3DS MAX, but Cavity Occlusion cannot. This is rather unfortunate as it leaves xNormal as one of the sole solutions and it isn't able to bake Cavity Occlusion maps using hardware, so be prepared for 20 minute to 2 hour bake times depending on the resolution of your maps and the accuracy of your settings.
As the AO maps in FSO now only use two of the four channels in an image, you can leave the blue and alpha channels alone when editing them. This also leads to some pretty funky looking textures...
In the shaders, Ambient Occlusion is applied only to ambient lighting while Cavity Occlusion is applied to the diffuse and specular lighting.
Making new maps
Generally, creating new PBR textures is nearly identical to making them the old way, you just do it using physically accurate values for the Albedo and Reflectance maps. Additionally, there are a multitude of tools being released that enable automated creation of PBR assets. The examples I personally recommend are Quixel Suite, Marmoset Toolbag, and Substance Painter.
TODO