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 |