texm3x2tex - ps
Effectue la dernière ligne d’une multiplication de matrice 3x2 et utilise le résultat pour effectuer une recherche de texture. texm3x2tex doit être utilisé conjointement avec l’instruction texm3x2pad - ps .
Syntaxe
texm3x2tex 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 |
---|---|---|---|---|---|---|---|---|---|
texm3x2tex | x | x | x |
L’instruction est utilisée comme l’une des deux instructions représentant une opération de multiplication de matrice 3x2. Cette instruction doit être utilisée avec l’instruction texm3x2pad - ps .
Lorsque vous utilisez ces deux instructions, les registres de texture doivent utiliser 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)
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
Voici plus de détails sur la façon dont la multiplication 3x2 est effectuée.
L’instruction texm3x2pad exécute la première ligne de la multiplication pour rechercher u'.
u' = t(n)RGB * TextureCoordinates(stage m)UVW
L’instruction texm3x2tex exécute la deuxième ligne de la multiplication pour rechercher v'.
v' = t(n)RGB * TextureCoordinates(étape m+1)UVW
L’instruction texm3x2tex échantillonne la texture sur scène (m+1) avec (u',v') et stocke le résultat dans t(m+1).
t(m+1)RGB = TextureSample(étape m+1)RVB utilisant (u', v' ) comme coordonnées
Exemples
Voici un exemple de nuanceur avec les cartes de texture et les étapes de texture identifiées.
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
Cet exemple nécessite les textures suivantes dans les étapes de texture suivantes.
- L’étape 0 prend une carte avec des données de perturbation (x,y,z).
- L’étape 1 contient les coordonnées de texture. Aucune texture n’est requise à l’étape de texture.
- L’étape 2 contient à la fois les coordonnées de texture ainsi qu’une texture 2D définie à cette étape de texture.
Rubriques connexes