HLSL固有函数 【Intrinsic Functions (DirectX HLSL)】
来源:互联网 发布:正规淘宝网上兼职 编辑:程序博客网 时间:2024/05/30 23:42
原文:http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html
放在blog上看起来方便,这个是MSDN上的,DirectX Documentation里也有
Intrinsic Functions (DirectX HLSL)
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 | Syntax | Description | absabs(x)Absolute value (per component).acosacos(x)Returns the arccosine of each component of x.allall(x)Test if all components of x are nonzero.anyany(x)Test if any component of x is nonzero.asfloatasfloat(x)Convert the input type to a float.asinasin(x)Returns the arcsine of each component of x.asintasint(x)Convert the input type to an integer.asuintasuint(x)Convert the input type to an unsigned integer.atanatan(x)Returns the arctangent of x.atan2atan2(y, x)Returns the arctangent of of two values (x,y).ceilceil(x)Returns the smallest integer which is greater than or equal to x.clampclamp(x, min, max)Clamps x to the range [min, max].clipclip(x)Discards the current pixel, if any component of x is less than zero.coscos(x)Returns the cosine of x.coshcosh(x)Returns the hyperbolic cosine of x.crosscross(x, y)Returns the cross product of two 3D vectors.D3DCOLORtoUBYTE4D3DCOLORtoUBYTE4(x)Swizzles and scales components of the 4D vector x to compensate for the lack of UBYTE4 support in some hardware.ddxddx(x)Returns the partial derivative of x with respect to the screen-space x-coordinate.ddyddy(x)Returns the partial derivative of x with respect to the screen-space y-coordinate.degreesdegrees(x)Converts x from radians to degrees.determinantdeterminant(m)Returns the determinant of the square matrix m.distancedistance(x, y)Returns the distance between two points.dotdot(x, y)Returns the dot product of two vectors.expexp(x)Returns the base-e exponent.exp2exp2(x)Base 2 exponent (per component).faceforwardfaceforward(n, i, ng)Returns -n * sign(•(i, ng)).floorfloor(x)Returns the greatest integer which is less than or equal to x.fmodfmod(x, y)Returns the floating point remainder of x/y.fracfrac(x)Returns the fractional part of x.frexpfrexp(x, exp)Returns the mantissa and exponent of x.fwidthfwidth(x)Returns abs(ddx(x)) + abs(ddy(x))GetRenderTargetSampleCountGetRenderTargetSampleCount()Returns the number of render-target samples.GetRenderTargetSamplePositionGetRenderTargetSamplePosition(x)Returns a sample position (x,y) for a given sample index.isfiniteisfinite(x)Returns true if x is finite, false otherwise.isinfisinf(x)Returns true if x is +INF or -INF, false otherwise.isnanisnan(x)Returns true if x is NAN or QNAN, false otherwise.ldexpldexp(x, exp)Returns x * 2explengthlength(v)Returns the length of the vector v.lerplerp(x, y, s)Returns x + s(y - x).litlit(n • l, n • h, m)Returns a lighting vector (ambient, diffuse, specular, 1)loglog(x)Returns the base-e logarithm of x.log10log10(x)Returns the base-10 logarithm of x.log2log2(x)Returns the base-2 logarithm of x.maxmax(x, y)Selects the greater of x and y.minmin(x, y)Selects the lesser of x and y.modfmodf(x, out ip)Splits the value x into fractional and integer parts.mulmul(x, y)Performs matrix multiplication using x and y.noisenoise(x)Generates a random value using the Perlin-noise algorithm.normalizenormalize(x)Returns a normalized vector.powpow(x, y)Returns xy.radiansradians(x)Converts x from degrees to radians.reflectreflect(i, n)Returns a reflection vector.refractrefract(i, n, R)Returns the refraction vector.roundround(x)Rounds x to the nearest integerrsqrtrsqrt(x)Returns 1 / sqrt(x)saturatesaturate(x)Clamps x to the range [0, 1]signsign(x)Computes the sign of x.sinsin(x)Returns the sine of xsincossincos(x, out s, out c)Returns the sine and cosine of x.sinhsinh(x)Returns the hyperbolic sine of xsmoothstepsmoothstep(min, max, x)Returns a smooth Hermite interpolation between 0 and 1.sqrtsqrt(x)Square root (per component)stepstep(a, x)Returns (x >= a) ? 1 : 0tantan(x)Returns the tangent of xtanhtanh(x)Returns the hyperbolic tangent of xtex1Dtex1D(s, t)1D texture lookup.tex1Dbiastex1Dbias(s, t)1D texture lookup with bias.tex1Dgradtex1Dgrad(s, t, ddx, ddy)1D texture lookup with a gradient.tex1Dlodtex1Dlod(s, t)1D texture lookup with LOD.tex1Dprojtex1Dproj(s, t)1D texture lookup with projective divide.tex2Dtex2D(s, t)2D texture lookup.tex2Dbiastex2Dbias(s, t)2D texture lookup with bias.tex2Dgradtex2Dgrad(s, t, ddx, ddy)2D texture lookup with a gradient.tex2Dlodtex2Dlod(s, t)2D texture lookup with LOD.tex2Dprojtex2Dproj(s, t)2D texture lookup with projective divide.tex3Dtex3D(s, t)3D texture lookup.tex3Dbiastex3Dbias(s, t)3D texture lookup with bias.tex3Dgradtex3Dgrad(s, t, ddx, ddy)3D texture lookup with a gradient.tex3Dlodtex3Dlod(s, t)3D texture lookup with LOD.tex3Dprojtex3Dproj(s, t)3D texture lookup with projective divide.texCUBEtexCUBE(s, t)Cube texture lookup.texCUBEbiastexCUBEbias(s, t)Cube texture lookup with bias.texCUBEgradtexCUBEgrad(s, t, ddx, ddy)Cube texture lookup with a gradient.texCUBElodtex3Dlod(s, t)Cube texture lookup with LOD.texCUBEprojtexCUBEproj(s, t)Cube texture lookup with projective divide.transposetranspose(m)Returns the transpose of the matrix m.trunctrunc(x)Truncates floating-point value(s) to integer value(s)表 3-1 HLSL内置函数
函数名 用法
abs 计算输入值的绝对值。
acos 返回输入值反余弦值。
all 测试非0值。
any 测试输入值中的任何非零值。
asin 返回输入值的反正弦值。
atan 返回输入值的反正切值。
atan2 返回y/x的反正切值。
ceil 返回大于或等于输入值的最小整数。
clamp 把输入值限制在[min, max]范围内。
clip 如果输入向量中的任何元素小于0,则丢弃当前像素。
cos 返回输入值的余弦。
cosh 返回输入值的双曲余弦。
cross 返回两个3D向量的叉积。
ddx 返回关于屏幕坐标x轴的偏导数。
ddy 返回关于屏幕坐标y轴的偏导数。
degrees 弧度到角度的转换
determinant 返回输入矩阵的值。
distance 返回两个输入点间的距离。
dot 返回两个向量的点积。
exp 返回以e为底数,输入值为指数的指数函数值。
exp2 返回以2为底数,输入值为指数的指数函数值。
faceforward 检测多边形是否位于正面。
floor 返回小于等于x的最大整数。
fmod 返回a / b的浮点余数。
frac 返回输入值的小数部分。
frexp 返回输入值的尾数和指数
fwidth 返回 abs ( ddx (x) + abs ( ddy(x))。
isfinite 如果输入值为有限值则返回true,否则返回false。
isinf 如何输入值为无限的则返回true。
isnan 如果输入值为NAN或QNAN则返回true。
ldexp frexp的逆运算,返回 x * 2 ^ exp。
len / lenth 返回输入向量的长度。
lerp 对输入值进行插值计算。
lit 返回光照向量(环境光,漫反射光,镜面高光,1)。
log 返回以e为底的对数。
log10 返回以10为底的对数。
log2 返回以2为底的对数。
max 返回两个输入值中较大的一个。
min 返回两个输入值中较小的一个。
modf 把输入值分解为整数和小数部分。
mul 返回输入矩阵相乘的积。
normalize 返回规范化的向量,定义为 x / length(x)。
pow 返回输入值的指定次幂。
radians 角度到弧度的转换。
reflect 返回入射光线i对表面法线n的反射光线。
refract 返回在入射光线i,表面法线n,折射率为eta下的折射光线v。
round 返回最接近于输入值的整数。
rsqrt 返回输入值平方根的倒数。
saturate 把输入值限制到[0, 1]之间。
sign 计算输入值的符号。
sin 计算输入值的正弦值。
sincos 返回输入值的正弦和余弦值。
sinh 返回x的双曲正弦。
smoothstep 返回一个在输入值之间平稳变化的插值。
sqrt 返回输入值的平方根。
step 返回(x >= a)? 1 : 0。
tan 返回输入值的正切值。
fanh 返回输入值的双曲线切线。
transpose 返回输入矩阵的转置。
tex1D* 1D纹理查询。
tex2D* 2D纹理查询。
tex3D* 3D纹理查询。
texCUBE* 立方纹理查询。