Material Layer Instances do not pass Changes to Children

A material layer instance does not pass changes made to the default layer parameter values, to it’s children.

Repro:

  1. Create material layer with parameters
  2. Create instance of the layer
  3. Change some variables in the new instance
  4. Create an instance of this instance
  5. Note the variables are reset to the material layers defaults.

I’ve just noticed that any change to a material layer instance (MLi) doesn’t propagate properly down the heirarchy at all, if I update an MLi’s parameters it won’t update the material instance that is using it until the material is refreshed.

Repro:

  1. Create material layer with parameters
  2. Create instance of the layer
  3. Reference the layer using a Material Attribute Layers node in a material.
  4. create a material instance and assign the layer instance.
  5. assign to an object in world.
  6. change a parameter in the layer instance. Note no change in the appearance on the object in world.
  7. Unassign the layer and reassign.
  8. Note material is changed on object in world.

As an aside, I’m also noticing a bug where the parameters in the material instance sometimes disappear as well when layers are messed with.