Pros and Cons to control Material parameters via MPCs as opposed to DMIs

Hi @Cr3ap3r1,

While there are benefits and drawbacks to both, you are missing the third option: Custom Primitive Data. I’ll attach a link below so you can learn more about it.

To summarize:

Dynamic Material Parameters

Pros:

  • Easily control any single parameter at runtime
  • Does not require extra setup in the material

Cons:

  • Creates a new material instance to run parameter (aka extra draw call)
  • Can not be modified/previewed in-editor

Material Collections

Pros:

  • Adjusts a parameter globally that can be used in many materials
  • Great for things like global wind or values you want many materials to read
  • Also great for getting the player location, since you only need to get it once to pass it to many places
  • Works better than the other two options for Sequencer

Cons:

  • Can not be instanced, so does not work well for changing values for single materials
  • Creates an extra reference to the MPC in your blueprint
  • Logic must be set up in material ahead of time

Custom Primitive Data

Pros:

  • Values can be set in-editor and in-game, making it previewable
  • Does not create a new material when using
  • Arguably easier to set in-blueprint than the other two
  • Can be set on the mesh, no blueprint required
  • Since the values are stored per-primitive, this is a great method for altering foliage or instances

Cons:

  • Needs to be set up in material ahead of time
  • Less intuitive to set up and use

Personally, I almost exclusively use Custom Primitive Data, as it’s the most cost-effective and comes with a lot of great usability. Every method definitely has it’s time and place, though.

More info on Custom Primitive Data:

1 Like