Fix uninitialized ofbx values when importing materials

#4272
This commit is contained in:
2026-09-22 20:20:19 +02:00
parent 654809f299
commit d3c7270a56
2 changed files with 14 additions and 15 deletions
@@ -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());
+13 -14
View File
@@ -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<Object*> 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)
{