Shader属性和函数查询工具

"Shader属性和函数查询工具"

属性规范:

函数规范:

  1. 声明函数: void func(out float4 c);
  2. #include
  3. 值Copy传参
  4. 数学函数:
lit(dot(n,l),dot(n,h),m) // m为高光系数, 计算环境光,散射光,镜面光的贡献,返回4元向量
// x 代表环境光的贡献, y 代表散射光的贡献, z 代表镜面光的贡献, w 始终为1.0 
noise(x)  //噪声函数
lerp(a,b,f)  // a + (a-b)*f
isnan(x)  
isinf(x)  //向量
isfinite(x)  //是否是有限数
frac(x)
frexp(x,out exp)  // 将浮点数x 分解为尾数和指数, x=m* 2^exp, 返回m, 指数存入 exp
step(a,x)  // if(x<a) return 0 else return 1
smoothstep(min,max,x) // [0,1] 
saturate(x)= clamp(x,0,1)  // [0,1]
clamp(x,a,b)  // 返回 [a,b]  
fmod(x,y)  //y 不能为零, 取余
transpose(M)  // 转职矩阵
cross(a,b)  dot(a,b)
ceil(x)  floor(x)
radians(x)  //角度转弧度
degrees(x)  //弧度转角度
determinant(m)  //计算矩阵的行列式因子
max(a,b) min(a,b)
log(x)  log2(x)  log10(x)
sqrt(x)  //开方
exp(x)  // e 的 x 次方
exp2(x)  //2 的 x 次方
sincos(x,out s, out c) //同时计算sin 和 cos ,效率比分别计算快
sin(x)  cos(x)  tan(x)
acos(x)  //[-1,1] 返回[0,pi]之间的角度值
asin(x)  //[-1,1],  [-90,90]
atan(x)  
all(x)   // x==0 返回true, 否则返回 false
any(x)   // 不为0 ,返回true
abs(x)
osh(x)  //双曲余弦值
  1. 几何函数:
distance(v1,v2)  
length(v) =sqrt(dot(v,v))
normalize(x)
reflect(l,n);  //反射向量,l,n 必须归一化
refract(l,n,eta); //折射函数, n,l 必须归一化
faceforward(N,L,Ng)  //
  1. 纹理函数:
tex1D(sampler1D tex,float f) //一维纹理采样
tex1D(sampler1D tex,float f,float dsdx, float dsdy) //使用导数查询一维纹理
tex1D(sampler1D tex,float2 sz) //一维纹理查询,并进行深度比较
tex1D(sampler1D tex,float2 sz,float dsdx, float dsdy)//使用导数查询一维纹理,并进行深度比较
tex1D(sampler1D tex,float2 sq) //一维投影纹理采样
tex1D(sampler1D tex,float2 szq) //一维投影纹理采样,并进行深度比较

tex2D  tex3D  texRECT  texCUBE  tex3Dproj  texCUBEproj

z 代表深度值, q 代表透视值,透视投影后齐次坐标的后1
  1. 导数函数:
 ddx(x)  //在x轴上的偏导数
 ddy(x)  //在y轴上的偏导数

其他

 index=++index)% x;   // 取模
 IN.uv.x+= 0.01 * sin(IN.uv.x * 10 + _Time.y);   //控制UV波动的周期, 模拟水波
 IN.uv+= 0.01 * sin(IN.uv.x * 10 + _Time.y);   //控制UV波动的周期, 模拟水波

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值