I want to load textures generated from Substance Designer into Keyshot. I read in PBR guide that if I export output as bitmap I need to take care of gamma correction by myself. As far as I know I need to have all maps in linear space with exception of albedo and specular maps (that should be in sRGB).
However I am not sure in which color space is each map exported from Substance Designer. Are they all in sRGB? Or just grayscale maps are in linear?
Thank you.
HI Braffe,
The maps exported from SD and SP are in sRGB or gamma-encoded space. They are not exported as linear. The key is how the maps are interpreted by the shader you will be using. You are correct that all maps are to be interpreted as linear except for base color, diffuse and specular.
Applications will handle this in different ways. For example, in Unity, you don't have to do anything. Maps that are placed in the metallic/smoothness, ambient occlusion are treated as linear by the shader and maps in the albedo are treated as sRGB. What the shader does for the albedo and specular is "linearize" the maps. It removes the gamma-encoded values from the map in the shader code by applying an inverse gamma to it of 0.4545. In the Unity workflow, this is done automatically and you don't need to flag the images as sRGB.
However, other implementations will need you to specify if an image is sRGB. For example, I attached an image of the UE4 texture settings. The image is for roughness and even though its technically exported in sRGB space, the data it represents is linear. We never author textures in linear space. The values we would choose would never be correct. So for this texture, its to be interpreted as linear, so I make sure that sRGB is unchecked. This means that UE4 will not remove the gamma values by applying an inverse gamma. Marmoset Toolbag works the same way. For images that are not color, then you need to uncheck sRGB.
I'm not sure how keyshot works, but you will need to see if there is a setting for how a map is interpreted. The simplest way to look at it is that if its color we see, then its to be treated as sRGB and the gamma needs to be removed. This is albedo, diffuse, base color, specular. Everything else is interpreted as linear.
I hope that helps : ) Let me know if you have any questions.
Cheers,
Wes