diff --git a/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp b/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp index b9b64c0a9..e69f082a7 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp +++ b/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp @@ -246,7 +246,7 @@ struct OpenFbxImporterData if (mat && EnumHasAnyFlags(Options.ImportTypes, ImportDataTypes::Materials)) { - material.Diffuse.Color = ToColor(mat->getDiffuseColor()); + material.Diffuse.Color = ToColor(mat->getDiffuseColor()) * (float)mat->getDiffuseFactor(); material.Emissive.Color = ToColor(mat->getEmissiveColor()) * (float)mat->getEmissiveFactor(); material.Roughness.Value = MaterialSlotEntry::ShininessToRoughness((float)mat->getShininess()); diff --git a/Source/ThirdParty/OpenFBX/ofbx.cpp b/Source/ThirdParty/OpenFBX/ofbx.cpp index 67f34bfeb..27484a372 100644 --- a/Source/ThirdParty/OpenFBX/ofbx.cpp +++ b/Source/ThirdParty/OpenFBX/ofbx.cpp @@ -1396,20 +1396,20 @@ struct MaterialImpl : Material double getEmissiveFactor() const override { return emissive_factor; }; const Texture* textures[Texture::TextureType::COUNT]; - Color diffuse_color; - Color specular_color; - Color reflection_color; - Color ambient_color; - Color emissive_color; + Color diffuse_color = { 1, 1, 1 }; + Color specular_color = { 1, 1, 1 }; + Color reflection_color = { 1, 1, 1 }; + Color ambient_color = { 0, 0, 0 }; + Color emissive_color = { 0, 0, 0 }; - double diffuse_factor; - double specular_factor; - double reflection_factor; - double shininess; - double shininess_exponent; - double ambient_factor; - double bump_factor; - double emissive_factor; + double diffuse_factor = 1; + double specular_factor = 1; + double reflection_factor = 1; + double shininess = 40; + double shininess_exponent = 1; + double ambient_factor = 1; + double bump_factor = 1; + double emissive_factor = 1; }; @@ -2623,7 +2623,6 @@ static OptionalError parseMaterial(const Scene& scene, const Element& e property_offset = 3; prop = findChild(element, "Properties60"); } - material->diffuse_color = {1, 1, 1}; if (prop) prop = prop->child; while (prop) {