CG標(biāo)準(zhǔn)函數(shù)庫(kù)
abs(x)??
返回輸入?yún)?shù)的絕對(duì)值
acos(x)?
反余切函數(shù),輸入?yún)?shù)范圍為[-1,1], 返回[0,π]區(qū)間的角度值
all(x)??
如果輸入?yún)?shù)均不為0,則返回ture; 否則返回flase。&&運(yùn)算
any(x)??
輸入?yún)?shù)只要有其中一個(gè)不為0,則返回true。
asin(x)?
反正弦函數(shù),輸入?yún)?shù)取值區(qū)間為[?1,1],返回角度值范圍為, [?π2,π2]
atan(x)?
反正切函數(shù),返回角度值范圍為[?π2,π2]
atan2(y,x)??
計(jì)算y/x的反正切值。實(shí)際上和atan(x)函數(shù)功能完全一樣,至少輸入?yún)?shù)不同。atan(x) = atan2(x, float(1))。
ceil(x)?
對(duì)輸入?yún)?shù)向上取整。例如: ceil(float(1.3)) ,其返回值為2.0
clamp(x,a,b)? ??
如果x值小于a,則返回a;如果x值大于b,返回b;否則,返回x。
cos(x)??
返回弧度x的余弦值。返回值范圍為[?1,1]
cosh(x)?
雙曲余弦(hyperbolic cosine)函數(shù),計(jì)算x的雙曲余弦值。
cross(A,B)??
返回兩個(gè)三元向量的叉積(cross product)。注意,輸入?yún)?shù)必須是三元向量!
degrees(x)??
輸入?yún)?shù)為弧度值(radians),函數(shù)將其轉(zhuǎn)換為角度值(degrees)
determinant(m)??
計(jì)算矩陣的行列式因子。
dot(A,B)? ??
返回A和B的點(diǎn)積(dot product)。參數(shù)A和B可以是標(biāo)量,也可以是向量(輸入?yún)?shù)方面,點(diǎn)積和叉積函數(shù)有很大不同)。
exp(x)??
計(jì)算ex的值,e=2.71828182845904523536
exp2(x)?
計(jì)算2x的值
floor(x)? ??
對(duì)輸入?yún)?shù)向下取整。例如floor(float(1.3))返回的值為1.0;但是floor(float(-1.3))返回的值為-2.0。該函數(shù)與ceil(x)函數(shù)相對(duì)應(yīng)。
fmod(x,y)? ?
返回x/y的余數(shù)。如果y為0,結(jié)果不可預(yù)料。
frac(x)?
返回標(biāo)量或矢量的小數(shù)
frexp(x, out i)?
將浮點(diǎn)數(shù)x分解為尾數(shù)和指數(shù),即x=m?2i, 返回m,并將指數(shù)存入i中;如果x為0,則尾數(shù)和指數(shù)都返回0
isfinite(x)?
判斷標(biāo)量或者向量中的每個(gè)數(shù)據(jù)是否是有限數(shù),如果是返回true;否則返回false;
isinf(x)? ??
判斷標(biāo)量或者向量中的每個(gè)數(shù)據(jù)是否是無(wú)限,如果是返回true;否則返回false;
isnan(x)? ??
判斷標(biāo)量或者向量中的每個(gè)數(shù)據(jù)是否是非數(shù)據(jù)(not-a-number NaN),如果是返回true;否則返回false;
ldexp(x, n)?
計(jì)算x?2n的值
lerp(a, b, f)? ?
計(jì)算(1?f)?a+b?f或者a+f?(b?a)的值。即在下限a和上限b之間進(jìn)行插值,f表示權(quán)值。注意,如果a和b是向量,則權(quán)值f必須是標(biāo)量或者等長(zhǎng)的向量。
lit(NdotL, NdotH, m)? ??
N表示法向量;L表示入射光向量;H表示半角向量;m表示高光系數(shù)。 函數(shù)計(jì)算環(huán)境光、散射光、鏡面光的貢獻(xiàn),返回的4元向量。?
X位表示環(huán)境光的貢獻(xiàn),總是1.0;?
Y位代表散射光的貢獻(xiàn),如果 N?L<0,則為0;否則為N?L?
Z位代表鏡面光的貢獻(xiàn),如果N?L<0 或者N?H<0,則位0;否則為(N?L)m;
W位始終位1.0
log(x)??
計(jì)算ln(x)的值,x必須大于0
log2(x)?
計(jì)算log(x)2的值,x必須大于0
log10(x)? ??
計(jì)算log(x)10的值,x必須大于0
max(a, b)? ?
比較兩個(gè)標(biāo)量或等長(zhǎng)向量元素,返回最大值。
min(a,b)? ??
比較兩個(gè)標(biāo)量或等長(zhǎng)向量元素,返回最小值。
modf(x, out ip)?
把x分解成整數(shù)和分?jǐn)?shù)兩部分,每部分都和x有著相同的符號(hào),整數(shù)部分被保存在ip中,分?jǐn)?shù)部分由函數(shù)返回
mul(M, N)? ?
矩陣M和矩陣N的積
mul(M, v)? ?
矩陣M和列向量v的積
mul(v, M)
行向量v和矩陣M的積
noise(x)? ??
根據(jù)它的參數(shù)類(lèi)型,這個(gè)函數(shù)可以是一元、二元或三元噪音函數(shù)。返回的值在0和1之間,并且通常與給定的輸入值一樣
pow(x, y)? ?
xy(x的y次方)
radians(x)??
函數(shù)將角度值轉(zhuǎn)換為弧度值
round(x)? ??
返回四舍五入值
rsqrt(x)? ??
x的平方根的倒數(shù),x必須大于0
saturate(x)?
把x限制到[0,1]之間
sign(x)?
如果x>0則返回1;否則返回0
sin(x)??
輸入?yún)?shù)為弧度,計(jì)算正弦值,返回值范圍 為[-1,1]
sincos(float x, out s, out c)? ?
該函數(shù)是同時(shí)計(jì)算x的sin值和cos值,其中s=sin(x),c=cos(x)。該函數(shù)用于“同時(shí)需要計(jì)算sin值和cos值的情況”,比分別運(yùn)算要快很多!
sinh(x)?
計(jì)算x的雙曲正弦
smoothstep(min, max, x)?
值x位于min、max區(qū)間中。如果x=min,返回0;如果x=max,返回1;如果x在兩者之間,按照下列公式返回?cái)?shù)據(jù):?2?(x?minmax?min)3+3?(x?minmax?min)2
step(a, x)??
如果x<a,返回0;否則,返回1
sqrt(x)?
求x的平方根,x√,x必須大于0
tan(x)??
計(jì)算x正切值
tanh(x)?
計(jì)算x的雙曲線切線
transpose(M)? ??
矩陣M的轉(zhuǎn)置矩陣
如果M是一個(gè)AxB矩陣,M的轉(zhuǎn)置是一個(gè)BxA矩陣,它的第一列是M的第一行,第二列是M的第二行,第三列是M的第三行,等等