Anti-Aliasing: Fast Approximate

4 min de leitura
Imagem de: Anti-Aliasing: Fast Approximate

O anti-aliasing é o efeito gráfico que busca corrigir imperfeições existentes em objetos tridimensionais, tais como os famosos serrilhados encontrados nas bordas de objetos e em volta de pequenas estruturas (como cercas, cabelos e folhas de árvore).

Existem, no entanto, diversas técnicas de anti-aliasing (como o MLAA e o MSAA, já vistas neste espaço anteriormente), sendo que cada uma utiliza maneiras específicas para resolver o problema. O resultado, consequentemente, é variado e cada técnica possui vantagens e desvantagens.

Neste artigo, iremos destrinchar o funcionamento do FXAA (Fast Approximate Anti-Aliasing, ou Anti-Aliasing de Aproximação Rápida), uma das tecnologias mais versáteis do gênero, criada pela NVIDIA.
O nascimento de uma técnicaQualidade gráfica e alta compatibilidadeDa mesma forma que o MLAA (Morphological Anti-Aliasing, ou Anti-Aliasing Morfológico), o FXAA é uma técnica que aplica o filtro de anti-aliasing na imagem após ela ter sido ser gerada pela CPU, algo que é vantajoso por aliviar o trabalho da unidade de processamento gráfico do console ou do computador no qual o game está rodando.

O objetivo de seu criador, Timothy Lottes, no entanto, era de criar uma técnica que alcançasse resultados semelhantes aos gerados pelo MSAA (Multi-Sampling Anti-Aliasing, ou Anti-Aliasing de Múltiplas Amostras) de forma mais rápida e mais leve, sem deixar de manter o compromisso com a qualidade gráfica.

Fonte: Hard OCP

Além disso, outro alvo visado pelo desenvolvedor era que a sua criação fosse independente de outros processos do computador, ao mesmo tempo em que não houvesse nenhuma restrição de hardware que limitasse a sua utilização.

Assim, enquanto o MLAA é aplicado via DirectCompute (uma API lançada com o DirectX 11), o FXAA é apenas um shader aplicado após a geração da imagem. Ainda por cima, o FXAA funciona tanto nas placas de vídeo da NVIDIA, como também nas da AMD (ao contrário do MLAA, que funciona apenas em GPUs da AMD), fazendo com que seja uma tecnologia bastante abrangente e com uma alta compatibilidade.


Movendo menos do que um pixel

De fato, Lottes conseguiu alguns méritos com o FXAA. Afinal, ela é uma técnica que exige pouco da placa de vídeo, ao mesmo tempo em que apresenta progressos na redução das distorções nas bordas de objetos.

Fonte: Hard OCP

Isso ocorre por conta da técnica contar com uma lógica própria para lidar com espaços de um pixel ou até menos. Desse modo, é possível obter resultados de bordas ainda mais suaves e reduzir ao máximo o sub-pixel aliasing (defeito apresentado em estruturas que são renderizadas com menos de um pixel, fazendo com que fiquem serrilhadas).

Na imagem acima, fornecida pela NVIDIA, é possível notar bem esse efeito. Na primeira tela, à esquerda, não há nenhum tipo de filtro anti-aliasing. Na do centro, o FXAA já está ligado, mas sem o filtro contra o sub-pixel aliasing. Já na terceira, o filtro contra esse defeito é claramente perceptível nos detalhes das folhas.

O desenvolvedor explica o processo de funcionamento do algoritmo da FFXA em oito passos, exemplificados pela imagem abaixo (acompanhe as imagens da esquerda para a direita e de cima para baixo):

Fonte: NVIDIA

  1. O FXAA analisa as cores da imagem pelo padrão RGB e os converte internamente para estimar os seus níveis de luminosidade;
  2. Em seguida, o algoritmo do FXAA confere o contraste da imagem a fim de evitar o processamento de áreas longe das bordas. As bordas detectadas pelo algoritmo foram marcadas em vermelho, enquanto as áreas em amarelo representam o sub-pixel aliasing encontrado;
  3. Os pixels que passam pela área de contraste são classificados entre horizontais (marcados com a cor amarela) e verticais (marcados com a cor azul);
  4. Uma vez orientados em direções, os pixels que apresentam maior contraste são selecionados;
  5. O algoritmo busca pontas em todas as direções das bordas. Além disso, a luminosidade média dos pixels das bordas também é verificada;
  6. Identificados os limites das bordas, o algoritmo aplica uma mudança de posição nos pixels selecionados, os quais são movidos em 90 graus para uma distância menor do que um pixel. As seções em vermelho e azul representam mudanças  no plano horizontal e as em amarelo e azul claro, no plano vertical;
  7. As texturas são aplicadas novamente à imagem de forma adaptada às mudanças realizadas;
  8. Dependendo da quantidade de sub-pixel aliasing, a imagem recebe um filtro específico para as menores mudanças.

FlexibilidadeProgresso constante
Outra característica da FXAA que a difere das demais técnicas de anti-aliasing é a possibilidade que os desenvolvedores possuem de adaptá-la conforme as suas necessidades.  Assim, de acordo com o jogo que estiverem criando, os desenvolvedores podem preferir uma menor ou maior redução do efeito para alcançar o resultado que melhor se adapte a sua proposta.


Além disso, a FXAA é constantemente atualizada, sendo que existem até o momento ao menos três versões suas:

  • a FXAA 1, a primeira versão, presente em games como Duke Nukem Forever, Age of Conan, Brink e F.E.A.R. 3;
  • a FXAA 2, modificação feita para o Xbox 360;
  • a FXAA 3, a qual apresenta dois algoritmos distintos, o comum — voltado para consoles de mesa — e o Quality — voltado para potencializar ainda mais os gráficos em computadores.

Contudo, embora a FXAA seja uma das técnicas que menos exigem dos processadores e garanta bons resultados sem prejudicar o seu desempenho, ela não é isenta de problemas. No caso, o seu maior contra é o fato de ela só poder ser aplicada em jogos cujos desenvolvedores a implementarem. Ainda assim, nos games em que a FFXA é utilizada, ela consegue oferecer alguns dos melhores resultados aliados a desempenhos bastante satisfatórios.

Veja também:

Cupons de desconto TecMundo:
* Esta seleção de cupons é feita em parceria com a Savings United
Você sabia que o TecMundo está no Facebook, Instagram, Telegram, TikTok, Twitter e no Whatsapp? Siga-nos por lá.