【技术美术百人计划】HLSL常用函数
max(a,b):取最大值
min(a,b):取最小值
mul(a,b):两变量相乘
abs(a):绝对值
round(x):四舍五入
sqrt(x):x的平方根
degress(x):弧度转角度
redians(x):角度转弧度
noise(x):噪声函数
pow(x,y):x的y次幂
exp(x):返回以e为底的指数函数
exp2(x):返回以2为底,x为指数的幂
ldexp(x,exp):返回x乘以2的exp次方的乘积
log(x):返回指定值的以e为底的对数
log10(x):返回以10为底的对数
log2(x):返回以2为底的对数
frexp(x, out exp):把浮点数x分为尾数和指数,返回尾数,exp返回指数,当x=0,则二者为0
sin(x)、cos(x)、tan(x):x为弧度
sincos(x,out s,out c):返回x的正弦值和余弦值
tan(y,x):返回y/x的正切值
asin(x)、acos(x)、atan(x):返回它们的反正弦、反余弦、反正切值。x为弧度
atan2(y,x):返回y/x的反正切值
sinh(x)、cosh(x)、tanh(x):返回它们的双曲正弦、双曲余弦、双曲正切值。x为弧度
ceil(x):返回大于等于x的最小整数
floor(x):返回小于等于x的最小整数
step(x,y):x <= y为1,否则为0
saturate(x):x限制在0到1之间
clamp(x,min,max):把x限制在min和max之间
fmord(x,y):返回x对y取余的余数
frac(x):取x的小数
modf(x,out ip):将x分为整数和小数,ip返回整数,方法返回小数
lerp(x,y,s):按照s在x和y之间插值
smoothstep(min,max,x):返回0-1,x在min和max之间时进行平滑插值。
all(x):确认指定量的所有分量是否都不为0,含0返回false,都不为0返回true。
clip(x):输入的值小于0,则舍弃该片元
sigh(x):x<0返回-1,x=0返回0,x>0返回1
isinf(x):x为正无穷或负无穷,返回true,否则为false
isfinite(x):x不为正无穷或负无穷,返回true,否则为false
isnan(x):x不为数字,返回true,否则返回false
length(x):返回向量长度
normalize(x):向量归一化
distance(a,b):两向量距离(根号下各分量之差的平方和)
dot(a,b):点乘
cross(a,b):叉乘
determinant(m):返回矩阵m按行列方式计算的值
transpose(m):返回矩阵m的转置矩阵
reflect(i,n):反射向量,i为入射,n为法线
refract(i,n,ri):折射,i为入射,n为法线,ri为折射率
lit(nDotL,nDotH,m):输入标量,返回光照向量,m为镜面反射系数
faceforward(n,i,ng):得到面向视图的曲面法向量。(-n * sign(dot(i,ng))(normal,light,normal))
tex2D(s,t):返回采样s在坐标t的颜色
tex2D(s,t,ddx,ddy):使用微分查询颜色
tex2Dlod(s,t):使用lod查找纹理在(t.x,t.y,t.z,t.w)的颜色,z没有意义,w代表lod值
tex2Dbias(s,t):将t.w决定的某个MIP层偏置后的纹理查找
tex2Dgrad(s,t,ddx,ddy):使用微分指定MIP层的纹理查找
tex2Dproj(s,t):将纹理投射至场景中,先计算出投影纹理坐标t,再用t进行查询
texCUBE(s,t):返回采样s在vector t方向上的颜色
texCUBE(s,t,ddx,ddy):使用微分查询立方体颜色
texCUBEDload(s,t):使用lod查找纹理在(t.x,t.y,t.z,t.w)的颜色,z没有意义,w代表lod值
texCUBEbias(s,t):将t.w决定的某个MIP层偏置后的立方体纹理查找
texCUBEgrad(s,t,ddx,ddy):使用微分指定MIP层的立方体纹理查找
texCUBEproj(s,t):使用投影方式的立方体纹理查找