Material Instance Performance Question

Hi,

Is there a performance difference between using a Material Instance Constant Vs a Material Instance Dynamic if the latter only has its parameters changed in the construction script?

What if I had a lot of them in a scene? And they have static bools (I read constants won’t even compile the chain if it’s not enabled)?

Thanks

From documentation here it says: Instanced Materials | Unreal Engine 4.27 Documentation

There are two types of Material instances available in Unreal Engine 4:

  • Material Instance Constant — Only calculated prior to runtime.
  • Material Instance Dynamic — Can be calculated (and edited) at runtime.

This makes me assume the Dynamic material is heavier than the constant material instance. Hopefully this clears things up!

Hey @HappyKat100!

To build on what @EliasWick said:

ANYTHING Dynamic will be heavier. The very option of modification at runtime increases the load, because it’s actively being checked on whether it has been modified or not. The amount of extra load varies from Material to Material.

This is really helpful, thank you both. I have a Procedural Decal asset that only modifies the Dynamic Material Instance in the construction Script but it sounds like what you’re saying this would still be heavier as the Dynamic Material is still being checked at runtime even if I’m not changing anything. That helps me a lot, thank you.