Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Berechnet das Dreikomponentenpunktprodukt der Quellregister.
Syntax
| dp3 dst, src0, src1 |
|---|
where
- dst ist das Zielregister.
- src0 ist ein Quellregister.
- src1 ist ein Quellregister.
Bemerkungen
| Pixel-Shaderversionen | 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 |
Der folgende Codeausschnitt zeigt die ausgeführten Vorgänge:
dest.x = dest.y = dest.z = dest.w =
(src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z);
Diese Anweisung wird in der Vektorpipeline ausgeführt und schreibt immer in die Farbkanäle aus. Für Version 1_4 verwendet diese Anweisung weiterhin die Vektorpipeline, kann jedoch in einen beliebigen Kanal schreiben.
Eine Anweisung mit einer RGB-Schreibmaske (.xyz) des Zielregisters kann zusammen mit dp3 ausgestellt werden, wie unten gezeigt.
dp3 r0.rgb, t0, v0 // Copy scalar result to color components
+mov r2.a, t0 // Copy alpha component from t0 in parallel
Die dp3-Anweisung kann mit dem Eingabeargumentmodifizierer " Source Register Signed Scaling" (_bx2) geändert werden, der auf die Eingabeargumente angewendet wird, wenn sie nicht bereits in den dynamischen Bereich mit Vorzeichen erweitert wurden. Für einen Beleuchtungsshader wird häufig der Sättigungs-Anweisungsmodifizierer (_sat) verwendet, um die negativen Werte in Schwarz zu spannen, wie im folgenden Beispiel gezeigt.
dp3_sat r0, t0_bx2, v0_bx2 // t0 is a bump map, v0 contains the light direction
Zugehörige Themen