参考网址:http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html
放在blog上看起来方便,这个是MSDN上的,DirectX Documentation里也有
内在函数(DirectX HLSL)
下表列出了HLSL中可用的内部函数。 每个函数都有一个简短的描述,以及指向参考页面的链接,该页面包含有关输入参数和返回类型的更多详细信息。
Name | Syntax | Description |
---|---|---|
abs | abs(x) | 绝对值 |
acos | acos(x) | 返回x的每个分量的反余弦值。 |
all | all(x) | 测试x的所有组件是否非零。 |
any | any(x) | 测试x的任何组件是否非零。 |
asfloat | asfloat(x) | 将输入类型转换为float。 |
asin | asin(x) | 返回x的每个组件的反正弦值。 |
asint | asint(x) | 将输入类型转换为整数。 |
asuint | asuint(x) | 将输入类型转换为无符号整数。 |
atan | atan(x) | 返回x的反正切值。 |
atan2 | atan2(y, x) | 返回两个值(x,y)的反正切值。 |
ceil | ceil(x) | 返回大于或等于x的最小整数。 |
clamp | clamp(x, min, max) | 将x夹在[min,max]范围内。 |
clip | clip(x) | 如果x的任何分量小于零,则丢弃当前像素。 |
cos | cos(x) | 返回x的余弦值。 |
cosh | cosh(x) | 返回x的双曲余弦值。 |
cross | cross(x, y) | 返回两个3D矢量的叉积。 |
D3DCOLORtoUBYTE4 | D3DCOLORtoUBYTE4(x) | 4D向量x的Swizzles和scale组件用于补偿某些硬件中缺少UBYTE4支持。 |
ddx | ddx(x) | 返回x相对于屏幕空间x坐标的偏导数。 |
ddy | ddy(x) | 返回x相对于屏幕空间y坐标的偏导数。 |
degrees | degrees(x) | 将x从弧度转换为度数。 |
determinant | determinant(m) | 返回方阵m的行列式。 |
distance | distance(x, y) | 返回两点之间的距离。 |
dot | dot(x, y) | 返回两个向量的点积。 |
exp | exp(x) | 返回base-e指数。 |
exp2 | exp2(x) | 基数2指数。 |
faceforward | faceforward(n, i, ng) | 返回-n *符号(•(i,ng))。 |
floor | floor(x) | 返回小于或等于x的最大整数。 |
fmod | fmod(x, y) | 返回x / y的浮点余数。 |
frac | frac(x) | 返回x的小数部分。 |
frexp | frexp(x, exp) | 返回x的尾数和指数。 |
fwidth | fwidth(x) | 返回abs(ddx(x))+ abs(ddy(x)) |
GetRenderTargetSampleCount | GetRenderTargetSampleCount() | 返回渲染目标样本的数量。 |
GetRenderTargetSamplePosition | GetRenderTargetSamplePosition(x) | 返回给定样本索引的样本位置(x,y)。 |
isfinite | isfinite(x) | 如果x是有限的,则返回true,否则返回false。 |
isinf | isinf(x) | 如果x是+ INF或-INF,则返回true,否则返回false。 |
isnan | isnan(x) | 如果x是NAN或QNAN,则返回true,否则返回false。 |
ldexp | ldexp(x, exp) | 返回x * 2exp |
length | length(v) | 返回向量v的长度。 |
lerp | lerp(x, y, s) | 返回x + s(y - x)。 |
lit | lit(n • l, n • h, m) | 返回光照矢量(ambient,diffuse,specular,1) |
log | log(x) | 返回x的base-e对数。 |
log10 | log10(x) | 返回x的以10为底的对数。 |
log2 | log2(x) | 返回x的base-2对数。 |
max | max(x, y) | 选择x和y中的较大者。 |
min | min(x, y) | 选择x和y中较小的一个。 |
modf | modf(x, out ip) | 将值x拆分为小数和整数部分。 |
mul | mul(x, y) | 使用x和y执行矩阵乘法。 |
noise | noise(x) | 使用Perlin噪声算法生成随机值。 |
normalize | normalize(x) | 返回一个规范化的向量。 |
pow | pow(x, y) | 返回xy。 |
radians | radians(x) | 将x从度转换为弧度。 |
reflect | reflect(i, n) | 返回反射向量。 |
refract | refract(i, n, R) | 返回折射矢量。 |
round | round(x) | 将x舍入为最接近的整数 |
rsqrt | rsqrt(x) | 返回1 / sqrt(x) |
saturate | saturate(x) | 将x夹在范围[0,1] |
sign | sign(x) | 计算x的符号。 |
sin | sin(x) | 返回x的正弦值 |
sincos | sincos(x, out s, out c) | 返回x的正弦和余弦。 |
sinh | sinh(x) | 返回x的双曲正弦值 |
smoothstep | smoothstep(min, max, x) | 返回0到1之间的平滑Hermite插值。 |
sqrt | sqrt(x) | 平方根 |
step | step(a, x) | 返回(x> = a)? 1:0 |
tan | tan(x) | 返回x的正切值 |
tanh | tanh(x) | 返回x的双曲正切值 |
tex1D | tex1D(s, t) | 1D纹理查找。 |
tex1Dbias | tex1Dbias(s, t) | 具有偏差的1D纹理查找。 |
tex1Dgrad | tex1Dgrad(s, t, ddx, ddy) | 使用渐变进行一维纹理查找。 |
tex1Dlod | tex1Dlod(s, t) | 使用LOD进行1D纹理查找。 |
tex1Dproj | tex1Dproj(s, t) | 具有投影鸿沟的一维纹理查找。 |
tex2D | tex2D(s, t) | 2D纹理查找。 |
tex2Dbias | tex2Dbias(s, t) | 具有偏差的2D纹理查找。 |
tex2Dgrad | tex2Dgrad(s, t, ddx, ddy) | 使用渐变进行2D纹理查找。 |
tex2Dlod | tex2Dlod(s, t) | 使用LOD进行2D纹理查找。 |
tex2Dproj | tex2Dproj(s, t) | 具有投影鸿沟的2D纹理查找。 |
tex3D | tex3D(s, t) | 3D纹理查找。 |
tex3Dbias | tex3Dbias(s, t) | 3D纹理查找与偏见。 |
tex3Dgrad | tex3Dgrad(s, t, ddx, ddy) | 3D纹理查找与渐变。 |
tex3Dlod | tex3Dlod(s, t) | 3D纹理查找与LOD。 |
tex3Dproj | tex3Dproj(s, t) | 3D纹理查找与投影鸿沟。 |
texCUBE | texCUBE(s, t) | 立方体纹理查找。 |
texCUBEbias | texCUBEbias(s, t) | 多维数据集纹理查找与偏见。 |
texCUBEgrad | texCUBEgrad(s, t, ddx, ddy) | 多维数据集纹理查找与渐变。 |
texCUBElod | tex3Dlod(s, t) | 多维数据集纹理查找与LOD。 |
texCUBEproj | texCUBEproj(s, t) | 多维数据集纹理查找与投影划分。 |
transpose | transpose(m) | 返回矩阵m的转置。 |
trunc | trunc(x) | 将浮点值截断为整数值 |
表 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* 立方纹理查询。