gather4 (sm5 - asm)

Coleta os quatro texels que seriam usados em uma operação de filtragem bi linear e os empacota em um único registro. Esta instrução funciona apenas com texturas 2D ou CubeMap, incluindo matrizes. Somente os modos de endereçamento do sampler são usados e o nível superior de qualquer pirâmide mip é usado.

gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.select_component]
Item Descrição
Dest
[in] O endereço dos resultados da operação.
srcAddress
[in] Um conjunto de coordenadas de textura.
srcResource
[in] Um registro de textura.
srcSampler
[in] Um registro de amostra.

Comentários

Esta instrução se comporta como a instrução de exemplo , mas um exemplo filtrado não é gerado. Os quatro exemplos que contribuiriam para a filtragem são colocados em xyzw em ordem anti-horário, começando com o exemplo no canto inferior esquerdo do local consultado. Isso é o mesmo que amostragem de ponto com deltas de coordenada de textura (u,v) nos seguintes locais: (-,+),(+,+),(+,-),(-,-), em que a magnitude dos deltas é sempre metade de um texel.

Para texturas CubeMap, quando um volume bi linear abrange uma borda, texels da face vizinha são usados. Os cantos usam as mesmas regras que a instrução de exemplo ; ou seja, o canto desconhecido é considerado a média dos três cantos faciais impingintes.

Há restrições de formato de textura que se aplicam a gather4 que são expressas na lista de formatos.

O swizzle em srcResource permite que os valores retornados sejam girados arbitrariamente antes de serem gravados no destino.

O .select_component no srcSampler escolhe de qual componente da textura de origem (r/g/b/a) ler 4 texels.

Para formatos com componentes float32, se o valor que está sendo buscado for normalizado, desnormalizado, +-0 ou +-INF, ele será retornado para o sombreador sem alteração. NaN é retornado como NaN, mas a representação de bit exata do NaN pode ser alterada. Para TextureCubes, alguma síntese do 4º texel ausente deve ocorrer nos cantos, portanto, retornar bits inalterados para o texel sintetizado não se aplica e desnorms podem ser liberados.

Para implementações de hardware, as otimizações na filtragem bilinear tradicional que detectam amostras diretamente em texels e ignoram a leitura de texels que teriam peso 0 não podem ser aproveitadas com esta instrução. gather4 sempre retorna todos os texels solicitados.

Esta instrução se aplica aos seguintes estágios de sombreador:

Vértice Casco Domínio Geometry Pixel Computação
X X X X X X

Modelo de sombreador mínimo

Esta instrução tem suporte nos seguintes modelos de sombreador:

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 não
Modelo de sombreador 4 não
Modelo de Sombreador 3 (DirectX HLSL) não
Modelo de Sombreador 2 (DirectX HLSL) não
Modelo de Sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 5 (DirectX HLSL)