dp3 - ps
Calcola il prodotto punto a tre componenti dei registri di origine.
Sintassi
dp3 dst, src0, src1 |
---|
dove
- dst è il registro di destinazione.
- src0 è un registro di origine.
- src1 è un registro di origine.
Commenti
Versioni di Pixel shader | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
dp3 | x | x | x | x | x | x | x | x | x |
Il frammento di codice seguente mostra le operazioni eseguite:
dest.x = dest.y = dest.z = dest.w =
(src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);
Questa istruzione viene eseguita nella pipeline vettoriale, scrivendo sempre sui canali di colore. Per la versione 1_4, questa istruzione usa ancora la pipeline vettore, ma può scrivere in qualsiasi canale.
Un'istruzione con una maschera di scrittura con un registro di destinazione .rgb (.xyz) può essere coemessa con dp3, come illustrato di seguito.
dp3 r0.rgb, t0, v0 // Copy scalar result to color components
+mov r2.a, t0 // Copy alpha component from t0 in parallel
L'istruzione dp3 può essere modificata usando il modificatore dell'argomento di input di ridimensionamento firmato registro di origine (_bx2) applicato agli argomenti di input se non sono già espansi per l'intervallo dinamico firmato. Per un shader di illuminazione, il modificatore di istruzioni saturazione (_sat) viene spesso usato per bloccare i valori negativi su nero, come illustrato nell'esempio seguente.
dp3_sat r0, t0_bx2, v0_bx2 // t0 is a bump map, v0 contains the light direction
Argomenti correlati