Quellregister-Swizzling (HLSL PS-Referenz)
Swizzling bezieht sich auf die Möglichkeit, eine beliebige Quellregisterkomponente in eine beliebige temporäre Registerkomponente zu kopieren. Swizzling wirkt sich nicht auf die Quellregisterdaten aus. Bevor eine Anweisung ausgeführt wird, werden die Daten in einem Quellregister in ein temporäres Register kopiert.
Quell-Swizzling
Source Swizzle ermöglicht es einer einzelnen Komponente eines Quellregisters, den Wert einer der vier Komponenten desselben Quellregisters zu übernehmen, bevor das Register für die Berechnung gelesen wird.
Beispielsweise bedeutet .zxxy swizzle:
- Die X-Komponente übernimmt den Wert der Z-Komponente.
- Die .y-Komponente übernimmt den Wert der X-Komponente.
- Die Z-Komponente übernimmt den Wert der X-Komponente.
- Die .w-Komponente übernimmt den Wert der Y-Komponente.
Die Komponenten können in beliebiger Reihenfolge angezeigt werden. Wenn weniger als vier Komponenten angegeben sind, wird die letzte Komponente wiederholt. Beispiel:
.xy = .xyyy
.wzx = .wzxx
.z = .zzzz
Wenn keine Komponente angegeben ist, wird kein Schwenken angewendet.
Einige Anweisungen weisen Einschränkungen für Quellschwister auf. Sie sind auf den referenzierten Seiten für Anweisungen aufgeführt.
Pixelshaderversionen | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
.x | x | x | x | x | x | x | |||
.Y | x | x | x | x | x | x | |||
.Z | x* | x* | x* | x | x | x | x | x | x |
.W | x | x | x | x | x | x | x | x | x |
.xyzw (Standard) | x | x | x | x | x | x | x | x | x |
.yzxw | x | x | x | x | x | ||||
.zxyw | x | x | x | x | x | ||||
.wzyx | x | x | x | x | x | ||||
beliebiger Swizzle | x | x | x | x |
* Nur verfügbar, wenn die Zielschreibmaske .w (.a) ist.
Beliebiger Swizzle
Swizzles können in beliebiger Reihenfolge auf Quellregister angewendet werden. Das heißt, jedes Quellregister kann eine beliebige Komponentenmaske in beliebiger Reihenfolge annehmen.
Replizieren von Swizzle
Replizieren von Swizzle kopiert eine Komponente in eine andere. Dies ist genau eine der Komponenten .x, .y, .z, .w swizzle (oder die Äquivalente .r, .g, .b, .a) müssen angegeben werden.
Zugehörige Themen