函數(shù)——功能描述
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ū)間為,返回角度值范圍為,
atan(x) 反正切函數(shù),返回角度值范圍為
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的余弦值。返回值范圍為
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ì)算的值,e=2.71828182845904523536
exp2(x) 計(jì)算的值
對(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ù),即, 返回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ì)算的值
計(jì)算或者的值。即在下限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),如果 ,則為0;否則為 Z位代表鏡面光的貢獻(xiàn),如果 或者,則位0;否則為;W位始終位1.0
log(x) 計(jì)算的值,x必須大于0
log2(x) 計(jì)算的值,x必須大于0
log10(x) 計(jì)算的值,x必須大于0
比較兩個(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ù)類型,這個(gè)函數(shù)可以是一元、二元或三元噪音函數(shù)。返回的值在0和1之間,并且通常與給定的輸入值一樣
radians(x) 函數(shù)將角度值轉(zhuǎn)換為弧度值
round(x) 返回四舍五入值。
rsqrt(x) x的平方根的倒數(shù),x必須大于0
把x限制到[0,1]之間
sign(x) 如果則返回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的雙曲正弦
值x位于min、max區(qū)間中。如果x=min,返回0;如果x=max,返回1;如果x在兩者之間,按照下列公式返回?cái)?shù)據(jù):
對(duì)等 T= ( a < y ) ? 1 : 0
sqrt(x) 求x的平方根,,x必須大于0
tan(x) 計(jì)算x正切值
tanh(x) 計(jì)算x的雙曲線切線
transpose(M) 矩陣M的轉(zhuǎn)置矩陣
幾何函數(shù)——描述
distance(pt1, pt2) 兩點(diǎn)之間的歐幾里德距離(Euclidean distance)
faceforward(N,I,Ng) 如果,返回N;否則返回-N。
length(v) 返回一個(gè)向量的模,即sqrt(dot(v,v))
返回v向量的單位向量
reflect(I, N) 根據(jù)入射光纖方向I和表面法向量N計(jì)算反射向量,僅對(duì)三元向量有效
refract(I,N,eta) 根據(jù)入射光線方向I,表面法向量N和折射相對(duì)系數(shù)eta,計(jì)算折射向量。如果對(duì)給定的eta,I和N之間的角度太大,返回(0,0,0)。
只對(duì)三元向量有效
紋理映射函數(shù)——功能描述
tex1D(sampler1D tex, float s) 一維紋理查詢
tex1D(sampler1D tex, float s, float dsdx, float dsdy) 使用導(dǎo)數(shù)值(derivatives)查詢一維紋理
Tex1D(sampler1D tex, float2 sz) 一維紋理查詢,并進(jìn)行深度值比較
Tex1D(sampler1D tex, float2 sz, float dsdx,float dsdy) 使用導(dǎo)數(shù)值(derivatives)查詢一維紋理, 并進(jìn)行深度值比較
Tex1Dproj(sampler1D tex, float2 sq) 一維投影紋理查詢
Tex1Dproj(sampler1D tex, float3 szq) 一維投影紋理查詢,并比較深度值
Tex2D(sampler2D tex, float2 s) 二維紋理查詢
Tex2D(sampler2D tex, float2 s, float2 dsdx, float2 dsdy) 使用導(dǎo)數(shù)值(derivatives)查詢二維紋理
Tex2D(sampler2D tex, float3 sz) 二維紋理查詢,并進(jìn)行深度值比較
Tex2D(sampler2D tex, float3 sz, float2 dsdx,float2 dsdy) 使用導(dǎo)數(shù)值(derivatives)查詢二維紋理,并進(jìn)行深度值比較
二維投影紋理查詢
Tex2Dproj(sampler2D tex, float4 szq) 二維投影紋理查詢,并進(jìn)行深度值比較
texRECT(samplerRECT tex, float2 s) 二維非投影矩形紋理查詢(OpenGL獨(dú)有)
texRECT (samplerRECT tex, float3 sz, float2 dsdx,float2 dsdy) 二維非投影使用導(dǎo)數(shù)的矩形紋理查詢(OpenGL獨(dú)有)
texRECT (samplerRECT tex, float3 sz) 二維非投影深度比較矩形紋理查詢(OpenGL獨(dú)有)
texRECT (samplerRECT tex, float3 sz, float2 dsdx,float2 dsdy) 二維非投影深度比較并使用導(dǎo)數(shù)的矩形紋理查詢(OpenGL獨(dú)有)
texRECT proj(samplerRECT tex, float3 sq) 二維投影矩形紋理查詢(OpenGL獨(dú)有)
texRECT proj(samplerRECT tex, float3 szq) 二維投影矩形紋理深度比較查詢(OpenGL獨(dú)有)
Tex3D(sampler3D tex, float s) 三維紋理查詢
Tex3D(sampler3D tex, float3 s, float3 dsdx, float3 dsdy) 結(jié)合導(dǎo)數(shù)值(derivatives)查詢?nèi)S紋理
Tex3Dproj(sampler3D tex, float4 szq) 查詢?nèi)S投影紋理,并進(jìn)行深度值比較
texCUBE(samplerCUBE tex, float3 s) 查詢立方體紋理
texCUBE (samplerCUBE tex, float3 s, float3 dsdx, float3 dsdy) 結(jié)合導(dǎo)數(shù)值(derivatives)查詢立方體紋理
texCUBEproj (samplerCUBE tex, float4 sq) 查詢投影立方體紋理