Passar para o conteúdo principal

Digital Foundry: O Futuro do Anti-Aliasing

Linhas retas.

A atual geração de consolas HD está a amadurecer, e os estúdios procuram formas ainda mais engenhosas de extrair melhor qualidade dos visuais das configurações fixas dos hardwares disponíveis, preservando o mais que puderem a performance do sistema. Uma das componentes chave numa apresentação gráfica de qualidade e polida é o anti-aliasing – o processo pelo qual os efeitos de distorção gerados ao renderizar uma imagem de maior resolução num framebuffer de menor resolução são diminuídos. Os mais infames – e talvez mais desanimadores – artefactos de aliasing são claro os horríveis “jaggies”, ou escadeados à bom português.

Hardware multi-sample anti-aliasing (MSAA) é a solução mais comum para estes problemas, mas tem um custo: é pesada na RAM e largura de banda. Também, as técnicas de renderização shading diferidas usadas em muitos dos mais recentes jogos são incompatíveis com o tradicional MSAA em equipamento DirectX 9, e pode aplicar um forte golpe na memória em DX10 e DX11. Portanto, e se pudesses alcançar resultados indiscutivelmente superiores à MSAA sem um grande impacto na performance?

Jogos tais como The Saboteur, Halo Reach e Crysis 2 todos empregaram as suas próprias e mais eficientes soluções anti-aliasing, mas talvez a mais popular técnica seja morphological anti-aliasing (MLAA) – desenvolvido pelo Advantaged Technology Group (ATG) da SCEE e empregue em jogos tais como God of War 3, Little Big Planet 2, Shift 2: Unleashed e futuramente em Battlefield 3.

Não temos completamente a certeza se o código da SCEE está a ser usado em todos os casos, mas a MLAA está-se a tornar cada vez mais popular - Portal 2, Alice: Madness Returns e Red Faction: Armageddon são três exemplos de alto perfil que parecem estar a usar a mesma técnica.

”O MLAA é um algoritmo bem dispendioso que tenta igualar por padrões as arestas, e aplica um blur/filtro de acordo com o que melhor se parece,” explica uma das mentes na tecnologia do Criterion Games, Alex Fry.

”Uma vez que se baseia na procura e usa um largo leque de padrões, é dispendiosa mas pode fazer um trabalho fantástico quando encontra uma aresta genuína; Por aplicar o blur apenas nessa aresta e nada mais, produz uma aresta perfeitamente anti-aliased. No entanto, quando encontra ‘falsas’ arestas – por exemplo, quando encontra uma aresta numa textura confusa que realmente não devia ter blur – vai exagerar a confusão uma vez que o efeito blur vai mudar de direção de fotograma para fotograma (padrões diferentes vão ser igualados a cada fotograma), exagerando o aliasing temporal.”

Os dispendiosos algoritmos computacionais do MLAA tornaram-no até agora adequados para correr apenas na PlayStation 3, com os super-rápidos SPUs a trabalhar em paralelo para processar a imagem em cerca de 3-4 milissegundos. Mas o MLAA está agora a ser desenvolvido para a Xbox 360 e PC na forma da MLAA de Jimenez, criada por Jorge Ji, Jose I. Echevarria e Diego Gutierrez.

Jimenez MLAA num leque de first person shooters: Battlefield Bad Company 2, Borderlands e Bulletstorm. Uma vez que a AA pós-processamento considera um ecrã 2D achatado para análise, podemos usar as nossas capturas HD ao invés de correr em tempo real. Notem que os elementos HUD também são processados. No jogo em si esperarias processar a imagem antes do HUD ser colocado por cima. Carreguem no botão para resolução 720p.

O Jimenez MLAA corre no GPU, e houveram sugestões que a técnica perde um elemento de qualidade, pois os núcleos gráficos geram um código um pouco mais simples que os SPUs. A equipa de Jimenez debruçou-se sobre isto e podem apontar para os resultados vistos nos vídeos neste artigo, independentemente gerado pelo Digital Foundry em sequências da nossa escolha, filtrados com o seu código.

”Não podemos falar por todas as implementações MLAA(e do género) que existem, mas pensamos que a nossa atual versão 1.6 – a usada nestas comparações – aumentou o nível de qualidade consideravelmente,” dizem eles.

”Nos nossos testes, isto produz resultados a par (quando não superiores) ao CPU MLAA. Uma das nossas melhores funcionalidades é que somos muito conservadores com a imagem: apenas podemos processar onde temos a certeza haver uma aresta percetível; e a versão 1.6 faz um bom trabalho na procura de arestas percetíveis. Isto permite preservar o máximo da pureza processando na mesma todos os jaggies relevantes.”

O FXAA adota uma abordagem completamente diferente, mais dentro das linhas do que Alex Fry chama de um “filtro blur heurístico”, melhor adequado a imagens com mais confusão. Timothy Lottes desenvolveu versões específicas de “consola” e “qualidade” do FXAA, desenhadas para terem os melhores resultados das consolas e equipamento PC.

”A qualidade do FXAA3 – a versão PC – é desenhado para tirar proveito das vantagens na funcionalidade e performance dos GPUs PC, que providencia uma qualidade muito alta,” diz ele.

”O FXAA3 da consola é desenhado para ter a melhor qualidade de imagem possível debaixo da restrição de usar perto de um milissegundo de tempo GPU quanto possível por cada fotograma 720p na Xbox 360 e PS3. Visualmente a versão PC é mais apurada e tem maior qualidade em arestas quase horizontais e quase verticais.”

O propósito original de Lottes ao criar a tecnologia foi “encontrar técnicas práticas no equipamento de agora para aproximar a qualidade dos pixeis dos filmes renderizados off-line,” e esta é uma abordagem que faz mais do que apenas suavizar os jaggies.

”Para além de ter como alvo o aliasing de arestas como o MLAA e o DLAA, o FXAA reduz o efeito de inconsistência do aliasing sub-pixel ao baixar o contraste dos elementos de tamanho pixel e sub-pixel,” explica Lottes, revelando que a sua técnica também é mais rápida do que as rivais tecnologias de anti-aliasing pós-processamento.

”Em termos de tempo, o FXAA 3 Quality é menos dispendioso que o MLAA, e o FXAA 3 Console é menos dispendiosa que o DLAA. Existe também outra versão do FXAA que tem muito mais qualidade que o MLAA (menos distorção) quando aplicado ao texto e elementos do HUD.”

Uma festa de comparação anti-aliasing – aqui vemos a imagem original da fonte, depois a mesma imagem com filtro Jimenez MLAA, seguida de FXAA (consola) e FXAA (qualidade). A definição qualidade do FXAA requer mais tempo de GPU, portanto foi desenvolvido com placas gráficas PC em mente. Carreguem em cada imagem para os PNGs sem perda de qualidade (ou então, carreguem no botão direito e abram cada uma num novo separador).