Especificações Técnicas do FXAA -Fast approximate anti-aliasing (Anti-aliasing rápido aproximado)
O FXAA 3 é lançado sob uma licença de domínio público. Uma versão posterior, o FXAA 3.11, é lançada sob uma licença BSD de 3 cláusulas.
Descrição do algoritmo
- Os dados de entrada são a imagem renderizada e, opcionalmente, os dados de luminância.
- Adquira os dados de luminância. Esses dados podem ser passados para o algoritmo FXAA a partir da etapa de renderização como um canal alfa incorporado na imagem a ser suavizada, calculada a partir da imagem renderizada ou aproximada usando o canal verde como os dados de luminância.
- Encontre pixels de alto contraste usando um filtro passa-alta que usa os dados de luminância.Os pixels de baixo contraste encontrados são excluídos de serem alterados posteriormente pelo FXAA. O filtro passa-alta que exclui pixels de baixo contraste pode ser ajustado para equilibrar velocidade e sensibilidade.
- Use contraste entre pixels adjacentes para encontrar bordas heuristicamente e determinar se as bordas estão nas direções horizontal ou vertical. A direção de mesclagem de um pixel será perpendicular à direção da borda detectada naquele pixel.
- Calcule um fator de mesclagem para um pixel de alto contraste analisando os dados de luminância na grade 3x3 de pixels com o pixel em questão sendo o pixel central.
- Pesquise ao longo da borda detectada para determinar quanto tempo essa borda vai e em que direção a borda real vai quando a borda horizontal ou vertical detectada termina, a fim de levar em consideração a direção da borda real para calcular um segundo fator de mesclagem. Esta etapa pode ser ajustada para mais qualidade aumentando a resolução da pesquisa e até onde a pesquisa vai antes que a busca pelo fim da borda desista, ou para mais velocidade reduzindo ambos.
- Misture o pixel usando a direção de mesclagem escolhida e o máximo de ambos os fatores de mesclagem que foram calculados.
Comparação
A principal vantagem dessa técnica sobre o anti-aliasing espacial convencional é que ela não requer grandes quantidades de poder de computação. Ela consegue isso suavizando bordas irregulares indesejáveis ("jaggies") como pixels, de acordo com como elas aparecem na tela, em vez de analisar o modelo 3D em si, como no anti-aliasing espacial convencional. Como não é baseado na geometria real, ele suavizará não apenas as bordas entre triângulos, mas também as bordas dentro de texturas alpha-blended, ou aquelas resultantes de efeitos de pixel shader, que são imunes aos efeitos do anti-aliasing multisample (MSAA).
As desvantagens são que os mapas de textura de alto contraste são desfocados, que o FXAA deve ser aplicado antes de renderizar os elementos HUD de um jogo para não afetá-los também, e que detalhes poligonais menores que um pixel que teriam sido capturados e renderizados pelo MSAA e SSAA não podem ser capturados e renderizados apenas pelo FXAA.
Comentários
Postar um comentário