今天给大家列出来shader中常用的一些函数,函数后面有释义,大家可以打印出来,或者在写shader的时候来这篇文章查阅,看看你需要用到哪些。
Cg提供了一系列内建的标准函数。这些函数用于执行数学上的通用计算或通用算法(纹理映射等), 有些函数直接和 GPU 指令相对应,所以执行效率非常高。
这些函数来源于文档,我为大家筛选出了常用的,去掉了基本用不到的函数。
数学函数:
-
abs(x)
返回输入参数的绝对值
-
acos(x)
反余切函数,输入参数范围为[-1,1],返回[0,π]区间的角度值
-
all(x)
如果输入参数均不为0,则返回 ture;否则返回 flase。&&运算
-
any(x)
输入参数只要有其中一个不为0,则返回 true。||运算
-
asin(x)
反正弦函数,输入参数取值区间为[−1,1],返回角度值范围为[−π/2 ,π/2 ]
-
atan(x)
反正切函数,返回角度值范围为⎡−π/2 ,π/2⎤
-
atan2(y,x)
计算y/x 的反正切值。实际上和atan(x)函数功能完全一样,至少输入参数不同。atan(x) = atan2(x, float(1))
-
ceil(x)
对输入参数向上取整。例如:ceil(float(1.3)),其返回值为 2.0
-
clamp(x,a,b)
如果x 值小于 a,则返回a;如果 x 值大于 b,返回b;否则,返回 x
-
cos(x)
返回弧度 x 的余弦值。返回值范围为[−1,1]
-
cross(A,B)
返回两个三元向量的叉积(cross product)。注意,输入参数必须是三元向量
-
degrees(x)
输入参数为弧度值(radians),函数将其转换为角度值(degrees)
-
determinant(m)
计算矩阵的行列式因子