added normal calculation to shaders