【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!
评论