Modos anti-aliasing explicados

Modos anti-aliasing explicados

Então, o que é Aliasing?

São os “jaggies” ou os “degraus” nas bordas/contrastes (não suaves) na computação gráfica. Em termos mais científicos da Teoria da Informação, Aliasings são artefatos causados ​​por taxas de amostragem que são menos de duas vezes maiores que a frequência (ver teorema de amostragem de Nyquist-Shannon) (arestas duras podem na verdade ter uma frequência espacial infinita). As amostras são pontos infinitesimais usados ​​para calcular a cor do pixel. Sem AA, existe apenas uma amostra no meio do pixel.

Existem 2 maneiras básicas de obter o Anti-Aliasing:

  • Aumentar a taxa de amostragem (usada, por exemplo, em MSAA, SSAA e modos personalizados como EQAA e CSAA)
  • Desfoque as bordas/contrastes (usado, por exemplo, em MLAA, FXAA e SMAA), também chamado de Pós-AA ou Pós-Processamento.

A maneira mais simples de aumentar a taxa de amostragem é chamada FSAA(Full Screen AA), SSAA(Super Sampling AA)1 ou Downsampling2. Neste caso, é utilizada uma quantidade maior de amostras e a cor de cada Pixel é calculada a partir dos valores das amostras dentro dele. Isso resulta em Pixels que possuem uma mistura das cores que realmente estão dentro dele.

Esta é sem dúvida a melhor forma de AA: as texturas ficam mais nítidas devido à maior taxa de amostragem, o Aliasing é bastante reduzido e a imagem fica muito imóvel. Normalmente, também não deve haver desfoque. A desvantagem deste modo é o desempenho necessário: é o melhor de todos os modos AA e apenas equipamentos entusiastas, muitas vezes com múltiplas GPUs, têm o poder de usar este modo em jogos modernos.

  1.  nome correto para este método é OGSSAA, também conhecido como superamostragem de grade ordenada AA. outro método como SGSSAA ou RGSSAA não faz amostras ordenadas ao longo dos eixos
  2. Downsampling funciona um pouco diferente e é mais complicado quando SSAA não funciona: todo o quadro é renderizado em uma resolução mais alta e depois filtrado.

MSAA (Multi Sampling AA) reduz o desempenho necessário em comparação com SSAA. MSAA detecta as bordas dos polígonos e apenas aumenta o número de amostras ali.

A principal vantagem é que ele oferece AA que não desfoca e usa menos desempenho que o SSAA. as desvantagens são que alguns mecanismos de renderização diferida (como UE3 e a maioria dos outros mecanismos da era PS360) têm problemas ao usar MSAA e geralmente apresentam resultados abaixo da média. Também não impede o aliasing de texturas alfa. Alguns métodos, como alfa para cobertura, podem ajudar a suavizar texturas alfa usando MSAA.

editar: A explicação técnica do MSAA foi uma simplificação. Uma explicação mais aprofundada pode ser lida aqui. obrigado a u/fb39ca4 pela fonte em inglês.

EQAA (Enhanced Quality AA) e CSAA (Coverage Sample AA) tentam aumentar a qualidade do MSAA. A maneira real como isso acontece (aumentando o número de amostras de cobertura enquanto o número de amostras de cor/profundidade/estêncil permanece o mesmo) é complicada, uma explicação detalhada pode ser encontrada aqui.

MLAA (AA morfológico) e FXAA (AA aproximado rápido) são modos pós-AA que usam filtros de desfoque. Primeiro, ele detecta contrastes (“bordas”) no quadro e depois desfoca-o ao longo do gradiente.

Isso resulta em uma grande redução de “jaggies” visíveis que também cobrem texturas alfa, mas também desfocam tudo, inclusive texturas. É também a forma mais barata de AA e frequentemente usada em versões de jogos para console.

Pessoalmente não gosto muito deste modo de AA. Se você quiser AA barato, dê uma olhada no SMAA.

SMAA é um modo AA baseado no filtro de desfoque Post-AA do MLAA (e FXAA). A “detecção” de alisasing foi atualizada e está mais próxima da detecção usada em MSAA do que da detecção usada em MLAA e FXAA. O resultado é que o SMAA ainda permanece muito barato, ainda suaviza as texturas alfa e ainda reduz bastante os “jaggies” visíveis, mas não desfoca tanto a imagem.

Pessoalmente, acho que este é um dos melhores modos AA disponíveis. Forçar uma pequena forma de SMAA por meio de driver ou ferramentas como RadeonPro ou nVidia Inspector combinado com MSAA/SSAA tradicional resultará em um dos melhores resultados possíveis.

TXAA (AA Temporal) é uma forma muito complexa de AA. Não é um pós-AA, embora ainda fique borrado devido ao método de redução da resolução usado. As informações que temos também são vagas, então gostaria de deixar de comentar aqui a parte técnica.

A implementação do TXAA varia de jogo para jogo e de versão para versão do TXAA, portanto, uma declaração geral dificilmente é possível. O que se pode dizer é que a) utiliza muito mais performance que FXAA, MLAA e SMAA, b) a redução de “jaggies” é uma das melhores de todos os modos AA ec) tudo fica embaçado.

Como muitas vezes desfoca muito mais do que MLAA ou FXAA, não é um modo tão bom. Se a taxa de amostragem usada internamente para TXAA for atualizada para SSAA (é baseada em MSAA), o resultado pode ser muito bom, mas precisa de uma tonelada de desempenho adicional que a maioria dos equipamentos não possui. Se usado em resoluções muito altas (4K ou superior), também pode ser aceitável. No geral um modo que poderá ser mais útil no futuro e/ou em alguns jogos especiais e/ou após alguns ajustes.

Comments

No comments yet. Why don’t you start the discussion?

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *