Hello! I'm trying to convert a Unity project to Unreal and stumbled upon assets that are using Smoothness maps in Unity HDRP. It seems that they are just inverted Roughness maps, but I wanted to make sure by asking the pros.
Yes, smoothness is the inverse. However it could be that the Unity materials were using Specular Glossiness workflow, which requires a bit more work to convert properly to Metallic Roughness. @EarthQuake has a great walkthrough of that process here: https://marmoset.co/posts/pbr-texture-conversion/
MetallicSmoothness maps have the roughness maps inverted as mentioned. The packing is a little different to Unreal.
the alpha channel has Smoothness (inverted Roughness map) information The metalness are the other channels. Usually it's the same information in the R, G and B.
The normal map is openGL and the Green channel has to be flipped for it to look correct in Unreal.
Yes. Unreal is Direct X by default. You can use the Open GL normals in Unreal, but inside of Unreal there is a check mark that flips the green channel.
Replies
Unity converts Smoothness to roughness inside the shader and defines it as:
real PerceptualSmoothnessToRoughness(real perceptualSmoothness)
{
return (1.0 - perceptualSmoothness) * (1.0 - perceptualSmoothness);
}
the alpha channel has Smoothness (inverted Roughness map) information
The metalness are the other channels. Usually it's the same information in the R, G and B.
The normal map is openGL and the Green channel has to be flipped for it to look correct in Unreal.