Filtrado anisotrópico
En los gráficos 3D por computadora, el filtrado anisotrópico (abreviado AF por sus siglas en inglés: Anisotropic filtering) es un método para mejorar la calidad de una textura en una superficie que está vista desde un ángulo oblicuo con respecto al ángulo de proyección de la textura sobre una superficie.
Así como el filtrado bilineal y el filtrado trilineal, el filtrado anisotrópico elimina el efecto aliasing, pero difiere de los anteriores métodos en que reduce la difuminación y conserva detalles con ángulos de vista extremos.
El filtrado de anisotropía es relativamente pesado (principalmente por el uso de memoria y por cierto grado de procesamiento computacional) y solo pasó a ser una característica estándar de las tarjetas gráficas comerciales a finales de la década de 1990. Actualmente el filtrado anisotrópico es común en las placas modernas y se puede activar y configurar tanto por usuario desde la configuración del driver, o bien por aplicaciones gráficas o videojuegos utilizando herramientas de programación.
Una mejora a los mapas MIP
[editar]Para comparar el filtrado anisotrópico y apreciar como gana tanta calidad de textura con respecto a la utilización de los mapas MIP, se puede analizar el funcionamiento de los mapas RIP por la proximidad al filtrado anisotrópico.
Cuando se necesita dibujar una textura que está oblicua con respecto al ángulo de vista, los mapas MIP nos van a dar una imagen con una calidad insuficiente de frecuencia horizontal a causa de la reducción de la frecuencia vertical (ver imagen de la derecha). Esto es a causa de que en el mapeo MIP, cada nivel de MIP es isométrico, es decir una textura de 256x256 es reescalada a 128x128, luego a 64x64, etc. es decir, el cambio de resolución afecta a ambos ejes simultáneamente. Entonces, al mostrar una textura en un plano inclinado y para evitar el aliasing en un eje, el otro eje va a ser también bajado de frecuencia, lo que lleva a que la textura quede borrosa.
Con los mapas RIP, además de que las imágenes son reescaladas isometricamente, también son reescaladas por cada eje por separado (256x128, 32x128, etc.). Estas imágenes reescaladas por cada eje por separado se las puede aplicar cuando la frecuencia de la imagen es diferente para cada eje, y por lo tanto, un eje no necesita ser difuminado, y aun así evita el aliasing. Aunque de todas formas, el mapeo RIP solo soporta texturas alineadas a los ejes, por lo que todavía sería un problema la representación de texturas que no estén alineadas a los ejes.
En otros términos, el filtrado anisotrópico conserva la definición de una textura que normalmente pierde calidad por los intentos de los mapas MIP de evitar el aliasing. Se puede decir que el filtrado anisotrópico conserva la calidad de la imagen desde cualquier ángulo de vista y proporcionando un filtrado rápido de antialiasing a la textura.
Grado de anisotropía soportada
[editar]Diferentes grados de filtrado anisotrópico pueden ser aplicados durante la renderización, la implementación del hardware establecerá el límite. Dicho grado se refiere a la relación máxima de anisotropía soportada por el proceso de filtrado. Por ejemplo 4:1 de filtrado anisotrópico (pronunciado 4 a 1) va a continuar conservando detalles en texturas más oblicuas superiores al ranco soportado por 2:1.
En la práctica esto significa que en texturas muy inclinadas, un filtrado 4:1 dejará la imagen doblemente más definida que con un filtrado 2:1 (mostrará el doble de frecuencias en relación con 2:1). Sin embargo, no siempre se necesitará un filtrado 4:1, solo los pixeles más distantes y oblicuos requerirán del filtrado. Esto significa que cuanto más alto sea el grado de filtrado, habrá menos imágenes/píxeles que lo requerirán, y el resto bastará con grados menores de filtrado, por lo que el observador notaría poca diferencia de calidad gráfica entre diferentes grados de filtrado.
Cuando uno compara el resultado de renderizar una imagen con una relación 8:1 de anisotropía y con 16:1, solo relativamente pocos pixeles (los más distantes y oblicuos) se verán más definidos en 16:1 que en 8:1, y la frecuencia de esos pocos píxeles afectados por 16:1 solo será el doble que en 8:1. La reducción en el rendimiento también disminuye ya que menos píxeles son los que requerirán del alto grado de anisotropía.
Al final, será la complejidad del hardware contra los rendimientos decrecientes los que generará el límite superior a ser establecido para la calidad del filtrado en los diseños de hardware. Las aplicaciones y los usuarios son libres de ajustar el equilibrio mediante la configuración del driver y del software.
Implementación
[editar]El verdadero filtrado anisotrópico escanea la textura al vuelo (en el momento) por cada píxel para cualquier orientación de anisotropía.
En los procesadores gráficos, por lo general cuando la textura es mostrada anisotrópicamente, se realizan varios escaneos de la textura alrededor del centro, pero se realiza de acuerdo con un patrón de mapeo acorde a la forma proyectada de la textura.
Cada sondeo del filtrado es usualmente un filtro MIP, el cual añade más muestras al proceso. Dieciséis muestras de anisotropía trilineal pueden requerir 128 muestras de la textura almacenada, ya que el filtrado MIP trilineal requiere tomar 8 muestras y luego el filtrado anisotrópico (de grado 16) necesitará tomar 16 muestras por cada una de las anteriores.
Sin embargo, este nivel de filtrado no se necesita todo el tiempo. Suele haber métodos que reducen la cantidad de trabajo al procesador de gráficos.