Unity ShaderLab 常用函数
CG标准库:
https://developer.download.nvidia.cn/cg/index_stdlib.html
//数学函数
abs(x):绝对值
sin(x):正弦,输入为弧度
cos(x):正弦,输入为弧度
sincos(x,out s,out c):s=sin(x),c=cos(x)
ceil(x):向上取整
floor(x):向下取整(floor(-1.3)= -2)
round(x):四舍五入
frac(x):取x的小数部分
degrees 弧度到角度的转换
fmod 返回a / b的浮点余数。
clamp(x,a,b):把x截取到[a,b]
saturate(x):把x截取到[0,1]
lerp(a,b,f):(1-f) * a + f * b
step(a,x):返回x>=a
smoothstep(min,max,x):x=min时返回0,x=max时返回1;否则返回下式的值
pow(x,y):计算x的y次方
sqrt(x):计算x的算术平方根
noise(x):返回根据x生成的伪随机数,范围[0,1]
min(a,b):取最小
max(a,b):取最大
normalize(x):把x化为单位向量
length(x):返回向量x的模
distance(x,y):计算x,y的欧氏距离
dot(a,b):点积
cross(a,b):叉积
mul(a,b):乘法
光照函数:
reflect(I,N):反射函数,I为入射光向量,N为反射表面的法向量,返回反射光向量
refract(I,N,eta):折射函数,I为入射光向量,N为反射表面的法向量,eta是介质折射率,返回折射光向量
纹理采样:
tex2D(sampler2D samp,float2 s):samp是待采样的纹理,s是纹理坐标