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).
Veja também:
Categorias