CG语言的数学函数

来源:互联网 发布:淘宝快递包邮的秘密 编辑:程序博客网 时间:2024/05/21 15:04

abs(x)

返回标量和向量x的绝对值

如果x是向量,则返回每一个成员的绝对值

acos(x)

返回标量和向量x的反余弦

x的范围是[-1,1],返回值的范围是[0,π],

如果x是向量,则返回每一个成员的反余弦

all(x)

如果一个布尔标量为真,或者布尔向量的所有成员为真,则返回真

any(x)

如果一个布尔标量为真,或者布尔向量成员存在真值,则返回真

asin(x)

返回标量和向量x的反正弦

x的范围是[-1,1],返回值的范围是[-π/2,π/2],

如果x是向量,则返回每一个成员的反正弦

atan(x)

返回标量和向量x的反正切

x的范围不限,返回值的范围是[-π/2,π/2],

如果x是向量,则返回每一个成员的反正切·

atan2(y, x)

返回标量和向量y/x的反正切

返回值的范围是[-π,π],

ceil(x)

返回不小于x的下一个整数

clamp(x, a, b)

返回一个[a, b]范围内的数

如果x<a则返回a

如果x>b则返回b

否则返回x

cos(x)

返回x的cos值

cosh(x)

返回一个x的双曲线cos值

cross(a, b)

返回a, b的叉积

a, b一定含有3个成员

degrees(x)

弧度转化为角度

determinant(M)

返回的正方形矩阵m的行列式

dot(a, b)

返回a与b的点积

exp(x)

返回以e为底的x次幂

exp2(x)

返回以2为底的x次幂

floor(x)

返回不大于x的上一个整数

fmod(x, y)

返回一个x/y的余数,

y如果为0,结果不可预料

frac(x)

返回x的小数部分

frexp(x, out exp)

将浮点数x分解为尾数(在[0.5, 1]范围内)和指数(输出为e)

如果x为0,结果的所有部分都为0

isfinite(x)

如果x是有限的则返回true

isinf(x)

如果x是无限的则返回true

isnan(x)

NaN(not-a-number)

如果x NaN(not-a-number)

则返回true

ldexp(x, n)

x * 2的n次方

lerp(a, b, w)

w是比重

当w= 0时返回a,当w= 1时返回b

根据w返回一个[a, b]的值

p.s. w可以为任意值,不用限制在[0, 1]之内

w can be any value (so is not restricted to be between zero and one);

lit(ndotl, ndoth, m)

计算环境、漫反射、和高光的光照系数

返回一个4维向量

x,环境光系数,经常值为1.0

y,漫反射系数 如果 dot(n, l) < 0返回0,否则返回dot(n, l)

z,高光系数 如果 dot(n, l) < 0或dot(n, h) < 0返回0,否则返回dot(n, h)的m次方

w 固定值为1.0

log(x)

ln(x)

log2(x)

以2为底x的对数

log10(x)

以10为底x的对数

max(a, b)

返回a,b中的最大值

min(a, b)

返回a,b中的最小值

modf(x, out ip)

把x分离成整数和小数部分,把x的整数值存在输出参数ip处,并返回x的小数部分

mul(M, N)

矩阵M和N的乘积

 

如果M是一个AxB的矩阵,N是一个BxC的矩阵,就返回一个AxC的矩阵

mul(M, v)

矩阵M和列矢量v的乘积

 

如果M是一个AxB的矩阵,v是一个Bx1的矢量,就返回一个Ax1的矢量

mul(v, M)

行矢量v和矩阵M的乘积


如果v是一个1xA的矢量,M是一个AxB的矩阵,就返回一个1xB的矢量

noise(x)

任意一个1维2维或3维的噪波函数取决于x的类型。

返回一个[0, 1]范围内的,总是和输入相同的值

pow(x, y)

返回x的y次方值

radians(x)

角度转化为弧度的值

round(x)

采用四舍五入法,返回把x化为整数值

rsqrt(x)

返回x的平方根的倒数

x必须大于0

saturate(x)

返回一个[0, 1]范围内的数

如果x<0则返回0

如果x>1则返回1

否则返回x

sign(x)

如果 x>0返回1

如果 x<0返回-1

否则返回0

sin(x)

返回x的sin值

sincos(float x, out s, out c)

输出参数s 为x的sin值,c为s的cos值

这个函数比分别计算x的sin和cos有效率

此函数无返回值

sinh(x)

返回一个x的双曲线sin值

smoothstep(min, max, x)

x是一个[min, max]范围内的数

如果x=min返回0,如果x=max返回1

否则返回如下公式的计算结果:

 

step(a, x)

如果 x<a返回0

如果 x≥a返回1

sqrt(x)

返回x的平方根

x必须大于0

tan(x)

返回x的tan值

tanh(x)

返回一个x的双曲线tan值

transpose(M)

返回M的转置矩阵


0 0
原创粉丝点击