Detect Roughness factor exported by Blender

Matches the logic used by Blender's own FBX exporter / importer.
This commit is contained in:
Filip Lundgren
2022-03-26 22:33:10 +01:00
committed by GitHub
parent ba6c67c328
commit 4175198d04

View File

@@ -2161,6 +2161,9 @@ void FBXConverter::SetShadingPropertiesCommon(aiMaterial *out_mat, const Propert
const float ShininessExponent = PropertyGet<float>(props, "ShininessExponent", ok);
if (ok) {
out_mat->AddProperty(&ShininessExponent, 1, AI_MATKEY_SHININESS);
// Match Blender behavior to extract roughness when only shininess is present
const float roughness = 1.0 - (sqrt(ShininessExponent) / 10.0);
out_mat->AddProperty(&roughness, 1, AI_MATKEY_ROUGHNESS_FACTOR);
}
// TransparentColor / TransparencyFactor... gee thanks FBX :rolleyes: