6.1.9 Fragment Shaders
The fragment shader is the graphics pipeline stage after primitive rasterization.
For each sample of the pixels covered by a primitive, a fragment is generated.
The fragment shader code is executed for each generated fragment. There are many more
fragments than vertices so you must take care about the number of operations performed
in the fragment shader.
In the fragment shader you can access the fragment coordinates in the
windows space among other values that contains all interpolated per-vertex output values
from the vertex shader.
In the shader example in 6.1.2 Shader structure
the fragment shader receives the interpolated texture coordinates from the vertex shader
and performs a texture lookup to obtain the color at these coordinates. It combines this
color with the ambient color to produce the final output color. From the declaration of
the fragment shader
float4 frag(vertexOutput input) :
it is clear that it is expected to produce the fragment color. The
fragment shader is where you do the operations to achieve the required effect. This
ultimately consists of assigning the correct color to a fragment.