modf(x, out ip) |
|
mul(M, N) |
计算两个矩阵相乘,如果 M 为 AxB 阶矩阵,N 为 BxC阶矩阵,则返回 AxC 阶矩阵。下面两个函数为其重载函数。 |
mul(M, v) |
计算矩阵和向量相乘 |
mul(v, M) |
计算向量和矩阵相乘 |
noise( x) |
噪声函数,返回值始终在 0,1 之间;对于同样的输入,始终返回相同的值(也就是说,并不是真正意义上的随机噪声)。 |
pow(x, y) |
|
radians(x) |
函数将角度值转换为弧度值 |
round(x) |
Round-to-nearest,或 closest integer to x 即四舍五入 |
rsqrt(x) |
X 的反平方根,x 必须大于 0 |
saturate(x) |
如果 x 小于 0,返回 0;如果 x 大于 1,返回1;否则,返回 x |
sign(x) |
如果 x 大于 0,返回 1;如果 x 小于 0,返回01;否则返回 0。 |
sin(x) |
输入参数为弧度,计算正弦值,返回值范围为[−1,1] |
sincos(float x, out s, out c) |
该函数是同时计算 x 的 sin 值和 cos 值,其中s=sin(x),c=cos(x)。该函数用于“同时需要计算 sin 值和 cos 值的情况”,比分别运算要快很多! |
sinh(x) |
计算双曲正弦(hyperbolic sine)值。 |
smoothstep(min, max, x) |
值 x 位于 min、max 区间中。如果 x=min,返回 0;如果 x=max,返回 1;如果 x 在两者之间,按照下列公式返回数据: x−min x−min −2*( )3 +3*( )2 max−min max−min |
step(a, x) |
如果 x,返回 0;否则,返回 1。 |
sqrt(x) |
求 x 的平方根, x ,x 必须大于 0。 |
tan(x) |
输入参数为弧度,计算正切值 |
tanh(x) |
计算双曲正切值 |
transpose(M) |
M 为矩阵,计算其转置矩阵 |
函数 |
功能 |
distance( pt1, pt2) |
两点之间的欧几里德距离(Euclidean distance) |
faceforward(N,I,Ng) |
如果Ng I• < 0 ,返回 N;否则返回-N。 |
length(v) |
返回一个向量的模,即 sqrt(dot(v,v)) |
normalize( v) |
归一化向量 |
reflect(I, N) |
根据入射光方向向量 I,和顶点法向量 N,计算反射光方向向量。其中 I 和 N 必须被归一化,需要非常注意的是,这个 I 是指向顶点的;函数只对三元向量有效 |
refract(I,N,eta) |
计算折射向量,I 为入射光线,N 为法向量,eta 为折射系数;其中 I 和 N 必须被归一化,如果 I 和 N 之间的夹角太大,则返回(0,0,0),也就是没有折射光线;I 是指向顶点的;函数只对三元向量有效 |
函数 |
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) 二维投影纹理查询,并进行深度值比较 |
texRECT(samplerRECT tex, float2 s) |
texRECT (samplerRECT tex, float2 s, float2 dsdx, float2 dsdy) |
texRECT (samplerRECT tex, float3 sz) |
texRECT (samplerRECT tex, float3 sz, float2 dsdx,float2 dsdy) |
texRECT proj(samplerRECT tex, float3 sq) |
texRECT proj(samplerRECT tex, float3 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(a) |
参数 a 对应一个像素位置,返回该像素值在 X 轴上的偏导数 |
ddy(a) |
参数 a 对应一个像素位置,返回该像素值在 X 轴上的偏导数 |