gather4 (sm5 - asm)

Raccoglie i quattro texel usati in un'operazione di filtro bidirezionale e li inserisce in un singolo registro. Questa istruzione funziona solo con trame 2D o CubeMap, incluse matrici. Vengono usate solo le modalità di indirizzamento del sampler e viene usato il livello superiore di qualsiasi piramide mip.

gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.select_component]
Elemento Descrizione
Dest
[in] Indirizzo dei risultati dell'operazione.
srcAddress
[in] Set di coordinate della trama.
srcResource
[in] Registro trama.
srcSampler
[in] Registro di esempio.

Commenti

Questa istruzione si comporta come l'istruzione di esempio , ma non viene generato un esempio filtrato. I quattro esempi che contribuiscono a filtrare vengono inseriti in xyzw in ordine antiorario a partire dall'esempio nella parte inferiore sinistra della posizione query. Si tratta dello stesso tipo di campionamento dei punti con i delta delle coordinate della trama (u,v) nelle posizioni seguenti: (-,+),(+,+),(+,-),(-,-), dove la grandezza dei delta è sempre metà di un texel.

Per le trame cubeMap, quando viene usato un footprint bi-lineare che si estende su un bordo, vengono usati texel dal viso vicino. Gli angoli usano le stesse regole dell'istruzione di esempio ; ovvero, l'angolo sconosciuto è considerato la media dei tre angoli del viso imping.

Esistono restrizioni relative al formato trama che si applicano alla raccolta4 espressa nell'elenco di formati.

Il swizzle su srcResource consente di scrivere arbitrariamente i valori restituiti prima di essere scritti nella destinazione.

Il .select_component su srcSampler sceglie il componente della trama di origine (r/g/b/a) da cui leggere 4 texel.

Per i formati con componenti float32, se il valore recuperato è normalizzato, denormalizzato, +-0 o +-INF, viene restituito allo shader non modificato. NaN viene restituito come NaN, ma la rappresentazione esatta del bit della naN può essere modificata. Per TextureCubes, alcune sintesi del texel mancante devono verificarsi agli angoli, quindi i bit restituiti invariati per il texel sintetizzato non si applicano e i denorm potrebbero essere scaricati.

Per le implementazioni hardware, le ottimizzazioni nel filtro bilineare tradizionale che rilevano i campioni direttamente su texel e ignorano la lettura di texel che avrebbero peso 0 non possono essere sfruttati con questa istruzione. gather4 restituisce sempre tutti i texel richiesti.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
X X X X X X

Modello di shader minimo

Questa istruzione è supportata nei modelli shader seguenti:

Modello di shader Supportato
Modello shader 5
Modello shader 4.1 no
Modello shader 4 no
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Shader Model 5 Assembly (DirectX HLSL)