百人计划图形2.3——HLSL常用函数

一、基本数学运算
max(a,b) 返回较大的那个min(a,b)返回较小的那个
mul(a,b) 两数相乘,常用于矩阵运算abs(a)返回输入值的绝对值
round(x) 返回与x最近的整数sqrt(x)返回指定值的平方根
rsqrt(x) 返回指定值的平方根的倒数
degrees(x) 转换成弧度
redians(x) 将角度转为弧度制noise(x)噪声函数

二、幂指对与偏导数

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


四、数据范围类
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,大于返回maxfrac(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插值;使用smoothstep HLSL内在函数在两个值之间创建平滑过渡。例如,使用此功能平滑地混合两种颜色

五、类型判断类
all(x)确定指定量的所有分量是否均为非零,均非零则返回true,否则返回false(处理由浮点型、整型、布尔型数据定义的标量、向量或者矩阵)
clip(x)如果输入值小于零,则丢弃当前像素常用于判定范围(不仅仅针对0,返回值为void)常用于测试alpha,如果每个分量代表到平面的距离,还可以用来模拟剪切平面
sign(x)返回x的正负性如果x小于零返回-1,如果x等于零返回0,如果x大于零返回1
isinf(x)如果x参数为+lINF或-INF(无穷+无穷仍无穷,Ox3f3f3f3f),返回true,否则返回Falseisfinite(x)判断x参数是有限,即有界的,与isinf(x)相反xiang'fa
isnan(x)如果x参数为NAN(非数字),返回true,否则返回false
六、向量与矩阵类
length(v)返回向量的长度
normalize(v)向量归一化,x/length(x)方向向量归一化
distance(a,b)返回两个向量之间的距离,按理说应该为O,此处表示为根号下各分量之差的平万和dot(a,b)返回a和b这两个向量的标积/内积/数量积/点积(a在b上的投影长,arb=la][blcos0)
cross(a,b)返回a和b这两个向量的矢积/外积/向量积/叉积
(返回值是个向量,而且与a、b都垂直,大小上|a x b|=al*bl/ *sin0 )
determinant(m)返回指定浮点矩阵的按行列式方式计算的值
transpose(m)返回矩阵m的转置矩阵



3d纹理查找实际是查找纹理中的大量2d纹理?

个人认为常用函数
dot
normalize(归一化)
lerp
pow等
ddxddy的实际使用测试
对于MIPMAP来说,ddxddy越大 ,MIPMAP级别就越大。
边缘锐化


主要代码截图
