Registrazione di origine a scorrimento a scorrimento (riferimento PS HLSL)
Swizzling fa riferimento alla possibilità di copiare qualsiasi componente del registro di origine in qualsiasi componente di registro temporaneo. Swizzling non influisce sui dati del registro di origine. Prima dell'esecuzione di un'istruzione, i dati in un registro di origine vengono copiati in un registro temporaneo.
Swizzling di origine
Lo swizzle di origine consente a singoli componenti di un registro di origine di assumere il valore di uno dei quattro componenti dello stesso registro di origine prima che il registro venga letto per il calcolo.
Ad esempio, lo swizzle con estensione zxxy significa:
- Il componente .x assumerà il valore del componente .z
- Il componente .y assumerà il valore del componente .x
- Il componente .z assumerà il valore del componente .x
- Il componente .w assumerà il valore del componente .y
I componenti possono essere visualizzati in qualsiasi ordine. Se vengono specificati meno di quattro componenti, l'ultimo componente viene ripetuto. Ad esempio:
.xy = .xyyy
.wzx = .wzxx
.z = .zzzz
Se non viene specificato alcun componente, non viene applicato alcun tipo di scorrimento.
Alcune istruzioni hanno restrizioni per lo swizzle di origine. Sono elencati nelle pagine di riferimento alle istruzioni rispettate.
Versioni di Pixel shader | 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 (impostazione predefinita) | 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 | ||||
swizzle arbitrario | x | x | x | x |
* Disponibile solo se la maschera di scrittura di destinazione è .w (.a).
Swizzle arbitrario
Gli swizzles possono essere applicati ai registri di origine in un ordine arbitrario; ovvero qualsiasi registro di origine può accettare qualsiasi maschera componente, in qualsiasi ordine.
Replica swizzle
Replicare swizzle copia un componente in un altro. È necessario specificare esattamente uno dei componenti .x, .y, .z, .w swizzle (o .r, .g, .b, .a equivalenti).
Argomenti correlati