diff --git a/src/experimental/filament/filament/drawable.cc b/src/experimental/filament/filament/drawable.cc index 9a74a44d..8dd575bb 100644 --- a/src/experimental/filament/filament/drawable.cc +++ b/src/experimental/filament/filament/drawable.cc @@ -546,6 +546,12 @@ void Drawable::UpdateMaterial(const mjvGeom& geom, bool use_segid_color, } } } + + // Apply material multipliers from the model. + params.emissive *= object_mgr->GetEmissiveMultiplier(); + params.specular *= object_mgr->GetSpecularMultiplier(); + params.glossiness *= object_mgr->GetShininessMultiplier(); + material_.UpdateParams(params); } } // namespace mujoco diff --git a/src/experimental/filament/filament/material.cc b/src/experimental/filament/filament/material.cc index ec3019ed..1557e9e5 100644 --- a/src/experimental/filament/filament/material.cc +++ b/src/experimental/filament/filament/material.cc @@ -88,16 +88,13 @@ void Material::UpdateMaterialInstances() { params_.color); } if (material->hasParameter("EmissiveFactor")) { - const float multiplier = object_mgr_->GetEmissiveMultiplier(); - instance->setParameter("EmissiveFactor", params_.emissive * multiplier); + instance->setParameter("EmissiveFactor", params_.emissive); } if (material->hasParameter("SpecularFactor")) { - const float multiplier = object_mgr_->GetSpecularMultiplier(); - instance->setParameter("SpecularFactor", params_.specular * multiplier); + instance->setParameter("SpecularFactor", params_.specular); } if (material->hasParameter("GlossinessFactor")) { - const float multiplier = object_mgr_->GetShininessMultiplier(); - instance->setParameter("GlossinessFactor", params_.glossiness * multiplier); + instance->setParameter("GlossinessFactor", params_.glossiness); } if (material->hasParameter("MetallicFactor")) { instance->setParameter("MetallicFactor",