add UpdateUniforms method to materials, add gradient map material