En gráficos de computadora 3D, el filtrado anisotrópico (AF) es un método para mejorar significativamente la calidad de las imágenes de textura. Es único porque esta técnica solo se aplica en superficies donde la perspectiva de la cámara está sesgada y la proyección de la textura parece no ortogonal. Como sugiere el origen de la palabra, el filtrado anisotrópico no trata cada dirección de la misma manera. En comparación con el filtrado bilineal y trilineal, el filtrado anisotrópico no solo elimina los efectos de aliasing, sino que también mejora el desenfoque y preserva los detalles en ángulos de visión extremos.
El filtrado anisotrópico puede preservar la "claridad" que la tecnología mipmap tradicional pierde en el proceso de evitar el aliasing.
A finales de la década de 1990, debido a las limitaciones del ancho de banda de la memoria, el uso del filtrado anisotrópico se hizo popular y se convirtió en una característica estándar de las tarjetas gráficas de consumo. Esta tecnología es común en el hardware gráfico moderno (y en los controladores de video), y los usuarios pueden habilitar esta tecnología de filtrado a través de la configuración del controlador o las interfaces del índice del juego.
Comparación con el algoritmo isotrópicoEl filtrado anisotrópico permite una rápida tecnología de filtrado de textura anti-aliasing, manteniendo detalles de textura nítidos en todos los ángulos de visión. La tecnología mipmap isotrópica tradicional reduce a la mitad la resolución en cada eje a medida que disminuye la resolución de cada capa. Por lo tanto, al renderizar planos horizontales en ángulos oblicuos, el resultado de la minimización dará como resultado una falta de resolución horizontal debido a la reducción de la frecuencia de la imagen en el eje vertical.
Por ejemplo, cuando se aplica un filtrado anisotrópico a una textura de 256x256, no solo se convertirá en 128x128, sino también en resoluciones no cuadradas como 256x128 y 32x128.
Con el filtrado anisotrópico mipmap, es posible detectar imágenes submuestreadas anisotrópicamente cuando la frecuencia de la imagen de la textura es diferente para cada eje de textura. De esta manera, un eje no se ve borroso por la frecuencia de pantalla del otro eje, al tiempo que se evita el aliasing.
Durante el proceso de renderizado, se pueden aplicar diferentes grados de filtrado anisotrópico, donde el grado se refiere a la relación máxima de anisotropía admitida por el proceso de filtrado. Por ejemplo, el filtrado anisotrópico 4:1 ("cuatro a uno") mejorará aún más la claridad de las texturas sesgadas más allá del rango de 2:1. En términos prácticos, esto significa que en el caso de texturas muy sesgadas, un filtro 4:1 aparecerá dos veces más nítido que un filtro 2:1.
Sin embargo, la mayoría de las escenas no requerirán un filtrado 4:1, solo los píxeles más sesgados y generalmente más alejados requerirán técnicas de filtrado más nítidas.
Esto significa que a medida que aumenta el grado de filtrado anisotrópico, habrá rendimientos decrecientes en la mejora de la calidad observada a simple vista, y solo un número relativamente pequeño de píxeles muy sesgados mostrarán texturas más claras.
El verdadero filtrado anisotrópico se realiza de forma proporcional en función del instante por píxel. En hardware de gráficos, cuando se realiza un muestreo anisotrópico, generalmente se realizan varios sondeos alrededor del punto central de la textura, en función de la forma proyectada de ese píxel. Los métodos de software anteriores utilizaban principalmente tablas de áreas sumadas. Cada sonda de filtrado anisotrópico suele ser en sí misma una muestra de mapa mip filtrada, por lo que este proceso aumenta la complejidad del muestreo.
Por ejemplo, dieciséis muestras anisotrópicas trilineales podrían requerir 128 muestras, mientras que el filtrado de mapas mip trilineales requeriría tomar cuatro muestras por mapa mip, seguidas de dieciséis muestras anisotrópicas más.
Sin embargo, no siempre se requiere tal complejidad de filtrado. Hay algunas formas de reducir la carga de trabajo del hardware de renderizado de gráficos. En hardware de gráficos, lo más común es componer valores de píxeles filtrados a partir de solo una fila de muestras de mipmap.
Rendimiento y optimizaciónLa cantidad de muestras necesarias puede hacer que el filtrado anisotrópico requiera un gran consumo de ancho de banda. Debido a que son comunes varias texturas, cada tamaño de muestra puede ser de cuatro bytes o más, por lo que cada píxel anisotrópico puede necesitar obtener 512 bytes de la memoria de textura. Desafortunadamente, las pantallas de televisión actuales pueden tener fácilmente más de dos millones de píxeles, y las velocidades de cuadros de la aplicación deseada suelen ser superiores a 60 cuadros por segundo.
Por lo tanto, los requisitos de ancho de banda para operaciones de renderizado de texturas pueden alcanzar cientos de GB por segundo, lo que no es raro cuando se trata de operaciones de filtrado anisotrópico.
Afortunadamente, hay una serie de factores que pueden mejorar el rendimiento. Las propias sondas comparten muestras de textura almacenadas en caché, tanto entre píxeles como dentro de ellos. Incluso con el filtrado anisotrópico de 16 muestras, no todas son necesarias, porque solo el relleno de píxeles distantes y sesgados será altamente anisotrópico.
En este contexto, el filtrado anisotrópico ha satisfecho nuestras exigencias de calidad de imagen en un grado sin precedentes, lo que nos hace preguntarnos: ¿hacia dónde se desarrollará la tecnología de la imagen en el futuro? ¿Se volverá más real y extraordinaria?