gather4 (sm4.1 – asm)

Coleta os quatro texels que seriam usados em uma operação de filtragem bi linear e os empacota em um único registro.

gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler.r
Item Descrição
Dest
[in] O endereço do resultado da operação.
srcAddress
[in] Contém as coordenadas de textura.
srcResource
[in] Um registro de recurso.
O swizzle permite que os valores retornados sejam girados arbitrariamente antes de serem gravados no dest.
srcSampler
[in] Um registro de amostra.
Esse parâmetro deve ter um swizzle .r (vermelho), que indica que o valor do canal R é copiado para dest.

Comentários

Essa operação funciona apenas com texturas de canal único 2D ou CubeMap. Para texturas 2D, somente os modos de endereçamento do sampler são usados e o nível superior de qualquer pirâmide mip é usado.

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 um texels de borda da face vizinha são usados. Os cantos usam as mesmas regras que a instrução de exemplo ; que é o canto desconhecido é considerado a média dos três cantos faciais impingintes.

As restrições de formato de textura que se aplicam às instruções de exemplo também se aplicam à instrução gather4 .

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 gather4. gather4 sempre retorna todos os texels solicitados.

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

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

Modelo de sombreador mínimo

Essa função tem suporte nos seguintes modelos de sombreador.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
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 4 (DirectX HLSL)