一、基本数学运算
max(a,b) 返回较大的
min(a,b) 返回较小的
mul(a,b) 两向量相乘,常用于矩阵运算
abs(a) 返回a的绝对值
round(x) 返回与x最近的整数
sqrt(x) 返回x的平方根
rsqrt(x) 返回x的平方根的倒数
degrees(x) 将弧度转化为角度
redians(x) 将角度转化为弧度
noise(x) 噪声函数
数学公式输入可视化:Graphtoy
-
将uv的坐标作为x传入,随机的返回一个[0,1]的值,就会得到一张噪声图
二、幂指对函数
三、三角函数和双曲线函数
sin(x)、cos(x)、tan(x) 三角函数(弧度制:1°=π/180 rad)
asin(x)、acos(x)、atan(x) 反三角函数
sincos(x,out s,out c) 返回x的正弦和余弦
tan(y,x) 返回y/x的正切
atan2(y,x) 返回y/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]范围的值,比min小返回min,比max大返回max
fmord(x,y) 返回x对y取余的余数
frac(x) 取x的小数部分
modf(x,out ip) 将x分为小数和整数部分(输出的ip为整数部分,返回值为小数部分)
lerp(x,y,s)按照s在x到y之间插值,返回x * 1(1 - s) + y * s
smoothstep(min,max,x) 如果x在[min,max]范围内,就返回介于[0,1]之间的平滑Hermite插值,使用smoothstep在两个值直接创建平滑过渡
-
eg,平滑地混合两种颜色
五、类型判断类
all(x) 确定指定量的所有分量是否均为非零,均非零则返回true,否则返回false(处理由浮点型、整型、布尔型数据定义的标量、向量或者矩阵)
clip(x) 如果输入值小于零,则丢弃当前像素 常用于判定范围(不仅仅针对0,返回值为void)
-
常用于测试alpha,如果每个分量代表到平面的距离,还可以用来模拟剪