5.8. Fragment Processing Functions
Fragment processing functions are only available in shaders intended for use on the fragment processor. This category has three built-in functions. Two obtain derivatives and the other estimates the filter width used to antialias procedural textures.
The derivative functions, dFdx and dFdy, determine the rate of change of an expression. The function dFdx(p) evaluates the derivative of the expression p in the x direction in window coordinates, and the function dFdy(p) evaluates the derivative of the expression p in the y direction in window coordinates. These values indicate how fast the expression is changing in window space, and this information can be used to take steps to prevent aliasing. For instance, if texture coordinates are changing rapidly, it may be better to set the resulting color to the average color for the texture in order to avoid aliasing.
It only makes sense to apply these functions to expressions that vary from one fragment to the next. Because the value of a uniform variable does not change from one pixel to the next, its derivative in x and in y is always 0. See Table 5.8.