【HLSL】HLSL学习笔记(UE4)
持续更新……
变量
bool 布尔变量
half 16为整形
int 32位整形
float 单精度浮点数
double 双精度浮点数
值
float f = 0.1f;
向量
float4 f = {1.0f, 2.0f, 3.0f, 4.0f};
float4 f = float4(1.0f, 2.0f, 3.0f, 4..0f)
取值索引:xyzw、rgba、0123;
矩阵
float 2x2 = {1.0f, 0.0f, 0.0f, 1.0f};
float 2x2 = float2x2(1.0f, 0.0f, 0.0f, 1.0f);
先行后列
采样器
函数
| 函数调用方式 | 作用 |
|---|---|
| abs(x) | 绝对值 |
| trunc(x) | 取整 |
| floor(x) | 向下取整 |
| ceil(x) | 向上取整 |
| round(x) | 最接近的整数 |
| max(x, y) | 返回较大值 |
| min(x, y) | 返回较小值 |
| clamp(x, min, max) | 截取x在[min, max]内 |
| saturate(x) | 截取x在[0, 1]内 |
| fmod(x, y) | 返回x / y的浮点余数 |
| frac(x) | 返回x的小数部分 |
| frexp(x) | 返回x的尾数和指数 |
| sign(x) | 返回x的符号 |
| all(x) | 如果x的全部元素都不为0则为真,反之为假 |
| any(x) | 如果有元素不为零则为真,反之为假 |
| isfinite(x) | 如果x为有限则为真,反之为假 |
| isinf(x) | 如果x为无限则为真,反之为假 |
| degrees(x) | 将弧度转化为角度 |
| radians(x) | 将角度转换到弧度 |
| sin(x) | 正弦 |
| cos(x) | 余弦 |
| asin(x) | 反正弦 |
| acos(x) | 反余弦 |
| atan(x) | 反正切 |
| atan2(x, y) | 返回x, y的反正切(方位角) |
| length(v) | 返回向量v的长度 |
| doy(x, y) | 返回x, y的点积 |
| croxx(x, y) | 返回x, y的叉积 |
| normalize(v) | 单位化v向量 |
| mul(m1,m2) | 矩阵相乘 |
| transpose(m) | 返回m的转置矩阵 |
| determinant(m) | 返回方块矩阵m的行列式 |
| lerp(x, y, s) | 对x, y进行线性插值 |
| pow(x, y) | 返回x^y |
| distance(x, y) | 返回x, y的距离 |
| exp(x) | 以e为底x为指数的函数值 |
| exp2(x) | 以2为底x为指数的函数值 |
| log(x) | 以e为底的对数 |
| log2(x) | 以2为底的对数 |
| log10(x) | 以10为底的对数 |
| sqrt(x) | 返回x的平方根 |
| rsqrt(x) | 返回x的平方根的倒数 |
| ddx(x) | 返回关于屏幕空间x的偏导数 |
| ddy(x) | 返回关于屏幕空间y的偏导数 |
| fwidth(x) | 返回abs(ddx(x))+abc(ddy(x)) |
| asfloat(x) | 转换为float型 |
| asint(x) | 转换为int型 |
| asunit(x) | 转换为unit型 |
| tex1D(s, t) | 纹理s在位置t的颜色 |
| tex1Dbias(s, t) | |
| tex1Dgrad(s, t, ddx, ddy) | |
| tex1Dlod(s, t) | |
| tex1Dproj(s, t) | |
| (tex2D、tex3D、texCUBE相同) | |
| noise(x) | 基于Perlin-noise算法的随机值 |
| reflect(i, n) | 返回入射光线i对于表面法线n的反射光线 |
| refract(i, n, R) | 返回入射光线对于表面法线n,折射率R下的折射光线 |
| GetRanderTargetSampleCount() | 返回渲染目标的采样器数量 |
| GetRanderTargetSamplePosition(x) | 返回给定index采样器的采样点坐标 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SuzhiのBlog!
评论











