【技術(shù)美術(shù)百人計(jì)劃】HLSL常用函數(shù)
max(a,b):取最大值
min(a,b):取最小值
mul(a,b):兩變量相乘
abs(a):絕對(duì)值
round(x):四舍五入
sqrt(x):x的平方根
degress(x):弧度轉(zhuǎn)角度
redians(x):角度轉(zhuǎn)弧度
noise(x):噪聲函數(shù)
pow(x,y):x的y次冪
exp(x):返回以e為底的指數(shù)函數(shù)
exp2(x):返回以2為底,x為指數(shù)的冪
ldexp(x,exp):返回x乘以2的exp次方的乘積
log(x):返回指定值的以e為底的對(duì)數(shù)
log10(x):返回以10為底的對(duì)數(shù)
log2(x):返回以2為底的對(duì)數(shù)
frexp(x, out exp):把浮點(diǎn)數(shù)x分為尾數(shù)和指數(shù),返回尾數(shù),exp返回指數(shù),當(dāng)x=0,則二者為0
sin(x)、cos(x)、tan(x):x為弧度
sincos(x,out s,out c):返回x的正弦值和余弦值
tan(y,x):返回y/x的正切值
asin(x)、acos(x)、atan(x):返回它們的反正弦、反余弦、反正切值。x為弧度
atan2(y,x):返回y/x的反正切值
sinh(x)、cosh(x)、tanh(x):返回它們的雙曲正弦、雙曲余弦、雙曲正切值。x為弧度
ceil(x):返回大于等于x的最小整數(shù)
floor(x):返回小于等于x的最小整數(shù)
step(x,y):x <= y為1,否則為0
saturate(x):x限制在0到1之間
clamp(x,min,max):把x限制在min和max之間
fmord(x,y):返回x對(duì)y取余的余數(shù)
frac(x):取x的小數(shù)
modf(x,out ip):將x分為整數(shù)和小數(shù),ip返回整數(shù),方法返回小數(shù)
lerp(x,y,s):按照s在x和y之間插值
smoothstep(min,max,x):返回0-1,x在min和max之間時(shí)進(jìn)行平滑插值。
all(x):確認(rèn)指定量的所有分量是否都不為0,含0返回false,都不為0返回true。
clip(x):輸入的值小于0,則舍棄該片元
sigh(x):x<0返回-1,x=0返回0,x>0返回1
isinf(x):x為正無(wú)窮或負(fù)無(wú)窮,返回true,否則為false
isfinite(x):x不為正無(wú)窮或負(fù)無(wú)窮,返回true,否則為false
isnan(x):x不為數(shù)字,返回true,否則返回false
length(x):返回向量長(zhǎng)度
normalize(x):向量歸一化
distance(a,b):兩向量距離(根號(hào)下各分量之差的平方和)
dot(a,b):點(diǎn)乘
cross(a,b):叉乘
determinant(m):返回矩陣m按行列方式計(jì)算的值
transpose(m):返回矩陣m的轉(zhuǎn)置矩陣
reflect(i,n):反射向量,i為入射,n為法線
refract(i,n,ri):折射,i為入射,n為法線,ri為折射率
lit(nDotL,nDotH,m):輸入標(biāo)量,返回光照向量,m為鏡面反射系數(shù)
faceforward(n,i,ng):得到面向視圖的曲面法向量。(-n * sign(dot(i,ng))(normal,light,normal))
tex2D(s,t):返回采樣s在坐標(biāo)t的顏色
tex2D(s,t,ddx,ddy):使用微分查詢顏色
tex2Dlod(s,t):使用lod查找紋理在(t.x,t.y,t.z,t.w)的顏色,z沒(méi)有意義,w代表lod值
tex2Dbias(s,t):將t.w決定的某個(gè)MIP層偏置后的紋理查找
tex2Dgrad(s,t,ddx,ddy):使用微分指定MIP層的紋理查找
tex2Dproj(s,t):將紋理投射至場(chǎng)景中,先計(jì)算出投影紋理坐標(biāo)t,再用t進(jìn)行查詢
texCUBE(s,t):返回采樣s在vector t方向上的顏色
texCUBE(s,t,ddx,ddy):使用微分查詢立方體顏色
texCUBEDload(s,t):使用lod查找紋理在(t.x,t.y,t.z,t.w)的顏色,z沒(méi)有意義,w代表lod值
texCUBEbias(s,t):將t.w決定的某個(gè)MIP層偏置后的立方體紋理查找
texCUBEgrad(s,t,ddx,ddy):使用微分指定MIP層的立方體紋理查找
texCUBEproj(s,t):使用投影方式的立方體紋理查找