Partager via


texm3x3 - ps

Effectue une multiplication de matrice 3x3 lorsqu’elle est utilisée conjointement avec deux instructions texm3x3pad - ps .

Syntaxe

texm3x3 dst, src

 

where

  • dst est le registre de destination.
  • src est un registre source.

Notes

Versions du nuanceur de pixels 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texm3x3 x x

 

Cette instruction est identique à l’instruction texm3x3tex - ps , sans la recherche de texture.

Cette instruction est utilisée comme la finale de trois instructions représentant une opération de multiplication de matrice 3x3. La matrice 3x3 est composée des coordonnées de texture de la troisième étape de texture et des deux étapes de texture précédentes. Toute texture affectée à l’une des trois étapes de texture est ignorée.

Cette instruction doit être utilisée avec deux instructions texm3x3pad. Les registres de texture doivent suivre la séquence suivante.

 
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

Voici plus de détails sur la façon dont la multiplication 3x3 est effectuée.

La première instruction texm3x3pad exécute la première ligne de la multiplication pour trouver u'.

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

La deuxième instruction texm3x3pad exécute la deuxième ligne de la multiplication pour rechercher v'.

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

L’instruction texm3x3tex exécute la troisième ligne de la multiplication pour rechercher w'.

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

Placez le résultat de la matrice multiplier dans le registre de destination.

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

Instructions du nuanceur de pixels