stringtranslate.com

Antialiasing aproximado rápido

El anti-aliasing aproximado rápido ( FXAA ) es un algoritmo de anti-aliasing del espacio de la pantalla creado por Timothy Lottes en Nvidia . [1]

FXAA 3 se publica bajo una licencia de dominio público . Se publica una versión posterior, FXAA 3.11, 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. Adquirir 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 para suavizarlo, calcularse a partir de la imagen renderizada o aproximarse utilizando el canal verde como datos de luminancia. [3]
  3. Encuentre píxeles de alto contraste utilizando un filtro de paso alto que utilice los datos de luminancia. [3] Los píxeles de bajo contraste que se encuentran no pueden ser modificados adicionalmente por FXAA. [3] El filtro de paso alto que excluye 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 bordes heurísticamente y determinar si los bordes están en dirección horizontal o vertical. [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. Calcule un factor de combinación 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. Busque a lo largo del borde detectado para determinar cuánto tiempo dura ese borde y en qué dirección va el borde real cuando termina el borde horizontal o vertical detectado para tener en cuenta la dirección del borde real para calcular un segundo factor de combinación. [3] Este paso se puede ajustar para obtener más calidad aumentando la resolución de búsqueda y hasta qué punto llega la búsqueda antes de que la búsqueda del extremo del borde ceda, o para obtener más velocidad reduciendo ambos. [3]
  7. Combine el píxel utilizando la dirección de fusión elegida y el máximo de ambos factores de fusión que se calcularon. [3]

Comparación

La principal ventaja de esta técnica sobre el antialiasing espacial convencional es que no requiere grandes cantidades de potencia informática . Lo logra suavizando los bordes irregulares no deseados (" jaggies ") [4] como píxeles , según cómo aparecen en la 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 mezcladas alfa , o aquellas resultantes de efectos de sombreado de píxeles , que son inmunes a los efectos del anti-aliasing multimuestra. (MSAA). [5]

Las desventajas son que los mapas de textura de alto contraste son borrosos, que se debe aplicar FXAA antes de renderizar los elementos HUD de un juego para que no los 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 capturado y renderizado únicamente por FXAA.

Ver también

Referencias

  1. ^ ab 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?". Desbordamiento de pila .
  3. ^ abcdefghijkl Película, Jasper. "FXAA: suavizado de píxeles" . Consultado el 21 de julio de 2020 .
  4. ^ Wang, James (19 de marzo de 2012). "FXAA: Anti-Aliasing a gran velocidad". Nvidia. Archivado desde el original el 21 de febrero de 2019 . Consultado el 3 de enero de 2013 .
  5. ^ Atwood, Jeff (7 de diciembre de 2011). "Antialiasing aproximado rápido (FXAA)". Codificación de terror. Archivado desde el original el 31 de enero de 2014 . Consultado el 30 de septiembre de 2012 .