Anti-Aliasing: Coverage Sampling

4 min de leitura
Imagem de: Anti-Aliasing: Coverage Sampling

Coverage Sampling Anti-Aliasing (CSAA) é uma técnica de anti-aliasing — como o  MSAA e Alpha-to-Coverage —, ou seja, um processo de suavização dos serrilhados na imagem. O CSAA é praticamente uma variação do MSAA, salvo pelo número de amostras de cobertura — que no Coverage Sampling está desatrelado dos dados de cor e profundidade.

Como resultado, o CSAA oferece imagens com qualidade similar às tratadas com MSAA 8x ou 16x. Além disso, por utilizar um número menor de amostras, o CSAA também exige menos desempenho da máquina.

O funcionamento do CSAA não é muito diferente do MSAA: a placa de vídeo processa a imagem e aplica o filtro nos pontos em que é necessário eliminar serrilhados. Isto significa que o processo ignora boa parte da imagem e se concentra somente nos elementos relevantes (as bordas de objetos).

Para tanto, o algoritmo do Coverage Sampling analisa diferenças de valores de cor dos polígonos, determinando assim quais porções da imagem estão contidas em um mesmo objeto. O CSAA reconhece pixels idênticos em uma região e os filtra como um único conjunto, aplicando o mesmo valor de cor a todos.

As minúcias técnicas do processo estão nos cálculos das amostras colhidas da imagem. O CSAA atribui novos valores de cor aos pixels, que na imagem final aparecem com bordas suavizadas. O jogador, ou os desenvolvedores, designam a quantidade de amostras que serão colhidas, sendo que estas são diretamente proporcionais à qualidade final da imagem.

As amostras de cores/Z/estêncil são traduzidas em trechos a serem “corrigidos”. O esquema é menos complicado do que parece: basicamente o algoritmo busca por padrões de cor, profundidade (z) e forma (estêncil). Quando dizemos CSAA 8X, isto significa que serão utilizadas oito amostras para identificar a imagem, enquanto o CSAA 16x terá 16 amostras.

Nas placas de vídeo NVIDIA GeForce 8800, os modos CSAA apresentam os seguintes valores:

CSAA

Amostra de Cores/Z/Estêncil

Amostras de Cobertura

8x

4

8

8xQ

8

8

16x

4

16

16xQ

8

16

Como no Multi Sampling, o Coverage Sampling reduz o impacto da operação no processamento gráfico ao separar as amostras sombreadas de cor (Color Sample) e de cobertura (Coverage Sample). Assim, mesmo, com menos instruções de renderização (shaders), o processo não perde amostras de cobertura cor/z/estêncil.

No modo CSAA 16x, as cores e a cobertura estão dispostas dentro do pixel da seguinte forma:

Fonte da Imagem: NVIDIAResumindo, o CSAA comprime as informações de cor/z/estêncil “dentro” do rastro de memória e banda utilizada pelo MSAA 4x. Em seus padrões de alta qualidade (CSAA 8xQ e 16xQ), o Coverage Sampling comprime estas informações nas “pegadas” do MSAA 8x.

Habilitação

O CSAA pode ser “ligado” diretamente pelo driver da placa de vídeo. Nesta opção, o jogador pode escolher entre “Enhance” e “Override”.

No modo “Enhance”, todas as imagens criadas pelo método MSAA são convertidas em superfícies CSAA utilizando um painel de controle específico do Converage Sampling. Já em “Overdrive”, o painel de controle CSAA força o uso do retentor gráfico (framebuffer) — esta opção só está disponível nos aplicativos que renderizam as imagens diretamente no framebuffer.

A NVIDIA recomenda que os desenvolvedores produzam aplicativos com suporte para o CSAA, pois a introdução do filtro no programa é muito simples — haja vista que se trata de uma pequena variação do MSAA. Segundo os documentos da empresa, a qualidade das imagens é muito superior com praticamente nenhuma perda de desempenho de processamento. Além disso, evita as complicações técnicas de se lidar com o painel de controle do driver.

Apesar de algumas diferenças na programação, o CSAA é aplicável em APIs DirectX 9 e DirectX 10. As alterações na programação se devem às diferenças do tempo de execução (runtime) do DX9 que impedem o driver de processar imagens com valores muito altos. Assim, em vez de atribuir um número específico de amostras de cobertura, o CSAA apenas assume a meta de qualidade final da imagem.Fonte da Imagem: NVIDIA

Desempenho

O grande trunfo do CSAA em relação ao MSAA é o seu baixo “custo” de processamento. Apesar das similaridades com o Multi Sampling — já que utilizam a mesma contagem de amostra de cor/Z/estêncil —, o Coverage Sampling é mais eficiente.

Os modos 8x e 16x do CSAA (que utilizam quatro amostras de cor/Z/estêncil) tem o mesmo comportamento do MSAA 4x. Ou seja, em termos de armazenamento, o CSAA apresenta uma relação menos dispendiosa, pois as amostras de cobertura não necessitam de muito espaço de memória.

Todavia, existem controvérsias sobre os valores reais de amostragem do CSAA. A tabela de valores indica claramente que o CSAA 8xQ é na verdade um MSAA 8x — pois ambos utilizam oito amostras de cor/Z/estêncil. Diferentemente do CSAA 8x que utiliza apenas quatro amostras, mas emprega oito amostras de cobertura.

Mesmo assim, não há como negar a eficiência do CSAA, especialmente em relação aos resultados apresentados e seu baixo impacto no desempenho da máquina. Testes com os jogos F.E.A.R. e Prey mostram como a GeForce 8800GTX e GTS lidam com o processamento Coverage Sampling sem causar grande variação na taxa de quadros por segundo (fps).

Fonte da Imagem: NVIDIA

Veja também:

Cupons de desconto TecMundo:
* Esta seleção de cupons é feita em parceria com a Savings United

Categorias

Você sabia que o TecMundo está no Facebook, Instagram, Telegram, TikTok, Twitter e no Whatsapp? Siga-nos por lá.