Unity Shader 内置固有函数

参考网址:http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html

放在blog上看起来方便,这个是MSDN上的,DirectX Documentation里也有

 

内在函数(DirectX HLSL)
下表列出了HLSL中可用的内部函数。 每个函数都有一个简短的描述,以及指向参考页面的链接,该页面包含有关输入参数和返回类型的更多详细信息。

NameSyntaxDescription
absabs(x)绝对值
acosacos(x)返回x的每个分量的反余弦值。
allall(x)测试x的所有组件是否非零。
anyany(x)测试x的任何组件是否非零。
asfloatasfloat(x)将输入类型转换为float。
asinasin(x)返回x的每个组件的反正弦值。
asintasint(x)将输入类型转换为整数。
asuintasuint(x)将输入类型转换为无符号整数。
atanatan(x)返回x的反正切值。
atan2atan2(y, x)返回两个值(x,y)的反正切值。
ceilceil(x)返回大于或等于x的最小整数。
clampclamp(x, min, max)将x夹在[min,max]范围内。
clipclip(x)如果x的任何分量小于零,则丢弃当前像素。
coscos(x)返回x的余弦值。
coshcosh(x)返回x的双曲余弦值。
crosscross(x, y)返回两个3D矢量的叉积。
D3DCOLORtoUBYTE4D3DCOLORtoUBYTE4(x)4D向量x的Swizzles和scale组件用于补偿某些硬件中缺少UBYTE4支持。
ddxddx(x)返回x相对于屏幕空间x坐标的偏导数。
ddyddy(x)返回x相对于屏幕空间y坐标的偏导数。
degreesdegrees(x)将x从弧度转换为度数。
determinantdeterminant(m)返回方阵m的行列式。
distancedistance(x, y)返回两点之间的距离。
dotdot(x, y)返回两个向量的点积。
expexp(x)返回base-e指数。
exp2exp2(x)基数2指数。
faceforwardfaceforward(n, i, ng)返回-n *符号(•(i,ng))。
floorfloor(x)返回小于或等于x的最大整数。
fmodfmod(x, y)返回x / y的浮点余数。
fracfrac(x)返回x的小数部分。
frexpfrexp(x, exp)返回x的尾数和指数。
fwidthfwidth(x)返回abs(ddx(x))+ abs(ddy(x))
GetRenderTargetSampleCountGetRenderTargetSampleCount()返回渲染目标样本的数量。
GetRenderTargetSamplePositionGetRenderTargetSamplePosition(x)返回给定样本索引的样本位置(x,y)。
isfiniteisfinite(x)如果x是有限的,则返回true,否则返回false。
isinfisinf(x)如果x是+ INF或-INF,则返回true,否则返回false。
isnanisnan(x)如果x是NAN或QNAN,则返回true,否则返回false。
ldexpldexp(x, exp)返回x * 2exp
lengthlength(v)返回向量v的长度。
lerplerp(x, y, s)返回x + s(y - x)。
litlit(n • l, n • h, m)返回光照矢量(ambient,diffuse,specular,1)
loglog(x)返回x的base-e对数。
log10log10(x)返回x的以10为底的对数。
log2log2(x)返回x的base-2对数。
maxmax(x, y)选择x和y中的较大者。
minmin(x, y)选择x和y中较小的一个。
modfmodf(x, out ip)将值x拆分为小数和整数部分。
mulmul(x, y)使用x和y执行矩阵乘法。
noisenoise(x)使用Perlin噪声算法生成随机值。
normalizenormalize(x)返回一个规范化的向量。
powpow(x, y)返回xy。
radiansradians(x)将x从度转换为弧度。
reflectreflect(i, n)返回反射向量。
refractrefract(i, n, R)返回折射矢量。
roundround(x)将x舍入为最接近的整数
rsqrtrsqrt(x)返回1 / sqrt(x)
saturatesaturate(x)将x夹在范围[0,1]
signsign(x)计算x的符号。
sinsin(x)返回x的正弦值
sincossincos(x, out s, out c)返回x的正弦和余弦。
sinhsinh(x)返回x的双曲正弦值
smoothstepsmoothstep(min, max, x)返回0到1之间的平滑Hermite插值。
sqrtsqrt(x)平方根
stepstep(a, x)返回(x> = a)? 1:0
tantan(x)返回x的正切值
tanhtanh(x)返回x的双曲正切值
tex1Dtex1D(s, t)1D纹理查找。
tex1Dbiastex1Dbias(s, t)具有偏差的1D纹理查找。
tex1Dgradtex1Dgrad(s, t, ddx, ddy)使用渐变进行一维纹理查找。
tex1Dlodtex1Dlod(s, t)使用LOD进行1D纹理查找。
tex1Dprojtex1Dproj(s, t)具有投影鸿沟的一维纹理查找。
tex2Dtex2D(s, t)2D纹理查找。
tex2Dbiastex2Dbias(s, t)具有偏差的2D纹理查找。
tex2Dgradtex2Dgrad(s, t, ddx, ddy)使用渐变进行2D纹理查找。
tex2Dlodtex2Dlod(s, t)使用LOD进行2D纹理查找。
tex2Dprojtex2Dproj(s, t)具有投影鸿沟的2D纹理查找。
tex3Dtex3D(s, t)3D纹理查找。
tex3Dbiastex3Dbias(s, t)3D纹理查找与偏见。
tex3Dgradtex3Dgrad(s, t, ddx, ddy)3D纹理查找与渐变。
tex3Dlodtex3Dlod(s, t)3D纹理查找与LOD。
tex3Dprojtex3Dproj(s, t)3D纹理查找与投影鸿沟。
texCUBEtexCUBE(s, t)立方体纹理查找。
texCUBEbiastexCUBEbias(s, t)多维数据集纹理查找与偏见。
texCUBEgradtexCUBEgrad(s, t, ddx, ddy)多维数据集纹理查找与渐变。
texCUBElodtex3Dlod(s, t)多维数据集纹理查找与LOD。
texCUBEprojtexCUBEproj(s, t)多维数据集纹理查找与投影划分。
transposetranspose(m)返回矩阵m的转置。
trunctrunc(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*                立方纹理查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值