three.js 着色器材质之glsl内置函数
2023-02-02 本文已影响0人
拉风的老衲
- 和角度相关的函数
sin(x) 弧度 正弦函数
cos(x) 弧度 余弦函数
tan(x) 弧度 正切函数
asin(x) 弧度 反正弦函数
acos(x) 弧度 反余弦函数
atan(x) 弧度 反正切函数
radians(x) 角度 角度转换为弧度
degrees(x) 弧度 弧度转换为角度
- 数学函数 指数对数幂函数的操作
pow(x,y) x的y次方。如果x小于0,结果是未定义的。同样,如果x=0并且y<=0,结果也是未定义的。
exp(x) e的x次方
log(x) 计算满足x等于e的y次方的y的值。如果x的值小于0,结果是未定义的。
exp2(x) 计算2的x次方
log2(x) 计算满足x等于2的y次方的y的值。如果x的值小于0,结果是未定义的。
sqrt(x) 计算x的开方。如果x小于0,结果是未定义的。
inversesqrt(x) 计算x的开方之一的值,如果x小于等于0,结果是未定义的。
- 常用函数
abs(x) 返回x的绝对值
sign(x) 如果x>0,返回1.0;如果x=0,返回0,如果x<0,返回-1.0
floor(x) 返回小于等于x的最大整数值
ceil(x) 返回大于等于x的最小整数值
fract(x) 返回x-floor(x),即返回x的小数部分
mod(x, y) 返回x和y的模
min(x, y) 返回x和y的值较小的那个值。
max(x, y) 返回x和y的值较大的那个值。
clamp(x, minVal, maxVal) 将x值钳于minVal和maxVal之间,意思就是当x<minVal时返回minVal,当x>maxVal时返回maxVal,当x在minVal和maxVal之间时,返回x
mix(x, y, a) 返回线性混合的x和y,如:x*(1−a)+y*a
step(edge, x) 如果x < edge,返回0.0,否则返回1.0
smoothstep(edge0, edge1, x) 如果x <= edge0,返回0.0 ;如果x >= edge1 返回1.0;如果edge0 < x < edge1,则执行0~1之间的平滑埃尔米特差值。如果edge0 >= edge1,结果是未定义的。
- 几何函数
length(x) 返回向量x的长度
distance(p0,p1) 计算向量p0,p1之间的距离
dot 向量x,y之间的点积
cross(x, y) 向量x,y之间的叉积
normalize(x) 标准化向量,返回一个方向和x相同但长度为1的向量
faceforward(N, I, Nref) 如果Nref和I的点积小于0,返回N;否则,返回-N;
reflect(I, N) 返回反射向量
refract(I, N, eta) 返回折射向量