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.
Anweisungsmodifizierer wirken sich auf das Ergebnis der Anweisung aus, bevor sie in das Zielregister geschrieben wird. Verwenden Sie sie beispielsweise, um das Ergebnis mit einem Faktor von zwei zu multiplizieren oder zu dividieren oder um das Ergebnis zwischen Null und 1 zu klammern. Anweisungsmodifizierer werden angewendet, nachdem die Anweisung ausgeführt wird, aber vor dem Schreiben des Ergebnisses in das Zielregister.
Unten finden Sie eine Liste der Modifizierer.
| Modifikator | Beschreibung | Syntax | Version 1_1 | Version 1_2 | Version 1_3 | Version 1_4 |
|---|---|---|---|---|---|---|
| _x2 | Multiplizieren mit 2 | instruction_x2 | X | X | X | X |
| _x4 | Multiplizieren mit 4 | instruction_x4 | X | X | X | X |
| _x8 | Multiplizieren mit 8 | instruction_x8 | X | |||
| _d2 | Dividieren durch 2 | instruction_d2 | X | X | X | X |
| _d4 | Dividieren durch 4 | instruction_d4 | X | |||
| _d8 | Dividieren durch 8 | instruction_d8 | X | |||
| _saß | Sättigung (Klemme von 0 und 1) | instruction_sat | X | X | X | X |
- Der Multiplikationsmodifizierer multipliziert die Registerdaten mit einer Potenz von zwei nach dem Lesen. Dies entspricht einer Schicht nach links.
- Der Trennmodifizierer dividiert die Registerdaten durch eine Potenz von zwei nach dem Lesen. Dies ist identisch mit einer Schicht nach rechts.
- Der Sättigungsmodifizierer klemmt den Bereich der Registerwerte von Null bis 1.
Anweisungsmodifizierer können in arithmetischen Anweisungen verwendet werden. Sie können nicht für Texturadressenanweisungen verwendet werden.
Multiplizieren des Modifizierers
In diesem Beispiel wird das Zielregister (dest) mit der Summe der beiden Farben in den Quellopernden (src0 und src1) geladen und das Ergebnis mit zwei multipliziert.
add_x2 dest, src0, src1
In diesem Beispiel werden zwei Anweisungsmodifizierer kombiniert. Zuerst werden zwei Farben in den Quellopernden (src0 und src1) hinzugefügt. Das Ergebnis wird dann mit zwei multipliziert und für jede Komponente zwischen 0,0 und 1,0 geklemmt. Das Ergebnis wird im Zielregister gespeichert.
add_x2_sat dest, src0, src1
Modifizierer dividieren
In diesem Beispiel wird das Zielregister (dest) mit der Summe der beiden Farben in den Quellopernden (src0 und src1) geladen und das Ergebnis durch zwei dividiert.
add_d2 dest, src0, src1
Sättigungsmodifizierer
Für arithmetische Anweisungen klemmt der Sättigungsmodifizierer das Ergebnis dieser Anweisung in den Bereich 0,0 bis 1,0 für jede Komponente. Das folgende Beispiel zeigt, wie Sie diesen Anweisungsmodifizierer verwenden.
dp3_sat r0, t0_bx2, v0_bx2 ; t0 is bump, v0 is light direction
Dieser Vorgang tritt nach einem multiplizierten oder dividieren Anweisungsmodifizierer auf. _sat wird am häufigsten verwendet, um Punktproduktergebnisse zu klammern. Es ermöglicht jedoch auch eine konsistente Emulation von Multipass-Methoden, bei denen sich der Framepuffer immer im Bereich 0 bis 1 befindet, und der DirectX 6- und 7.0-Multitexture-Syntax, in der Sättigung in jeder Phase definiert ist.
In diesem Beispiel wird das Zielregister (Dest) mit der Summe der beiden Farben in den Quellopernden (src0 und src1) geladen, und das Ergebnis wird für jede Komponente in den Bereich 0,0 bis 1,0 klammert.
add_sat dest, src0, src1
In diesem Beispiel werden zwei Anweisungsmodifizierer kombiniert. Zuerst werden zwei Farben in den Quellopernden (src0 und src1) hinzugefügt. Das Ergebnis wird mit zwei multipliziert und für jede Komponente zwischen 0,0 und 1,0 geklemmt. Das Ergebnis wird im Zielregister gespeichert.
add_x2_sat dest, src0, src1
Verwandte Themen