Articulo de referencia

Antialiasing rápido y aproximado

El suavizado de bordes aproximado rápido ( FXAA ) es un algoritmo de suavizado de bordes en el espacio de la pantalla creado por Timothy Lottes en Nvidia . [ 1 ] FXAA 3 se publi...

El suavizado de bordes aproximado rápido ( FXAA ) es un algoritmo de suavizado de bordes en el espacio de la pantalla creado por Timothy Lottes en Nvidia . [ 1 ]

FXAA 3 se publica bajo una licencia de dominio público . Una versión posterior, FXAA 3.11, se publica bajo una licencia BSD de 3 cláusulas. [ 2 ]

Descripción del algoritmo

  1. Los datos de entrada son la imagen renderizada y, opcionalmente, los datos de luminancia. [ 3 ]
  2. Adquiera los datos de luminancia. [ 3 ] Estos datos podrían pasarse al algoritmo FXAA desde el paso de renderizado como un canal alfa incrustado en la imagen que se va a suavizar, calculado a partir de la imagen renderizada o aproximado usando el canal verde como datos de luminancia. [ 3 ]
  3. Encuentra píxeles de alto contraste usando un filtro de paso alto que utiliza los datos de luminancia. [ 3 ] Los píxeles de bajo contraste encontrados se excluyen de ser alterados posteriormente por FXAA. [ 3 ] El filtro de paso alto que excluye los píxeles de bajo contraste se puede ajustar para equilibrar la velocidad y la sensibilidad. [ 3 ]
  4. Utilice el contraste entre píxeles adyacentes para encontrar heurísticamente bordes y determinar si los bordes están en direcciones horizontales o verticales. [ 3 ] La dirección de fusión de un píxel será perpendicular a la dirección del borde detectado en ese píxel. [ 3 ]
  5. Calcula un factor de mezcla para un píxel de alto contraste analizando los datos de luminancia en la cuadrícula de píxeles de 3x3, siendo el píxel en cuestión el píxel central. [ 3 ]
  6. Se realiza una búsqueda a lo largo del borde detectado para determinar su longitud y la dirección del borde real cuando finaliza el borde horizontal o vertical detectado, con el fin de tener en cuenta la dirección real del borde y calcular un segundo factor de mezcla. [ 3 ] Este paso se puede ajustar para obtener mayor calidad aumentando la resolución de la búsqueda y la distancia que abarca antes de que se abandone la búsqueda del final del borde, o para obtener mayor velocidad reduciendo ambos parámetros. [ 3 ]
  7. Mezcla el píxel usando la dirección de mezcla elegida y el máximo de ambos factores de mezcla que se calcularon. [ 3 ]

Comparación

La principal ventaja de esta técnica sobre el suavizado espacial convencional es que no requiere grandes cantidades de potencia de cálculo . Lo consigue suavizando los bordes dentados indeseables (" jaggies ") [ 4 ] como píxeles , según cómo aparecen en pantalla, en lugar de analizar el modelo 3D en sí, como en el suavizado espacial convencional. [ 1 ] Dado que no se basa en la geometría real , suavizará no solo los bordes entre triángulos, sino también los bordes dentro de texturas con mezcla alfa , o aquellos resultantes de efectos de sombreado de píxeles , que son inmunes a los efectos del suavizado multisample (MSAA). [ 5 ]

Las desventajas son que los mapas de texturas de alto contraste se ven borrosos, un efecto que se puede reducir ajustando el "filtrado de subpíxeles"; que el FXAA debe aplicarse antes de renderizar los elementos de la interfaz de usuario de un juego para que no les afecte también; y que los detalles poligonales más pequeños que un píxel que habrían sido capturados y renderizados por MSAA y SSAA no pueden ser capturados y renderizados solo por FXAA.

FXAA incluye un filtro de paso bajo específico de subpíxeles para reducir el parpadeo y el aliasing en los resultados de sombreado, como sombras y reflejos especulares. [ 1 ] Esta etapa utiliza un filtro de paso bajo en vecindarios de 3x3 para atenuar los artefactos de alta frecuencia, lo que ayuda a reducir el aliasing de "parpadeo" o "punteado" en imágenes en movimiento. [ 1 ]

Véase también

Referencias

  1. ^ Lottes , Timothy (febrero de 2009 ) . "FXAA" (PDF) . NVIDIA . Consultado el 29 de septiembre de 2012 .
  2. "opengl - Uso de NVidia FxAA ​​en mi código: ¿Cuál es el modelo de licencia?" . Stack Overflow .
  3. 1 2 3 4 5 6 7 8 9 10 11 12 Flick, Jasper. "FXAA: Suavizando píxeles" . Recuperado el 21 de julio de 2020 .
  4. Wang, James (19 de marzo de 2012). "FXAA: Antialiasing a velocidad de la luz" . NVIDIA. Archivado del original el 21 de febrero de 2019. Recuperado el 3 de enero de 2013 .
  5. Atwood, Jeff (7 de diciembre de 2011). "Antialiasing aproximado rápido (FXAA)" . Coding Horror. Archivado del original el 31 de enero de 2014. Recuperado el 30 de septiembre de 2012 .