Anti-Aliasing: conheça o efeito responsável por melhorar sua jogatina

Sabia que existem diversos métodos usados para tratar aquele serrilhado na imagem dos jogos? Conheça os melhores tipos de Anti-Aliasing disponíveis

Sabe aquele serrilhado estranho que às vezes chega a incomodar, visto na imagem de alguns jogos? Isso se chama Aliasing, e o Anti-Aliasing está aí justamente para poder livrar a sua jogatina desse mal. Tudo o que o seu computador ou celular mostra, sejam imagens, vídeos, na verdade é uma junção de pontos de cores. Esses pontos são chamados de pixels. O pixel nada mais é do que apenas o menor elemento de um dispositivo, um ponto que irá formar uma imagem inteira.

Cálculo de anti-aliasing na Unity 3D, ferramenta de desenvolvimento de jogos. À esquerda, sem, à direita, com.
Cálculo de anti-aliasing na Unity 3D, ferramenta de desenvolvimento de jogos. À esquerda, sem, à direita, com

Muitas placas de vídeo atuais do mercado têm focado bastante em melhorar a experiência dos jogadores, melhorando a renderização e melhorar o serrilhado ao jogar. A NVIDIA incorporou alguns desses efeitos nas novas GTX, já a AMD fez a mesma coisa com a linha Radeon.

Mesmo que empresas como NVIDIA consigam desenvolver novas tecnologias como o Ray tracing, método que faz um cálculo melhor de renderização comparado com outros utilizados, ainda assim o aliasing será um problema.

O que é Aliasing e por que causa um estranhamento tão grande

Comparação de FXAA na Placa AMD Radeon
Comparação de FXAA na Placa AMD Radeon

Para compreender melhor o funcionamento dos métodos Anti-Aliasing, e até mesmo o Aliasing em si, é necessário entender como funciona a resolução de telas e como elas formam as imagens que temos hoje em dia nos dispositivos. Esse serrilhado é causado justamente porque as telas renderizam pixels.

A tela dos dispositivos funciona como se fosse um grid. Cada pixel renderizado é resultado de um cálculo de todas as informações espaciais calculadas geralmente pela placa gráfica para renderizar as informações na tela.

Na prática, significa que linhas inclinadas ou curvas não terão a qualidade exata, a menos que o grid possua muitas divisões. Esse tipo de serrilhado e falta de informação na tela, gera o efeito Aliasing. O problema é que, quanto mais divisões, por mais que reduza o efeito Aliaising, mais caro para a placa gráfica processar essas informações.

Não só a resolução, mas todo o hardware está diretamente responsável por processar as informações. São sombras, reflexos, são cálculos internos caros para serem processados. E todo o avanço das novas Engines faz com que o computador necessite de mais cálculos para processar.

Triângulo em forma de pixels mostrando a dificuldade de figuras e imagens serem renderizadas em dispositivos.
O triângulo gerando pixels na imagem forma o efeito Aliasing

Geralmente cálculos de superfície e materiais Physically Based Rendering (PBR) dependem de vários componentes além da textura. Componentes como normal map, mapa de emissão e mapa de reflexão só vêm a somar o processo da GPU e da Placa gráfica ao calcular. Agora, imagine calcular uma resolução 1080p (1920×1080).

É claro que, hoje em dia, esse processo é bem menos custoso do que pensando em uns 5 ou 10 anos atrás. Mas ainda assim muitos cálculos podem deixar suas marcas nos pixels ou podem não ser calculados corretamente, levando em conta que alguns jogos possuem pipelines diferentes de renderização. Ainda com a tecnologia elevada e vários cálculos sendo feitos de forma mais rápida, ainda assim pixels podem ficar desconexos e gerando o efeito Aliasing para os jogadores.

Uma pipeline de renderização muito utilizada pelas Engines atuais é o algoritmo do pintor, que renderiza primeiro o fundo, para depois renderizar os objetos mais próximos à câmera, semelhante à técnica utilizada por pintores. Esse tipo de cálculo é feito pela Engine, e os jogadores não costumam se preocupar com isso ao jogar um jogo, a menos que seja o desenvolvedor da sua engine.

Muitas vezes ao jogar é possível ver que geralmente as partes mais distantes são renderizadas primeiro, para depois o computador se preocupar em renderizar as partes mais próximas à câmera. Para isso, existem diversos métodos de correção, chamados Anti-Aliasing, aplicados diretamente nos pixels na tela, bem como métodos que amenizam o serrilhamento. métodos que são aplicados diretamente no desenvolvimento de jogos, tais como o MipMapping e o Level of Detail (LOD ou Nível de Detalhe).

Soluções de Anti-Aliasing

Comparação bem destoante de como o efeito pode resolver problemas de serrilhamento de imagens.

Percebendo que, com todo esse processamento e, com novidades tecnológicas, esse problema será constante no desenvolvimento de jogos. Como se não bastasse os desenvolvedores terem que se preocupar com toda a programação, interações, interface, e toda a arte, animações, o visual serrilhado se torna mais um problema a ser corrigido na indústria.

Para isso, foram criadas diversas soluções, algumas muito custosas e outras absolutamente viáveis e aplicadas em diversos jogos.

OEAA: Outer Edge Anti-Aliasing

OEAA pode ser visto em todas as bordas dos objetos em Dead Space 2
OEAA pode ser visto em todas as bordas dos objetos em Dead Space 2

Essa solução é basicamente específica para casos tipo o do Dead Space, em que há interseção das linhas dos modelos com outros modelos ou o fundo. Algumas placas gráficas, como as da AMD fazem esse cálculo já.

Ele funciona como um modo de filtro personalizado programável que aplica um algoritmo ao buffer de quadros para calcular quais pixels podem ser mesclados para gerar gradientes mais suaves. Ele também tem a possibilidade de coletar amostras extras fora do limite do pixel.

MSAA: Multi Sampling Anti-Aliasing

Técnica de Anti-Aliasing só é aplicada nas bordas dos objetos
Técnica de Anti-Aliasing só é aplicada nas bordas dos objetos

Esse algoritmo Anti-Aliasing identifica diversas localidades mediadas entre os pixels que não são percebidas pelos olhos humanos, baseado na resolução dos monitores. E ele junta isso com a renderização final do shader, que é basicamente como o objeto se mostra na cena.

Esse processo só é visto melhor em resoluções baixas como 720p e o custo ainda é alto, porque ele precisa ser calculado para cada pixel a cada frame. Aumentando o número de frames, o custo fica maior ainda.

Essa técnica só é aplicada nas bordas dos objetos e nas zonas de transição do objeto tridimensional.

FXAA: Fast Approximate Anti-Aliasing

Comparação de efeitos FXAA
Comparação de efeitos FXAA

O algoritmo Anti-Aliasing criado para a NVIDIA para cobrir as deficiências do MSAA. Ele custa menos processamento ao computador. A principal diferença do MSAA, é que o FXAA busca apenas as bordas do objeto, em vez de todos os frames.

A principal perda dessa técnica está atrelada ao movimento, visto que os pixels podem perder a definição, causando um borrado na imagem. A forma de solucionar isso, é a adição de outro efeito, chamado motion blur, que irá fazer um borrão toda vez que ele detectar movimento.

SMAA: Sub-pixel Morphological Anti-Aliasing

Comparação de efeitos SMAA
Comparação de efeitos SMAA

Essa técnica está se tornando a mais popular entre os desenvolvedores de jogos modernos. O método analisa o frame atual e o anterior e cria um blend dos pixels, formando um sub-pixel. Com isso, ele pode gerar uma imagem mais nítida.

Ainda que ele seja uma melhora do FXAA no que diz respeito ao blur e nitidez, o efeito ainda pode apresentar problemas quando o objeto está em movimento.

TXAA: Temporal Anti-Aliasing

A NVIDIA permite visualização prévia com e sem o efeito
A NVIDIA permite visualização prévia com e sem o efeito

Como o próprio nome diz, esse efeito Anti-Aliasing visa reduzir o problema do blur com objetos movimentando-se em altas velocidades, mais especificamente do que o frame-rate é capaz de renderizar.

Quando a velocidade do objeto é maior que a do frame-rate do dispositivo, isso faz com que alguns frames sejam perdidos, dando a sensação de que esse objeto parece que está pulando na cena, quando não está.

O TXAA irá, então, resolver esse problema interpolando os frames perdidos na tela, dando a sensação de continuidade e não perdendo a informação. Ainda que esse efeito seja meio invisível ao olho humano, o fato da falta de alguns frames é perceptível.

SSAA: Supersampling Anti-Aliasing

É muito destoante a diferença do efeito aplicado aos modelos, como no Geralt em The Witcher 3
É muito destoante a diferença do efeito aplicado aos modelos, como no Geralt em The Witcher 3

Esse método de Anti-Aliasing utiliza um render de resolução maior para produzir uma imagem de resolução menor com menos artefatos e serrilhados. Através deste método, a linha diagonal é transformada em uma imagem digital com uma resolução maior, permitindo que sejam reproduzidos mais detalhes do que antes. Isso faz com que se converta em uma imagem de maior fidelidade quando a resolução é reduzida para aquela que será utilizada pela tela ou monitor.

ATAA: Adaptive Temporal Anti-Aliasing

Comparação do ATAA com o SSAA
Comparação do ATAA com o SSAA

Para realizar o Anti-Aliasing nas tecnologias de renderização Ray tracing, deve-se levar em conta o princípio básico da tecnologia. O Ray tracing traça raios, partindo de cada pixel da tela em relação à câmera, que vão em direção aos objetos da cena.

A ideia central é correr o algoritmo ATAA na maioria dos pixels e produzir uma grande quantidade de informação que irá conter informações dos pixels que falharam e os motivos de ter falhado. Depois dessas informações serem completadas, o algoritmo irá substituir com as heurísticas complexas do ATAA nos pixels falhos. O algoritmo visa uma melhor adaptação ao conteúdo da imagem.

O problema vai além disso

Mesmo que efeitos Anti-Aliasing sejam combinados para as melhores soluções e estratégias do jogo, isso ainda não inibe que outros problemas ocorram. Muitos métodos citados resolvem basicamente movimento e as bordas de objetos. Algumas vezes, mesmo movimentos suaves, podem causar o serrilhamento de texturas ou mesmo o computador pode processar modelos grandes demais a distância.

Isso gera diversos problemas, porque texturas e modelos em alta resolução, mesmo que apareçam um pedaço da tela, é necessário que o objeto seja todo processado. Os problemas atrelados a esse tipo de prática estão novamente voltados aos custos.

MipMapping – A solução na textura

Comparação de imagens com e sem MipMapping
Comparação de imagens com e sem MipMapping

Em computação gráfica, mipmaps são sequências de imagens pré-calculadas, cada uma sendo uma representação em menor escala da mesma imagem. Elas são agrupadas em um atlas de textura e utilizadas, baseado no quão distante o objeto está da câmera.

Renderizar a textura no seu tamanho real muito distante da câmera, além de ser custoso, não traz um resultado visualmente agradável aos olhos. A solução vem para que, a longas distâncias, a textura possua a mesma fluidez que seja vista pelo olho humano.

LOD: Level of Detail – A solução em modelos 3D

Forma de diminuir a quantidade de vértices em detrimento da distância
Forma de diminuir a quantidade de vértices em detrimento da distância

O LOD possui os mesmos princípios do MipMapping, só que aplicados a modelos 3D. Modelos com muitos vértices sendo renderizados muito distantes da câmera gastam muito processamento, além de não ficarem visualmente agradáveis.

Esse método vem para reduzir a geometria e a complexidade desse modelo para que ele ainda assim não perca suas propriedades na cena. Esse método é geralmente mesclado com Mipmapping, para que tanto o modelo quanto a textura tenham tamanhos reduzidos para as determinadas distâncias.

Que tipo de Anti-Aliasing é o melhor para você?

Comparação do MSAA 8x com o TXAA
Comparação do MSAA 8x com o TXAA em placa da NVIDIA

Muitas placas de vídeo utilizam os efeitos Anti-Aliasing demonstrados acima, e muitos deles estão disponíveis para serem habilitados ou não pelas configurações. Cabe ao usuário escolher qual utilizar, baseado em qual máquina ele utiliza.

Tirando o OEAA, que não é um efeito de pós-processamento, todos os outros são efeitos de pós-processamento, que irão ser aplicados em todos os frames. Isso, claro, irá impacta em qual máquina será utilizada.

Computadores e notebooks gamers focados em placas gráficas e bons processamentos de memória RAM e GPU irão processar efeitos de Anti-Aliasing que exijam mais da máquina. Apesar das diversas variações citadas, vale a pena configurar uma pequena lista de quais efeitos usar para o nível de máquina o usuário possui:

  • FXAA: Popular e não tão custosa assim;
  • MSAA: Baixo custo, porém não tão utilizada ultimamente;
  • TXAA para PCs medianos para mais robustos;
  • SSAA: é absolutamente custoso, porém com alta qualidade;
  • ATAA: é uma tecnologia nova para novas placas GTX.

É claro que essa classificação é mais básica, e isso irá depender, por exemplo, de qual placa de vídeo os usuários possuem. a NVidia, por exemplo, possui um amplo portfólio de placas que fazem um bom cálculo TXAA comparado com outras placas gráficas. Algumas AMD processam bem o FXAA somado com o SMAA para um melhor ganho. PCs mais fracos, por suas limitações de hardware, tendem a ter mais restrições de escolhas.

Adicionar Comentário

Clique aqui para postar um comentário

Deixe um comentário: