#flat shading
Lighting each triangle with one normal, so a shape shows its facets instead of looking smooth. When corners are shared between faces they can't carry a normal for each one, so the fragment shader works it out per pixel: the cross product of dfdx and dfdy of the world position, how it changes from one pixel to the next across the screen, is the normal of the flat triangle under the pixel.
1 shader
