texm3x2tex - ps

Realiza la fila final de una multiplicación de matriz 3x2 y usa el resultado para realizar una búsqueda de textura. texm3x2tex debe usarse junto con la instrucción texm3x2pad - ps .

Sintaxis

texm3x2tex dst, src

 

where

  • dst es el registro de destino.
  • src es un registro de origen.

Comentarios

Versiones del sombreador de píxeles 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texm3x2tex x x x

 

La instrucción se usa como una de las dos instrucciones que representan una operación de multiplicación de matriz 3x2. Esta instrucción debe usarse con la instrucción texm3x2pad - ps .

Al usar estas dos instrucciones, los registros de textura deben usar la secuencia siguiente.

 
tex t(n)                      // Define tn as a standard 3-vector (tn must 
                              // be defined in some way before it is used)
texm3x2pad  t(m),   t(n)      // where m > n
                              // Perform first row of matrix multiply
texm3x2tex  t(m+1), t(n)      // Perform second row of matrix multiply 
                              // to get (u,v) to sample texture 
                              // associated with stage m+1

Este es más detallado sobre cómo se logra la multiplicación 3x2.

La instrucción texm3x2pad realiza la primera fila de la multiplicación para buscar u'.

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

La instrucción texm3x2tex realiza la segunda fila de la multiplicación para buscar v'.

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

La instrucción texm3x2tex muestra la textura en fase (m+1) con (u',v') y almacena el resultado en t(m+1).

t(m+1)RGB = TextureSample(stage m+1)RGB using (u', v' ) as coordinates

Ejemplos

Este es un sombreador de ejemplo con los mapas de textura y las fases de textura identificadas.

ps_1_1
tex t0                // Bind texture in stage 0 to register t0
texm3x2pad  t1,  t0   // First row of matrix multiply
texm3x2tex  t2,  t0   // Second row of matrix multiply to get (u,v)
                      // with which to sample texture in stage 2
mov r0, t2            // Output result

En este ejemplo se requieren las siguientes texturas en las siguientes fases de textura.

  • La fase 0 toma un mapa con datos de perturbación (x,y,z).
  • La fase 1 contiene coordenadas de textura. No se requiere ninguna textura en la fase de textura.
  • La fase 2 contiene ambas coordenadas de textura, así como una textura 2D establecida en esa fase de textura.

Instrucciones del sombreador de píxeles