dp3 - ps
Calcule le produit à trois composants des registres sources.
Syntaxe
dp3 dst, src0, src1 |
---|
where
- dst est le registre de destination.
- src0 est un registre source.
- src1 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 |
---|---|---|---|---|---|---|---|---|---|
dp3 | x | x | x | x | x | x | x | x | x |
L’extrait de code suivant montre les opérations effectuées :
dest.x = dest.y = dest.z = dest.w =
(src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);
Cette instruction s’exécute dans le pipeline vectoriel, en écrivant toujours dans les canaux de couleur. Pour la version 1_4, cette instruction utilise toujours le pipeline vectoriel, mais peut écrire dans n’importe quel canal.
Une instruction avec un masque d’écriture .rgb (.xyz) de registre de destination peut être co-émise avec dp3, comme indiqué ci-dessous.
dp3 r0.rgb, t0, v0 // Copy scalar result to color components
+mov r2.a, t0 // Copy alpha component from t0 in parallel
L’instruction dp3 peut être modifiée à l’aide du modificateur d’argument d’entrée De la mise à l’échelle signée du registre source (_bx2) appliqué à ses arguments d’entrée s’ils ne sont pas déjà développés en plage dynamique signée. Pour un nuanceur d’éclairage, le modificateur d’instruction saturé (_sat) est souvent utilisé pour limiter les valeurs négatives au noir, comme illustré dans l’exemple suivant.
dp3_sat r0, t0_bx2, v0_bx2 // t0 is a bump map, v0 contains the light direction
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour