持续更新……

变量

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采样器的采样点坐标