欢迎光临散文网 会员登陆 & 注册

【技术美术百人计划】HLSL常用函数

2023-06-08 09:38 作者:柴郡笔记  | 我要投稿

max(a,b):取最大值

min(a,b):取最小值

mul(a,b):两变量相乘

abs(a):绝对值

round(x):四舍五入

sqrt(x):x的平方根

degress(x):弧度转角度

redians(x):角度转弧度

noise(x):噪声函数


pow(x,y):x的y次幂

exp(x):返回以e为底的指数函数

exp2(x):返回以2为底,x为指数的幂

ldexp(x,exp):返回x乘以2的exp次方的乘积

log(x):返回指定值的以e为底的对数

log10(x):返回以10为底的对数

log2(x):返回以2为底的对数

frexp(x, out exp):把浮点数x分为尾数和指数,返回尾数,exp返回指数,当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的最小整数

floor(x):返回小于等于x的最小整数

step(x,y):x <= y为1,否则为0

saturate(x):x限制在0到1之间

clamp(x,min,max):把x限制在min和max之间

fmord(x,y):返回x对y取余的余数

frac(x):取x的小数

modf(x,out ip):将x分为整数和小数,ip返回整数,方法返回小数

lerp(x,y,s):按照s在x和y之间插值

smoothstep(min,max,x):返回0-1,x在min和max之间时进行平滑插值。


all(x):确认指定量的所有分量是否都不为0,含0返回false,都不为0返回true。

clip(x):输入的值小于0,则舍弃该片元

sigh(x):x<0返回-1,x=0返回0,x>0返回1

isinf(x):x为正无穷或负无穷,返回true,否则为false

isfinite(x):x不为正无穷或负无穷,返回true,否则为false

isnan(x):x不为数字,返回true,否则返回false


length(x):返回向量长度

normalize(x):向量归一化

distance(a,b):两向量距离(根号下各分量之差的平方和)

dot(a,b):点乘

cross(a,b):叉乘

determinant(m):返回矩阵m按行列方式计算的值

transpose(m):返回矩阵m的转置矩阵


reflect(i,n):反射向量,i为入射,n为法线

refract(i,n,ri):折射,i为入射,n为法线,ri为折射率

lit(nDotL,nDotH,m):输入标量,返回光照向量,m为镜面反射系数

faceforward(n,i,ng):得到面向视图的曲面法向量。(-n * sign(dot(i,ng))(normal,light,normal))


tex2D(s,t):返回采样s在坐标t的颜色

tex2D(s,t,ddx,ddy):使用微分查询颜色

tex2Dlod(s,t):使用lod查找纹理在(t.x,t.y,t.z,t.w)的颜色,z没有意义,w代表lod值

tex2Dbias(s,t):将t.w决定的某个MIP层偏置后的纹理查找

tex2Dgrad(s,t,ddx,ddy):使用微分指定MIP层的纹理查找

tex2Dproj(s,t):将纹理投射至场景中,先计算出投影纹理坐标t,再用t进行查询


texCUBE(s,t):返回采样s在vector t方向上的颜色

texCUBE(s,t,ddx,ddy):使用微分查询立方体颜色

texCUBEDload(s,t):使用lod查找纹理在(t.x,t.y,t.z,t.w)的颜色,z没有意义,w代表lod值

texCUBEbias(s,t):将t.w决定的某个MIP层偏置后的立方体纹理查找

texCUBEgrad(s,t,ddx,ddy):使用微分指定MIP层的立方体纹理查找

texCUBEproj(s,t):使用投影方式的立方体纹理查找


【技术美术百人计划】HLSL常用函数的评论 (共 条)

分享到微博请遵守国家法律