百人计划(图形)2.3常用函数介绍(HLSL)

一、基本数学运算

函数 作用
max(a, b) 返回较大的值
min(a, b) 返回较小的值
mul(a, b) 矩阵相乘
abs(a) 返回a的绝对值
round(x) 返回与x最近的整数(四舍五入)
sqrt(x) 返回x的平方根
rsqrt(x) 返回x的平方根的倒数
degrees(x) 将弧度转换为角度
radians(x) 将角度转换成弧度
noise(x)

噪声函数,将uv坐标作为x传入,返回一个[0,1]之间的随机值

二、幂指对函数

函数 作用
pow(x, y) x的y次幂,即 x^{y}
exp(x) 返回以e为底,x为指数的值,即 e^{x}
exp2(x) 返回以2为底,x为指数的值,即 2^{x}
ldexp(x, exp) 返回x与2的exp次方的乘积的值,即 x*2^{exp}
log(x) 返回指定值x的以e为底的对数的值,即 \ln 2
log2(x) 返回指定值x的以2为底的对数的值,即 \log _{2}^{x}
log10(x) 返回指定值x的以10为底的对数的值,即 \log _{10}^{x}
frexp(x, out exp)

把浮点数 x 分解成尾数和指数,返回值是尾数,exp参数返回的值是指数。(如果x参数为0,则此函数的尾数和指数均返回0)

三、三角函数与双曲线函数 

函数 作用

sin(x)

返回输入值的正弦值

cos(x)

返回输入值的余弦值

tan(x)

返回输入值的正切值

tan(y, x)

返回y/x的正切值

sincos(x, out s, out c)

返回x的正弦值和余弦值

asin(x)

返回输入值的反正弦值

扫描二维码关注公众号,回复: 17282551 查看本文章

acos(x)

返回输入值反余弦值

atan(x)

返回输入值的反正切值

atan2(y, x)

返回y/x的反正切值

sinh(x)

返回x的双曲正弦值,即 0.5*\left ( e^{x}-e^{-x} \right )

cosh(x)

返回x的双曲余弦值,即 0.5*\left ( e^{x}+e^{-x} \right )

tanh(x)

返回x双曲正切值,即,\left ( e^{x}-e^{-x} \right )/\left ( e^{x}+e^{-x} \right )

 

四、数据范围类

函数 作用
ceil(x)

返回>=x的最小整数(向上取整)

step(x, y)

x<=y为1,否则为0

floor(x)

返回<=x的最大整数(向下取整)

saturate(x)

返回将x钳制到0和1之间的值

clamp(x, min, max)

把x限制在[min, max]范围内,小于返回min,大于返回max

frac(x)

返回x的小数部分

fmord(a, b)

返回a/b的浮点余数部分

modf(x, out ip)

将值x分为小数和整数部分(各部分符号与x相同)

ip返回整数部分,整体返回小数部分

lerp(a, b, s)

按照s在a到b之间插值

smoothstep(min, max, x)

如果x在[min,max]范围内,则返回介于0和1之间的平滑Hermite插值;

五、类型判断类

函数 作用

all(x)

确定指定量的所有分量是否均为非零,均非零则返回true,否则返回false

clip(x)

如果输入值小于零,则丢弃当前像素

sign(x)

返回x的正负性,如果x小于零返回-1,如果x等于零返回0,如果x大于零返回1 

isinf(x)

如果x参数为+INF或-INF,返回true,否则返回false

isfinite(x)

判断x参数是否有限,与isinf(x)相反

isnan(x)

如果x参数为NaN(非数字),返回true,否则返回false

六、向量与矩阵类

函数

作用

length(v)

返回向量的长度

normalize(v)

方向向量归一化,x/length(x)

distance(a, b)

返回两个向量之间的距离

dot(a, b)

返回两个向量的点积

cross(a, b)

返回两个向量的叉积(返回值是个向量)

determinant(m)

返回指定浮点矩阵按行列式方式计算的值

transpose(m)

返回矩阵m的转置矩阵

七、光线运算类

函数 作用

reflect(i, n)

以i为入射向量,n为法线方向的反射光

refract(i, n, ri)

以i为入射向量,n为法线方向,ri为折射率的折射光

lit(n_dot_l, n_dot_h, m)

返回光照向量(环境光,漫反射光,镜面高光反射,1)

faceforward(n, i,  ng)

将曲面法线翻转为朝向与 i 相反的方向

 

八、1D纹理查找

函数

作用
tex1D(s, t) 采样 1D 纹理

tex1D(s, t, ddx, ddy)

使用渐变来采样 1D 纹理以选择 mip 级别

tex1Dlod(s, t)

使用 mipmap 对 1D 纹理采样,mipmap LOD 在 t.w 中指定

tex1Dbias(s, t)

按 t.w 对 mip 级别进行偏差后,对 1D 纹理采样

tex1Dgrad(s, t, ddx, ddy)

使用渐变采样 1D 纹理以选择 mip 级别

tex1Dproj(s, t)

使用投影除法对 1D 纹理采样;查找之前,纹理坐标被 t.w 除以

 

九、2D纹理查找

十、3D纹理查找

十一、立体纹理查找

推荐一个函数图像绘制网站:Graphtoy

猜你喜欢

转载自blog.csdn.net/qq_63133691/article/details/131045728