add: gradient descent for shading smooth