Compartilhar via


texm3x2tex - ps

Executa a linha final de uma matriz 3x2 multiplicada e usa o resultado para fazer uma pesquisa de textura. texm3x2tex deve ser usado em conjunto com a instrução texm3x2pad – ps .

Sintaxe

texm3x2tex dst, src

 

onde

  • dst é o registro de destino.
  • src é um registro de origem.

Comentários

Versões do sombreador de pixel 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texm3x2tex x x x

 

A instrução é usada como uma das duas instruções que representam uma operação de multiplicação de matriz 3x2. Esta instrução deve ser usada com a instrução texm3x2pad – ps .

Ao usar essas duas instruções, os registros de textura devem usar a sequência a seguir.

 
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

Veja mais detalhes sobre como a multiplicação 3x2 é realizada.

A instrução texm3x2pad executa a primeira linha da multiplicação para localizar u'.

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

A instrução texm3x2tex executa a segunda linha da multiplicação para localizar v'.

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

A instrução texm3x2tex amostra a textura no estágio (m+1) com (u',v') e armazena o resultado em t(m+1).

t(m+1)RGB = TextureSample(stage m+1)RGB usando (u', v' ) como coordenadas

Exemplos

Aqui está um sombreador de exemplo com os mapas de textura e os estágios de textura identificados.

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

Este exemplo requer as texturas a seguir nos estágios de textura a seguir.

  • A fase 0 usa um mapa com dados de perturbação (x,y,z).
  • Estágio 1 contém coordenadas de textura. Nenhuma textura é necessária no estágio de textura.
  • A fase 2 contém ambas as coordenadas de textura, bem como um conjunto de textura 2D nesse estágio de textura.

Instruções de sombreador de pixel