//Cg 3.1 Toolkit Documentation 补充
bitCount - return the number of bits set in a bitfield.
bitfieldExtract - return an extracted range of bits from a bitfield.
bitfieldInsert - returns an extracted range of bits from a bitfield.
bitfieldReverse - return the reversed bitfield.
findLSB - return the number of the least significant set bit.
findMSB - return the number of the most significant bit.
floatToIntBits - returns the 32-bit integer representation of an IEEE 754 floating-point scalar or vector
floatToRawIntBits - returns the raw 32-bit integer representation of an IEEE 754 floating-point scalar or vector
intBitsToFloat - returns the float value corresponding to a given bit represention.of a scalar int value or vector of int values
inverse - return the inverse matrix of a matrix
pack - packs mutiple values into a single 32-bit result
tex1DARRAYbias - performs a texture lookup with bias in a given sampler array.
tex1DARRAYcmpbias - performs a texture lookup with shadow compare and bias in a given sampler array.
tex1DARRAYcmplod - performs a texture lookup with shadow compare and a level of detail in a given sampler array.
tex1DARRAYfetch - performs an unfiltered texture lookup in a given sampler array.
tex1DARRAYlod - 1D texture array lookup with specified level of detail and optional texel offset.
tex1DARRAY - performs a texture lookup in a given sampler array may use pre computed derivatives and, in some cases, perform a shadow comparison.
tex1DARRAYproj - performs a texture lookup with projection in a given sampler array. May perform a shadow comparison if argument for shadow comparison is provided.
tex1DARRAYsize - returns the size of a given texture array image for a given level of detail.
tex1Dcmpbias - performs a texture lookup with bias and shadow compare in a given sampler.
tex1Dcmplod - performs a texture lookup with a specified level of detail and a shadow compare in a given sampler.
tex1Dfetch - performs an unfiltered texture lookup in a given sampler.
tex1D - performs a texture lookup in a given 1D sampler and, in some cases, a shadow comparison. May also use pre computed derivatives if those are provided.
tex1Dsize - returns the size of a given texture image for a given level of detail.
tex2DARRAYbias - performs a texture lookup with bias in a given sampler array.
tex2DARRAYfetch - performs an unfiltered texture lookup in a given sampler array.
tex2DARRAYlod - 2D texture array lookup with specified level of detail.
tex2DARRAY - performs a texture lookup in a given sampler array may use pre computed derivatives and, in some cases, perform a shadow comparison.
tex2DARRAYproj - performs a texture lookup with projection in a given sampler array.
tex2DARRAYsize - returns the size of a given texture array image for a given level of detail.
tex2Dcmpbias - performs a texture lookup with bias and shadow compare in a given sampler.
tex2Dcmplod - performs a texture lookup with a specified level of detail and a shadow compare in a given sampler.
tex2Dfetch - performs an unfiltered texture lookup in a given sampler.
tex2DMSARRAYfetch - performs an unfiltered texture lookup in a given multisample texture sampler.
tex2DMSARRAYsize - returns the size of a given multisample texture image for a given level of detail.
tex2DMSfetch - performs an unfiltered texture lookup in a given multisample texture sampler.
tex2DMSsize - returns the size of a given multisample texture image for a given level of detail.
tex2D - performs a texture lookup in a given 2D sampler and, in some cases, a shadow comparison. May also use pre computed derivatives if those are provided.
tex2Dsize - returns the size of a given texture image for a given level of detail.
tex3Dfetch - performs an unfiltered texture lookup in a given sampler.
tex3D - performs a texture lookup in a given 3D sampler. May also use pre computed derivatives if those are provided.
tex3Dsize - returns the size of a given texture image for a given level of detail.
unpack - unpacks a single values into different formatted values
texRECTsize - returns the size of a given texture image for a given level of detail.
texRECTproj - performs a texture lookup with projection in a given sampler. May perform a shadow comparison if argument for shadow comparison is provided.
texRECT - performs a texture lookup in a given RECT sampler and, in some cases, a shadow comparison. May also use pre computed derivatives if those are provided.
texRECTlod - rectangle texture lookup with specified level of detail and optional texel offset.
texRECTfetch - unfiltered rectangle texture lookup.
texRECTbias - rectangle texture lookup with bias and optional texel offset.
texRBUFsize - returns the size of a given renderbuffer texture.
texRBUF - performs an unfiltered multisample texture lookup in a given renderbuffer sampler.
texBUF - performs an unfiltered texture lookup in a given texture buffer sampler.
texBUFsize - returns the size of a given texture image for a given level of detail.
texCUBEARRAYbias - cube array texture lookup with bias.
texCUBEARRAYlod - cube array texture lookup with specified level of detail.
texCUBEARRAY - cube array texture lookup with optional pre-computed derivatives.
texCUBEARRAYsize - returns the size of a given texture array image for a given level of detail.
texCUBE - performs a texture lookup in a given CUBE sampler and, in some cases, a shadow comparison. May also use pre computed derivatives if those are provided.
texCUBEsize - returns the size of a given texture image for a given level of detail.
- 2018/05/31
- 7 分钟阅读时长
The following table lists the intrinsic functions available in HLSL. Each function has a brief description, and a link to a reference page that has more detail about the input argument and return type.
Name | Description | Minimum shader model |
---|---|---|
abort | Terminates the current draw or dispatch call being executed. | 4 |
abs | Absolute value (per component). | 1¹ |
acos | Returns the arccosine of each component of x. | 1¹ |
all | Test if all components of x are nonzero. | 1¹ |
AllMemoryBarrier | Blocks execution of all threads in a group until all memory accesses have been completed. | 5 |
AllMemoryBarrierWithGroupSync | Blocks execution of all threads in a group until all memory accesses have been completed and all threads in the group have reached this call. | 5 |
any | Test if any component of x is nonzero. | 1¹ |
asdouble | Reinterprets a cast value into a double. | 5 |
asfloat | Convert the input type to a float. | 4 |
asin | Returns the arcsine of each component of x. | 1¹ |
asint | Convert the input type to an integer. | 4 |
asuint | Reinterprets the bit pattern of a 64-bit type to a uint. | 5 |
asuint | Convert the input type to an unsigned integer. | 4 |
atan | Returns the arctangent of x. | 1¹ |
atan2 | Returns the arctangent of of two values (x,y). | 1¹ |
ceil | Returns the smallest integer which is greater than or equal to x. | 1¹ |
CheckAccessFullyMapped | Determines whether all values from a Sample or Load operation accessed mapped tiles in a tiled resource. | 5 |
clamp | Clamps x to the range [min, max]. | 1¹ |
clip | Discards the current pixel, if any component of x is less than zero. | 1¹ |
cos | Returns the cosine of x. | 1¹ |
cosh | Returns the hyperbolic cosine of x. | 1¹ |
countbits | Counts the number of bits (per component) in the input integer. | 5 |
cross | Returns the cross product of two 3D vectors. | 1¹ |
D3DCOLORtoUBYTE4 | Swizzles and scales components of the 4D vector xto compensate for the lack of UBYTE4 support in some hardware. | 1¹ |
ddx | Returns the partial derivative of x with respect to the screen-space x-coordinate. | 2¹ |
ddx_coarse | Computes a low precision partial derivative with respect to the screen-space x-coordinate. | 5 |
ddx_fine | Computes a high precision partial derivative with respect to the screen-space x-coordinate. | 5 |
ddy | Returns the partial derivative of x with respect to the screen-space y-coordinate. | 2¹ |
ddy_coarse | Computes a low precision partial derivative with respect to the screen-space y-coordinate. | 5 |
ddy_fine | Computes a high precision partial derivative with respect to the screen-space y-coordinate. | 5 |
degrees | Converts x from radians to degrees. | 1¹ |
determinant | Returns the determinant of the square matrix m. | 1¹ |
DeviceMemoryBarrier | Blocks execution of all threads in a group until all device memory accesses have been completed. | 5 |
DeviceMemoryBarrierWithGroupSync | Blocks execution of all threads in a group until all device memory accesses have been completed and all threads in the group have reached this call. | 5 |
distance | Returns the distance between two points. | 1¹ |
dot | Returns the dot product of two vectors. | 1 |
dst | Calculates a distance vector. | 5 |
errorf | Submits an error message to the information queue. | 4 |
EvaluateAttributeAtCentroid | Evaluates at the pixel centroid. | 5 |
EvaluateAttributeAtSample | Evaluates at the indexed sample location. | 5 |
EvaluateAttributeSnapped | Evaluates at the pixel centroid with an offset. | 5 |
exp | Returns the base-e exponent. | 1¹ |
exp2 | Base 2 exponent (per component). | 1¹ |
f16tof32 | Converts the float16 stored in the low-half of the uint to a float. | 5 |
f32tof16 | Converts an input into a float16 type. | 5 |
faceforward | Returns -n * sign(dot(i, ng)). | 1¹ |
firstbithigh | Gets the location of the first set bit starting from the highest order bit and working downward, per component. | 5 |
firstbitlow | Returns the location of the first set bit starting from the lowest order bit and working upward, per component. | 5 |
floor | Returns the greatest integer which is less than or equal to x. | 1¹ |
fma | Returns the double-precision fused multiply-addition of a * b + c. | 5 |
fmod | Returns the floating point remainder of x/y. | 1¹ |
frac | Returns the fractional part of x. | 1¹ |
frexp | Returns the mantissa and exponent of x. | 2¹ |
fwidth | Returns abs(ddx(x)) + abs(ddy(x)) | 2¹ |
GetRenderTargetSampleCount | Returns the number of render-target samples. | 4 |
GetRenderTargetSamplePosition | Returns a sample position (x,y) for a given sample index. | 4 |
GroupMemoryBarrier | Blocks execution of all threads in a group until all group shared accesses have been completed. | 5 |
GroupMemoryBarrierWithGroupSync | Blocks execution of all threads in a group until all group shared accesses have been completed and all threads in the group have reached this call. | 5 |
InterlockedAdd | Performs a guaranteed atomic add of value to the dest resource variable. | 5 |
InterlockedAnd | Performs a guaranteed atomic and. | 5 |
InterlockedCompareExchange | Atomically compares the input to the comparison value and exchanges the result. | 5 |
InterlockedCompareStore | Atomically compares the input to the comparison value. | 5 |
InterlockedExchange | Assigns value to dest and returns the original value. | 5 |
InterlockedMax | Performs a guaranteed atomic max. | 5 |
InterlockedMin | Performs a guaranteed atomic min. | 5 |
InterlockedOr | Performs a guaranteed atomic or. | 5 |
InterlockedXor | Performs a guaranteed atomic xor. | 5 |
isfinite | Returns true if x is finite, false otherwise. | 1¹ |
isinf | Returns true if x is +INF or -INF, false otherwise. | 1¹ |
isnan | Returns true if x is NAN or QNAN, false otherwise. | 1¹ |
ldexp | Returns x * 2exp | 1¹ |
length | Returns the length of the vector v. | 1¹ |
lerp | Returns x + s(y - x). | 1¹ |
lit | Returns a lighting vector (ambient, diffuse, specular, 1) | 1¹ |
log | Returns the base-e logarithm of x. | 1¹ |
log10 | Returns the base-10 logarithm of x. | 1¹ |
log2 | Returns the base-2 logarithm of x. | 1¹ |
mad | Performs an arithmetic multiply/add operation on three values. | 5 |
max | Selects the greater of x and y. | 1¹ |
min | Selects the lesser of x and y. | 1¹ |
modf | Splits the value x into fractional and integer parts. | 1¹ |
msad4 | Compares a 4-byte reference value and an 8-byte source value and accumulates a vector of 4 sums. | 5 |
mul | Performs matrix multiplication using x and y. | 1 |
noise | Generates a random value using the Perlin-noise algorithm. | 1¹ |
normalize | Returns a normalized vector. | 1¹ |
pow | returns x to the y-th power of scalars and vectors | 1¹ |
printf | Submits a custom shader message to the information queue. | 4 |
Process2DQuadTessFactorsAvg | Generates the corrected tessellation factors for a quad patch. | 5 |
Process2DQuadTessFactorsMax | Generates the corrected tessellation factors for a quad patch. | 5 |
Process2DQuadTessFactorsMin | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessIsolineTessFactors | Generates the rounded tessellation factors for an isoline. | 5 |
ProcessQuadTessFactorsAvg | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessQuadTessFactorsMax | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessQuadTessFactorsMin | Generates the corrected tessellation factors for a quad patch. | 5 |
ProcessTriTessFactorsAvg | Generates the corrected tessellation factors for a tri patch. | 5 |
ProcessTriTessFactorsMax | Generates the corrected tessellation factors for a tri patch. | 5 |
ProcessTriTessFactorsMin | Generates the corrected tessellation factors for a tri patch. | 5 |
radians | Converts x from degrees to radians. | 1 |
rcp | Calculates a fast, approximate, per-component reciprocal. | 5 |
reflect | Returns a reflection vector. | 1 |
refract | Returns the refraction vector. | 1¹ |
reversebits | Reverses the order of the bits, per component. | 5 |
round | Rounds x to the nearest integer | 1¹ |
rsqrt | Returns 1 / sqrt(x) | 1¹ |
saturate | Clamps x to the range [0, 1] | 1 |
sign | Computes the sign of x. | 1¹ |
sin | Returns the sine of x | 1¹ |
sincos | Returns the sine and cosine of x. | 1¹ |
sinh | Returns the hyperbolic sine of x | 1¹ |
smoothstep | Returns a smooth Hermite interpolation between 0 and 1. | 1¹ |
sqrt | Square root (per component) | 1¹ |
step | Returns (x >= a) ? 1 : 0 | 1¹ |
tan | Returns the tangent of x | 1¹ |
tanh | Returns the hyperbolic tangent of x | 1¹ |
tex1D(s, t) | 1D texture lookup. | 1 |
tex1D(s, t, ddx, ddy) | 1D texture lookup. | 2¹ |
tex1Dbias | 1D texture lookup with bias. | 2¹ |
tex1Dgrad | 1D texture lookup with a gradient. | 2¹ |
tex1Dlod | 1D texture lookup with LOD. | 3¹ |
tex1Dproj | 1D texture lookup with projective divide. | 2¹ |
tex2D(s, t) | 2D texture lookup. | 1¹ |
tex2D(s, t, ddx, ddy) | 2D texture lookup. | 2¹ |
tex2Dbias | 2D texture lookup with bias. | 2¹ |
tex2Dgrad | 2D texture lookup with a gradient. | 2¹ |
tex2Dlod | 2D texture lookup with LOD. | 3 |
tex2Dproj | 2D texture lookup with projective divide. | 2¹ |
tex3D(s, t) | 3D texture lookup. | 1¹ |
tex3D(s, t, ddx, ddy) | 3D texture lookup. | 2¹ |
tex3Dbias | 3D texture lookup with bias. | 2¹ |
tex3Dgrad | 3D texture lookup with a gradient. | 2¹ |
tex3Dlod | 3D texture lookup with LOD. | 3¹ |
tex3Dproj | 3D texture lookup with projective divide. | 2¹ |
texCUBE(s, t) | Cube texture lookup. | 1¹ |
texCUBE(s, t, ddx, ddy) | Cube texture lookup. | 2¹ |
texCUBEbias | Cube texture lookup with bias. | 2¹ |
texCUBEgrad | Cube texture lookup with a gradient. | 2¹ |
texCUBElod | Cube texture lookup with LOD. | 3¹ |
texCUBEproj | Cube texture lookup with projective divide. | 2¹ |
transpose | Returns the transpose of the matrix m. | 1 |
trunc | Truncates floating-point value(s) to integer value(s) | 1 |