m3x4 - ps
Moltiplica un vettore a 3 componenti per una matrice 3x4.
Sintassi
m3x4 dst, src0, src1 |
---|
dove
- dst è il registro di destinazione. Risultato è un vettore a 4 componenti.
- src0 è un registro di origine che rappresenta un vettore a 3 componenti.
- src1 è un registro di origine che rappresenta una matrice 3x4, che corrisponde alla prima di 4 registri consecutivi.
Commenti
Versioni di Pixel shader | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
m3x4 | x | x | x | x | x |
Per il registro di destinazione è necessaria la maschera xyzw (impostazione predefinita). I modificatori negati e swizzle sono consentiti per src0 ma non per src1.
Il frammento di codice seguente mostra le operazioni eseguite.
dest.x = (src0.x*src1.x) + (src0.y*src1.y) + (src0.z*src1.z);
dest.y = (src0.x*src2.x) + (src0.y*src2.y) + (src0.z*src2.z);
dest.z = (src0.x*src3.x) + (src0.y*src3.y) + (src0.z*src3.z);
dest.w = (src0.x*src4.x) + (src0.y*src4.y) + (src0.z*src4.z);
Il vettore di input si trova nel registro src0. La matrice di input 3x4 si trova nel registro src1 e le successive due registri superiori, come illustrato nell'espansione seguente.
Questa operazione viene comunemente usata per trasformare un vettore di posizione da una matrice che ha un effetto projective, ma non applica alcuna traduzione. Questa istruzione viene implementata come coppia di prodotti dot, come illustrato qui.
m3x4 r0.xyzw, r1, c0 will be expanded to:
dp3 r0.x, r1, c0
dp3 r0.y, r1, c1
dp3 r0.z, r1, c2
dp3 r0.w, r1, c3
Argomenti correlati