Rechercher une page de manuel
fwidth.3Cg
Langue: en
Version: 355504 (ubuntu - 24/10/10)
Section: 3 (Bibliothèques de fonctions)
NAME
fwidth - returns sum of approximate window-space partial derivatives magnitudesSYNOPSIS
float fwidth(float a); float1 fwidth(float1 a); float2 fwidth(float2 a); float3 fwidth(float3 a); float4 fwidth(float4 a);
half fwidth(half a); half1 fwidth(half1 a); half2 fwidth(half2 a); half3 fwidth(half3 a); half4 fwidth(half4 a);
fixed fwidth(fixed a); fixed1 fwidth(fixed1 a); fixed2 fwidth(fixed2 a); fixed3 fwidth(fixed3 a); fixed4 fwidth(fixed4 a);
PARAMETERS
- a
- Vector or scalar of which to sum its approximate window-space partial derivative magnitudes. with respect to window-space X and Y.
DESCRIPTION
Returns sum of the absolute values of each approximate partial derivative of a with respect to both the window-space (horizontal) x and (vertical) y) coordinate..PP For vectors, the returned vector contains the sum of partial derivative magnitudes of each element of the input vector.
This function can be used to approximate the fragment width (hence the name ``fwidth'') for level-of-detail computations dependent on change in window-space.
This function is only available in fragment program profiles (but not all of them).
The specific way the partial derivative is computed is implementation-dependent. Typically fragments are rasterized in 2x2 arrangements of fragments (called quad-fragments) and the partial derivatives of a variable is computed by differencing with the adjacent horizontal fragment in the quad-fragment.
The partial derivative computation may incorrect when fwidth is used in control flow paths where not all the fragments within a quad-fragment have branched the same way.
The partial derivative computation may be less exact (wobbly) when the variable is computed based on varying parameters interpolated with centroid interpolation.
REFERENCE IMPLEMENTATION
fmod for float3 vectors could be implemented this way:float3 fwidth(float3 a) { return abs(ddx(a)) + abs(ddy(a)); }
PROFILE SUPPORT
fwidth is supported only in fragment profiles. Vertex and geometry profiles lack the concept of window space.fwidth is unsupported in the fp20, ps_1_1, ps_1_2, ps_1_3, and arbfp1 profiles.
SEE ALSO
ddx, ddy, fp30, fp40, gp4fpContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre