texm3x3 - ps

与两个 texm3x3pad - ps 指令结合使用时,执行 3x3 矩阵乘法。

语法

texm3x3 dst、 src

 

其中

  • dst 是目标寄存器。
  • src 是源寄存器。

备注

像素着色器版本 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texm3x3 x x

 

此指令与 texm3x3tex - ps 指令相同,没有纹理查找。

此指令用作表示 3x3 矩阵乘法运算的三个指令中的最后一个。 3x3 矩阵由第三个纹理阶段的纹理坐标和前面的两个纹理阶段组成。 将忽略分配给这三个纹理阶段中的任何一个的纹理。

此指令必须与两个 texm3x3pad 指令一起使用。 纹理寄存器必须遵循以下顺序。

 
tex t(n)                 // Define tn as a standard 3-vector (tn must
                         // be defined in some way before it is used)
texm3x3pad t(m),   t(n)  // where m > n
                         // Perform first row of matrix multiply
texm3x3pad t(m+1), t(n)  // Perform second row of matrix multiply
texm3x3    t(m+2), t(n)  // Perform third row of matrix multiply to get a
                         // 3-vector result

下面是有关如何完成 3x3 乘法的更多详细信息。

第一个 texm3x3pad 指令执行乘法的第一行以查找 u'

u' = TextureCoordinates (stage m) UVW * t (n) RGB

第二个 texm3x3pad 指令执行乘法的第二行以查找 v'

v' = TextureCoordinates (阶段 m+1) UVW * t (n) RGB

texm3x3tex 指令执行乘法的第三行以查找 w'

w' = TextureCoordinates (阶段 m+2) UVW * t (n) RGB

将矩阵乘数的结果放在目标寄存器中。

t (m+2) RGBA = (u' , v' , w' , 1)

像素着色器说明