added functions to diffuse shader