DFDX, DFDY(3G)

NAME
dFdx,_dFdy - return the partial derivative of an argument with respect to x or y

DECLARATION

genType dFdx(genType p);

genType dFdy(genType p);

genType dFdxCoarse(genType p);

genType dFdyCoarse(genType p);

genType dFdxFine(genType p);

genType dFdyFine(genType p);

PARAMETERS

p
    Specifies the expression of which to take the partial derivative.

DESCRIPTION

Available only in the fragment shader, these functions return the partial derivative of expression p with respect to the window $x$ coordinate (for dFdx*) and $y$ coordinate (for dFdy*).

dFdxFine and dFdyFine calculate derivatives using local differencing based on on the value of p for the current fragment and its immediate neighbor(s).

dFdxCoarse and dFdyCoarse calculate derivatives using local differencing based on the value of p for the current fragment's neighbors, and will possibly, but not necessarily, include the value for the current fragment. That is, over a given area, the implementation can compute derivatives in fewer unique locations than would be allowed for the corresponding dFdxFine and dFdyFine functions.

dFdx returns either dFdxCoarse or dFdxFine. dFdy returns either dFdyCoarse or dFdyFine. The implementation may choose which calculation to perform based upon factors such as performance or the value of the API GL_FRAGMENT_SHADER_DERIVATIVE_HINT hint.

Expressions that imply higher order derivatives such as dFdx(dFdx(n)) have undefined results, as do mixed-order derivatives such as dFdx(dFdy(n)). It is assumed that the expression p is continuous and therefore, expressions evaluated via non-uniform control flow may be undefined.

VERSION SUPPORT
 | OpenGL Shading Language Version
Function Name | 1.10 | 1.20 | 1.30 | 1.40 | 1.50 | 3.30 | 4.00 | 4.10 | 4.20 | 4.30 | 4.40 | 4.50
dFdx | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔
dFdy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔
dFdxCoarse, dFdxFine, dFdyCoarse, dFdyFine | - | - | - | - | - | - | - | - | - | - | - | ✔

SEE ALSO

fwidth(), glHint()

COPYRIGHT

Copyright © 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

COPYRIGHT
Copyright © 2011-2014 Khronos Group