sexta-feira, 11 de julho de 2014

Anti-aliasing: o que é e para que serve

Quando se fala em gráficos ruins, um dos aspectos mais observados (e criticados) são as famosas bordas serrilhadas, que enfeiam toda a imagem e passam a impressão de um game pouco polido. O efeito é resultado de pouco (ou mau) uso do anti-aliasing, técnica que, basicamente, serve para suavizar bordas gráficas e melhorar a qualidade das imagens como um todo.
As imagens às quais assistimos são formadas por diversos pontos, os chamados pixels, que se acendem e exibem cores de acordo com os impulsos elétricos recebidos por eles. Estes elementos podem ser vistos a olho nu, basta se aproximar o bastante da tela para observá-los, como na imagem acima.

Linhas retas são exibidas perfeitamente. O problema aparece quando as imagens possuem bordas diagonais. Como as telas possuem uma contagem de pixels menor que o máximo enxergado pelo olho humano, os serrilhados aparecem de forma perceptível, principalmente em áreas nas quais o contraste é muito alto.
Em tempo, apesar de, neste artigo, falarmos especificamente do uso do anti-aliasing em games, a tecnologia também é empregada em toda sorte de trabalhos visuais. Programas de editoração e design eletrônico, como o 3D Max ou o AutoCAD também fazem uso do recurso durante a renderização. A tecnologia é empregada até mesmo em impressões de imagens, mas de forma microscópica.
Lixando os serrilhados Em busca de melhor qualidade
O efeito, na verdade, não acaba com o problema. O anti-aliasing nada mais é do que uma ilusão visual, que faz com que os gráficos pareçam polidos aos olhos do espectador. Basicamente, a função trabalha com a intensidade das cores das bordas de maneira sutil, gerando um efeito degradê que, quando observado pelo olho humano, passa a impressão de linhas diagonais perfeitas.
A imagem acima exibe de forma básica o funcionamento da tecnologia. A letra à esquerda não conta com nenhum tipo de anti-aliasing ativado, enquanto a da direita está com o efeito em pleno funcionamento, e aparece de forma mais suave na tela. Na ampliação, é possível observar a alteração na tonalidade da cor das extremidades.
Existem inúmeras técnicas de anti-aliasing, mas oMultisampling e o Supersampling são os dois principais tipos. Apesar de possuírem o mesmo objetivo, os métodos possuem diferenças no processamento empregado na suavização e no resultado final.
Obtendo amostras E criando a ilusãoA suavização da tecnologia de anti-aliasing é obtida por meio de um conjunto de amostras de cores, que são calculadas automaticamente pela placa gráfica. Este processo ocorre simultaneamente à geração das imagens tridimensionais, e é transparente ao jogador.
Basicamente, o sistema faz uma leitura dos tons principais dos pixels que compõem as bordas, e acrescenta pontos de cor intermediária entre eles, criando o efeito degradê visto na imagem acima, com as letras. Quanto maior o número de amostras obtidas, maior a suavização das imagens e, consequentemente, melhores os gráficos exibidos na tela.
A aplicação do efeito, porém, nem sempre é fixa, e segue um sistema numérico que indica o número de amostras que serão obtidas para cada pixel na diagonal. Quanto maior o índice, melhor a suavização, pois mais tons intermediários serão gerados para trabalhar ao lado do ponto de cor principal.

Na imagem acima, é possível observar uma comparação entre três níveis de anti-aliasing. A primeira é a original, a segunda apresenta o efeito em 4x, e a terceira em 6x. Já este site faz uma simulação destes níveis em “tempo real”, e mostra até que ponto é possível suavizar uma imagem tridimensional por meio da tecnologia.
Beleza X Desempenho Buscando o equilíbrio o anti-aliasing exige cálculos extras e requer processamento maior do que o utilizado para simplesmente exibir os objetos da tela. Como nem tudo é perfeito, o resultado normalmente é uma queda na contagem de quadros por segundo e até mesmo uma lentidão generalizada na máquina que está rodando o game.
Por este motivo, placas de vídeo e jogos para computador contam com opções específicas para ativação dos efeitos de alisamento. Desta forma, o usuário pode definir suas preferências de acordo com a potência da máquina, garantindo uma jogabilidade perfeita e os melhores gráficos possíveis para o equipamento que está sendo utilizado.

Na maioria das vezes, os títulos não apresentam imagens para exibição das modificações em tempo real, mas permitem que o usuário trabalhe não apenas com os efeitos de anti-aliasing como com diversos outros detalhes gráficos do game.

E nos consoles como funciona?
Apesar de não apresentarem configurações para alteração da potência do efeito, os consoles de mesa também contam com sistemas de anti-aliasing. Porém, neste caso, a utilização do recurso é fixada pelo desenvolvedor e não pode ser alterada pelo usuário. O uso do sistema é pensado de acordo com as capacidades do aparelho, de forma a não causar diminuições na contagem de quadros por segundo ou outros problemas de desempenho.
Apesar de apresentarem hardwares semelhantes, o PlayStation 3 e o Xbox 360 apresentam diferenças na utilização do sistema de anti-aliasing, principalmente devido à alocação de memória RAM e à arquitetura dos dois consoles. A utilização dos efeitos também é relacionada às peculiaridades de desenvolvimento de cada um dos aparelhos.



O Xbox 360 conta com uma placa da ATI exclusiva dedicada apenas ao processamento gráfico. Já o PlayStation 3 conta com um componente da NVIDIA, equivalente a uma GeForce 7800. Ambos os consoles possuem 512 MB de memória RAM. No aparelho da Microsoft, porém, todo este potencial é dividido entre processamento de dados e gráficos de acordo com as necessidades de cada setor. O video game da Sony conta com a mesma quantidade de memória, mas divide-a de forma igual entre os dois, podendo estrangular o trabalho de renderização.
A recomendação da Sony, porém, era que as desenvolvedoras utilizassem o processador central Cell para todo o trabalho de processamento dos jogos. As empresas, por sua vez, consideravam o trabalho com o novo chip muito complicado, daí a inclusão de uma placa gráfica extra (e inferior) como medida paliativa para facilitar a criação de games para o console.
Apesar da utilização de técnicas ser muito variada, o Multisample é o tipo mais comum de anti-aliasing utilizado no desenvolvimento para os consoles. O PlayStation 3 conta com uma tecnologia chamada “quincunx AA”, desenvolvida com exclusividade pela própria NVIDIA. O sistema é capaz de produzir uma suavização superior utilizando a mesma quantidade de recursos da tecnologia tradicional por meio de uma diminuição na nitidez das cenas.
Em games que contam com gráficos lisos e com poucos detalhes, a diferença é ínfima. Caso a cena apresente diversas texturas, profundidade e muitos elementos interagindo ao mesmo tempo, o resultado é uma imagem embaçada no PS3, enquanto o Xbox 360 exibe cenas muito mais detalhadas e coloridas, mesmo que com um pouco de serrilhado. A imagem acima, do game Assassin's Creed, exibe a diferença da mesma imagem nos dois consoles.
Quando desenvolvedores decidem seguir a cartilha da Sony, porém, o resultado é impressionante. Basta observar qualquer imagem de jogos como Uncharted ou até mesmo os trabalhos de conversão gráfica feitos pela Sony ao relançar títulos do PlayStation 2 para perceber o potencial gráfico dos chips Cell, principalmente em relação ao anti-aliasing. O grande destaque, no campo das conversões, vai para God of War Collection.