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.
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.”