常用的CG內置函數
10-30
數學函數
- abs(x) 返回輸入參數的絕對值
- acos(x) 反餘切函數,輸入參數範圍為[-1,1], 返回[0,π]區間的角度值
- all(x) 如果輸入參數均不為0,則返回ture; 否則返回flase。&&運算
- any(x) 輸入參數只要有其中一個不為0,則返回true。
- asin(x) 反正弦函數,輸入參數取值區間為,返回角度值範圍為, atan(x)反正切函數,返回角度值範圍為
- atan2(y,x) 計算y/x的反正切值。實際上和atan(x)函數功能完全一樣,至少輸入參數不同。atan(x) = atan2(x, float(1))。
- ceil(x) 對輸入參數向上取整。例如: ceil(float(1.3)) ,其返回值為2.0clamp(x,a,b)如果x值小於a,則返回a;如果x值大於b,返回b;否則,返回x。
- cos(x) 返回弧度x的餘弦值。返回值範圍為cosh(x)雙曲餘弦(hyperbolic cosine)函數,計算x的雙曲餘弦值。
- cross(A,B) 返回兩個三元向量的叉積(cross product)。注意,輸入參數必須是三元向量!
- degrees(x) 輸入參數為弧度值(radians),函數將其轉換為角度值(degrees)determinant(m)計算矩陣的行列式因子。dot(A,B)返回A和B的點積(dot product)。參數A和B可以是標量,也可以是向量(輸入參數方面,點積和叉積函數有很大不同)。
- exp(x) 計算的值,e=2.71828182845904523536
- exp2(x) 計算的值
- floor(x) 對輸入參數向下取整。例如floor(float(1.3))返回的值為1.0;但是floor(float(-1.3))返回的值為-2.0。該函數與ceil(x)函數相對應。
- fmod(x,y) 返回x/y的餘數。如果y為0,結果不可預料。
- frac(x) 返回標量或矢量的小數
- frexp(x, out i) 將浮點數x分解為尾數和指數,即, 返回m,並將指數存入i中;如果x為0,則尾數和指數都返回0
- isfinite(x) 判斷標量或者向量中的每個數據是否是有限數,如果是返回true;否則返回false;
- isinf(x) 判斷標量或者向量中的每個數據是否是無限,如果是返回true;否則返回false;
- isnan(x) 判斷標量或者向量中的每個數據是否是非數據(not-a-number NaN),如果是返回true;否則返回false;
- ldexp(x, n) 計算的值
- lerp(a, b, f) 計算或者的值。即在下限a和上限b之間進行插值,f表示權值。注意,如果a和b是向量,則權值f必須是標量或者等長的向量。
- lit(NdotL, NdotH, m) N表示法向量;L表示入射光向量;H表示半形向量;m表示高光係數。 函數計算環境光、散射光、鏡面光的貢獻,返回的4元向量。 X位表示環境光的貢獻,總是1.0; Y位代表散射光的貢獻,如果 ,則為0;否則為 Z位代表鏡面光的貢獻,如果 或者,則位0;否則為;W位始終位1.0
- log(x) 計算的值,x必須大於0
- log2(x) 計算的值,x必須大於0
- log10(x) 計算的值,x必須大於0
- max(a, b) 比較兩個標量或等長向量元素,返回最大值。
- min(a,b) 比較兩個標量或等長向量元素,返回最小值。
- modf(x, out ip) 把x分解成整數和分數兩部分,每部分都和x有著相同的符號,整數部分被保存在ip中,分數部分由函數返回
- mul(M, N) 矩陣M和矩陣N的積,計算方法如下
- mul(M, v) 矩陣M和列向量v的積,公式如下
- mul(v, M) 行向量v和矩陣M的積,公式如下
- noise(x) 根據它的參數類型,這個函數可以是一元、二元或三元噪音函數。返回的值在0和1之間,並且通常與給定的輸入值一樣
- pow(x, y)
- radians(x) 函數將角度值轉換為弧度值
- round(x) 返回四捨五入值。
- rsqrt(x) x的平方根的倒數,x必須大於0
- saturate(x) 把x限制到[0,1]之間
- sign(x) 如果則返回1;否則返回0
- sin(x) 輸入參數為弧度,計算正弦值,返回值範圍 為[-1,1]
- sincos(float x, out s, out c) 該函數是同時計算x的sin值和cos值,其中s=sin(x),c=cos(x)。該函數用於「同時需要計算sin值和cos值的情況」,比分別運算要快很多!
- sinh(x) 計算x的雙曲正弦
- smoothstep(min, max, x) 值x位於min、max區間中。如果x=min,返回0;如果x=max,返回1;如果x在兩者之間,按照下列公式返回數據:
- step(a, x) 如果,返回0;否則,返回1
- sqrt(x) 求x的平方根,,x必須大於0
- tan(x) 計算x正切值
- tanh(x) 計算x的雙曲線切線
- transpose(M) 矩陣M的轉置矩陣,如果M是一個AxB矩陣,M的轉置是一個BxA矩陣,它的第一列是M的第一行,第二列是M的第二行,第三列是M的第三行,等等
點下面鏈接添加我的微信(summer_dan_3),從此多一個開發者好友:
佔佔的微信(summer_dan_3)
kylinzhan.cn
推薦閱讀: