Anti-Aliasing

Em contexto de processamento de sinal digital, denomina-se como anti-aliasing (ou anti-serrilhamento, em imagens) o esforço em reduzir a percepção de um fenômeno resultando em artefatos anômalos, corrupção de reamostragem, dentre outros efeitos indesejados, em razão de não-distinção de frequências de sinal digital entre ondas adjacentes. Daí vem o termo original “aliasing”, que NÃO significa serrilhamento.

Conforme iremos tratar exclusivamente de anti-aliasing em processamento de sinal digital para imagens, trataremos de anti-serrilhamento, que é realizado primariamente através de técnicas de anti-serrilhamento. Tais técnicas são metodologias de processamento de vértices e pixels designadas a minimizar os efeitos indesejados, resultantes na percepção de retas escadeadas ou contornos dentados em objetos geométricos bidimensionais e tridimensionais.

Antes de falarmos das medidas contra o efeito de serrilhamento, seria conveniente explicar em mais detalhes o que é o efeito serrilhamento e sua causa também.

Efeito serrilhamento

O efeito serrilhamento ocorre pela negligência no processamento de sinal digital quando pontos numa torrente de ondas binárias têm suas informações tratadas como similares a sua adjacência quando são suficientemente distinguíveis, isto é, tratando toda uma região como contendo uma única e mesma informação. Este fenômeno incidente na produção de mais pixeis em reta do que curvas, causando o dentamento nos contornos de objetos geométricos bidimensionais e tridimensionais, ou textos.

A natureza dos ecrãs propicia a existência de defeitos visuais uma vez que todo pixel é um quadrado. Linhas curvas ou mesmo linhas retas diagonais ou semi-diagonais não passam de uma ilusão de óptica, usando de pixels adjacentes em gradiente para simular presença ou movimento.

Uma linha semi-diagonal sem e com ação de técnica de anti-serrilhamento, respectivamente.

Na imagem supra-inserida, é observável bordas mais detalhadas na segunda reto do que na primeira reta. Isto ocorre porque as informações gradientes dos pixels foram tratadas como iguais (isto é, aliases), e tiravam seu processamento neglicenciado pelo fator de seleção, produzindo menos pixels de tonalidade mais forte.

Anti-serrilhamento

Atualmente, há uma ampla gama de técnicas disponíveis (ou não, por serem proprietárias) para anti-serrilhamento, porém todas são baseadas nos mesmos princípios e similares metodologias. Os poucos diferenciais dos algoritmos de processamento alternam as formas de coligibilidade de pixels, a fração usada, e a precisão de detecção de arestas; diferenciais representados através dos valores em potência de 2, tais como 2x, 4x, 8x, 16x, 32x e 64x.

Em razão da ampla gama existente, há também todo um vocabulário para designar cada técnica em particular, em maior parte deriva ou relaciona os mesmos termos, afinal, é tudo anti-serrilhamento.

Técnicas baseadas em amostragem

Imagine fazer uma bola de lego. Pelo tamanho das peças de lego, a percepção da “endentação” é mais que evidente. Entretanto, o que vemos exibido no ecrã é o mesmo, porém em escala menor, fazendo a percepção de endentação também menor. Então, para fazer uma bola de lego menos quadrangular mais arredondada, temos de reduzir o tamanho das peças de lego e, consequentemente, aumentar a quantidade. Esta é a abordagem das técnicas de amostragem.

As técnicas baseadas em amostragem, que compreende renderizar em escalas 2, 4, 8, 16, 32 ou 64 vezes acima da resolução final e depois reescalar abaixo até a resolução final, melhoram a estimação de cor do pixel ao usar mais informação durante a extração de dados, elevando a precisão. Para cada pixel, são calculados valores de mais que um ponto, baseando os valores do pixel nos produtos de amostragem. Uma produção de amostragem elevada melhora os resultados, porém eleva também o uso de memória e o custo computacional por quadro desenhado.

Super-Sampling Anti-Aliasing (SSAA)

SSAA

Super-Sampling Anti-Aliasing, ou simplesmente SSAA, também referido como Full Scene Anti-Aliasing (FSAA), Ã© uma técnica extremamente custosa em uso de memória e poder computacional, porém, em perspectiva de custo-benefício, produz um ótimo visual, apesar de estar passível de apresentar uma percepção de embaçamento (blur) em detalhes verticais e horizontais finos se aplicado sem prudência. SSAA reamostra normalmente em até 16x para cada pixel e produz um resultado médio da somatória dos subpixels; exatamente o que a imagem supra-inserida apresenta.

Multi-Sample Anti-Aliasing (MSAA)

MSAA

Multi-Sample Anti-Aliasing, ou simplesmente MSAA, é uma técnica que funciona nos mesmos ideais da técnica SSAA porém processando somente regiões significantes, regiões estas reamostradas para produção do pixel resultante. O sombreamento de pixel é executado apenas uma vez por pixel, onde também as reamostragens que compartilham um mesmo triângulo herdam os mesmo valores.

Apesar do ganho de desempenho em relação ao SSAA, esta ainda é uma técnica custosa e não lida com texturas transparentes, como lida o SSAA.

Técnicas baseadas em filtragem

As técnicas baseadas em filtragem aplicam filtros a certas regiões de imagem renderizada, principalmente em detecção e embaçamento de arestas. Por serem técnicas aplicadas ao resultado da renderização (diz-se técnicas de pós-processamento), são praticamente irrelevantes ao uso de memória e custo computacional quando comparadas às técnicas de amostragem.

Nada é de graça nesse mundo, e esta filosofia também cabe aqui. Por ser um tratamento superficial, estas técnicas estão passíveis de causar embaçamentos exagerados ou indesejados e detalhes de textura podem ser perdidos.

E se você pensa que pode apenas usar uma técnica, está equivocado. Técnicas de amostragem e filtragem são aplicadas em tempos e formas diferentes, o que permite o uso combinado de filtragem sobre a amostragem.

Fast Approximation Anti-Aliasing (FXAA)

Fast Approximation Anti-Aliasing, ou simplesmente FXAA, é uma técnica criada por Timothy Lottes, um nome associado à NVIDIA, que encontra pixels de arestas através da luminosidade e encontra fins de arestas seguindo pixels de arestas, então alterna os pixels das arestas, amostra os subpixels alternados, e “liquidifica” o resultado para uma imagem final.

Se você não entendeu o que foi explicado aqui, não se preocupe, ou melhor, comemore, pois é evidência de que você ainda não perdeu a sanidade. Só numa cozinha para fazer aquilo. — De repente me veio a ideia de que essa porra deveria ter sido nomeada Milk Shake Anti-Aliasing mas a sigla MSAA já foi tomada.

Postagens relacionadas

Comentários