MaterialEffectsBase cleanup , use SurfaceUniquePtr and the same conventions as ParametersT trying to simplify a bit the ownership mechanisms ...
Mentioning @sroe and @jojungge since we are discussing these issues.