From a09b52d8c6545f581dd2ed878f04a6c4c2428106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Reschke?= Date: Mon, 13 Jul 2020 16:41:50 +0200 Subject: [PATCH] FIX issues with FBX files exported by 3ds Max 2021 --- .../FBXMaterialDescriptionPreprocessor.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Modules/AssetPipelineEditor/AssetPostprocessors/FBXMaterialDescriptionPreprocessor.cs b/Modules/AssetPipelineEditor/AssetPostprocessors/FBXMaterialDescriptionPreprocessor.cs index dbc5486f18..35404ef251 100644 --- a/Modules/AssetPipelineEditor/AssetPostprocessors/FBXMaterialDescriptionPreprocessor.cs +++ b/Modules/AssetPipelineEditor/AssetPostprocessors/FBXMaterialDescriptionPreprocessor.cs @@ -43,9 +43,11 @@ static bool Is3DsMaxPhysicalMaterial(MaterialDescription description) { float classIdA; float classIdB; + string orgMtl; description.TryGetProperty("ClassIDa", out classIdA); description.TryGetProperty("ClassIDb", out classIdB); - return classIdA == 1030429932 && classIdB == -559038463; + description.TryGetProperty("ORIGINAL_MTL", out orgMtl); + return (classIdA == 1030429932 && classIdB == -559038463) || ((classIdA == 2121471519 && classIdB == 1660373836) && (orgMtl == "PHYSICAL_MTL")); } static bool IsMayaArnoldStandardSurfaceMaterial(MaterialDescription description) @@ -59,9 +61,11 @@ static bool Is3DsMaxArnoldStandardSurfaceMaterial(MaterialDescription descriptio { float classIdA; float classIdB; + string orgMtl; description.TryGetProperty("ClassIDa", out classIdA); description.TryGetProperty("ClassIDb", out classIdB); - return classIdA == 2121471519 && classIdB == 1660373836; + description.TryGetProperty("ORIGINAL_MTL", out orgMtl); + return (classIdA == 2121471519 && classIdB == 1660373836) && (orgMtl != "PHYSICAL_MTL"); } static bool IsAutodeskInteractiveMaterial(MaterialDescription description)