public virtual void Visit(MaterialGeneratorContext context)
 {
     Surface.Visit(context);
     MicroSurface.Visit(context);
     Diffuse.Visit(context);
     DiffuseModel.Visit(context);
     Specular.Visit(context);
     SpecularModel.Visit(context);
 }