-
CG 标准函数
基本函数 | 功能描述 |
---|---|
abs(x) | 返回 x 绝对值。 |
max(a, b) | 返回 a 、b 的较大值。 |
min(a,b) | 返回 a 、b 的较小值。 |
round(x) | 返回 x 的四舍五入值。 |
ceil(x) | 向上取整。例如:ceil(float(1.3)) = 2.0; |
floor(x) | 向下取整。例如:floor(float(1.3)) = 1.0; |
clamp(x,min,max) | 返回 x 限制在 [min, max] 范围内的值。 |
lerp(a, b, f) | 返回在 [a, b] 范围内权值为 f 的插值。(权值为 0 - 1) |
smoothstep(a, b, x) | 返回在 [a, b] 范围内插值为 x 的权值。(权值为 0 - 1) |
saturate(x) | 返回x 限制在 [0, 1] 范围内的值。 |
sign(x) | 返回输入值的正负。正值返回 1 ;负值返回 0; |
step(a, x) | 如果 x < a ,返回 0 ,否则,返回 1 。 |
fmod(x, y) | 返回 x / y 的浮点余数。(y != 0) |
frac(x) | 返回 x 的浮点部分; |
isfinite(x) | 判断 x 是否为有限值。是则返回 true;否则返回 false; |
isinf(x) | 判断 x 是否为无限值。是则返回 true;否则返回 false; |
isnan(x) | 判断 x 是否为非数据。是则返回 true;否则 返回false;(非数据:not-a-number NaN) |
modf(x, out ip) | 把输入值分解为整数和小数部分。整数部分 ip;小数部分 返回; |
幂指函数 | 功能描述 |
sqrt(x) | 返回 的值,(x >= 0) |
rsqrt(x) | 返回 的倒数值,(x >= 0) |
pow(x, y) | 返回 的值。 |
exp(x) | 返回 的倒数值,e=2.71828182845904523536 |
exp2(x) | 返回 的倒数值 |
log(x) | 返回 的值。(x > 0) |
log2(x) | 返回 的值。(x > 0) |
log10(x) | 返回 的值。(x > 0) |
三角函数 | 功能描述 |
radians(x) | 参数为角度,返回弧度 |
degrees(x) | 参数为弧度,返回角度 |
sincos(x, out s, out c) | 参数为弧度,返回 x 的正弦值、余弦值。 |
sin(x) | 参数为弧度,返回 x 的正弦值。 |
cos(x) | 参数为弧度,返回 x 的余弦值。 |
tan(x) | 参数为弧度,返回x 的正切值。 |
asin(x) | 参数为弧度,返回 x 的反正弦值。 |
acos(x) | 参数为弧度,返回x 的反余弦值。 |
atan(x) | 参数为弧度,返回 x 的反正切值。 |
atan2(y,x) | 参数为弧度,返回 y / x 的反正切值。 |
sinh(x) | 参数为弧度,返回 x 的双曲正弦值。 |
cosh(x) | 参数为弧度,返回 x 的双曲余弦值。 |
tanh(x) | 参数为弧度,返回 x 的双曲切线值。 |
矩阵函数 | 功能描述 |
determinant(M) | 返回 矩阵M 的行列式。 |
mul(M, N) | 返回 矩阵M 和 矩阵N 的积。 |
mul(M, v) | 返回 矩阵M 和 列向量v 的积。 |
mul(v, M) | 返回 行向量v 和 矩阵M 的积。 |
transpose(M) | 返回 矩阵M 的转置矩阵。 |
cross(A,B) | 返回 三维向量 A 、B 的叉积。 |
dot(A,B) | 返回 三维向量 A 、B 的点积。 |
光照函数 | 功能描述 |
lit(n • l, n • h, m) |
返回光照向量(环境光,漫反射光,镜面高光,1)。法向量 N;入射光向量 I;半角向量 H;高光系数 M。 |
几何函数 | 功能描述 |
distance(x, y) | 返回距离。x 点;y 点; |
length(v) | 返回模长。v 向量; |
normalize(v) | 返回单位向量。v 向量; |
reflect(i, n) | 返回反射向量。I 入射光向量;N 表面法向量;(仅对三元向量有效) |
refract(i, n, eta) | 返回折射向量。I 入射光向量;N 表面法向量;eta 折射相对系数;(只对三元向量有效) |
纹理映射函数 | 功能描述 |
tex1D(sampler1D tex, float s) |
一维纹理查询。 |
tex1D(sampler1D tex, float s, float dsdx, float dsdy) | 使用导数值(derivatives)查询一维纹理。 |
Tex1D(sampler1D tex, float2 sz) | 一维纹理查询,并进行深度值比较。 |
Tex1D(sampler1D tex, float2 sz, float dsdx,float dsdy) | 使用导数值(derivatives)查询一维纹理, 并进行深度值比较。 |
Tex1Dproj(sampler1D tex, float2 sq) | 一维投影纹理查询。 |
Tex1Dproj(sampler1D tex, float3 szq) | 一维投影纹理查询,并比较深度值。 |
Tex2D(sampler2D tex, float2 s) | 二维纹理查询。 |
Tex2D(sampler2D tex, float2 s, float2 dsdx, float2 dsdy) | 使用导数值(derivatives)查询二维纹理。 |
Tex2D(sampler2D tex, float3 sz) | 二维纹理查询,并进行深度值比较。 |
Tex2D(sampler2D tex, float3 sz, float2 dsdx,float2 dsdy) | 使用导数值(derivatives)查询二维纹理,并进行深度值比较。 |
Tex2Dproj(sampler2D tex, float3 sq) | 二维投影纹理查询。 |
Tex2Dproj(sampler2D tex, float4 szq) | 二维投影纹理查询,并进行深度值比较。 |
Tex3D(sampler3D tex, float s) | 三维纹理查询。 |
Tex3D(sampler3D tex, float3 s, float3 dsdx, float3 dsdy) | 结合导数值(derivatives)查询三维纹理。 |
Tex3Dproj(sampler3D tex, float4 szq) | 查询三维投影纹理,并进行深度值比较。 |
texCUBE(samplerCUBE tex, float3 s) | 查询立方体纹理。 |
texCUBE (samplerCUBE tex, float3 s, float3 dsdx, float3 dsdy) | 结合导数值(derivatives)查询立方体纹理。 |
texCUBEproj (samplerCUBE tex, float4 sq) | 查询投影立方体纹理。 |
偏导函数 | 功能描述 |
ddx(x) | 返回 x 关于屏幕坐标x轴的偏导数。 |
ddy(x) | 返回 x 关于屏幕坐标y轴的偏导数。 |
调试函数 | 功能描述 |
void debug(float4 x) | 如果在编译时设置了DEBUG,片段着色程序中调用该函数可以将值 x 作为COLOR语义的最终输出; |
来源:CSDN
作者:丨Number9029丨
链接:https://blog.csdn.net/qq_26986401/article/details/103917250