Filtrado anisotrópico

En gráficos por computadora 3D, el filtrado anisotrópico (abreviado AF) es un método para mejorar la calidad de imagen de las texturas en superficies de gráficos por computadora que se encuentran en ángulos de visión oblicuos con con respecto a la cámara donde la proyección de la textura (no el polígono u otra primitiva en la que se representa) parece ser no ortogonal (de ahí el origen de la palabra: "an" para no , "iso" para mismo y "trópico" del tropismo, relacionado con la dirección; el filtrado anisotrópico no filtra igual en todas las direcciones).
Al igual que el filtrado bilineal y trilineal, el filtrado anisotrópico elimina los efectos de alias, pero mejora estas otras técnicas al reducir el desenfoque y preservar los detalles en ángulos de visión extremos.
El filtrado anisotrópico es relativamente intensivo (principalmente ancho de banda de memoria y hasta cierto punto computacional, aunque se aplican las reglas estándar de compensación espacio-tiempo) y solo se convirtió en una característica estándar de las tarjetas gráficas de consumo a fines de la década de 1990. El filtrado anisotrópico ahora es común en el hardware de gráficos moderno (y en el software de controlador de video) y lo habilitan los usuarios a través de la configuración del controlador o las aplicaciones de gráficos y videojuegos a través de interfaces de programación.
Una mejora en el mapeo MIP isotrópico


A partir de este momento, se supone que el lector está familiarizado con el mapeo MIP.
Si tuviéramos que explorar un algoritmo anisotrópico más aproximado, el mapeo RIP, como una extensión del mapeo MIP, podríamos entender cómo el filtrado anisotrópico gana tanta calidad en el mapeo de texturas. Si necesitamos texturizar un plano horizontal que está en un ángulo oblicuo con respecto a la cámara, la minificación tradicional del mapa MIP nos daría una resolución horizontal insuficiente debido a la reducción de la frecuencia de la imagen en el eje vertical. Esto se debe a que en el mapeo MIP cada nivel de MIP es isotrópico, por lo que una textura de 256 × 256 se reduce a una imagen de 128 × 128, luego a una imagen de 64 × 64 y así sucesivamente, por lo que la resolución se reduce a la mitad en cada eje simultáneamente, por lo que una textura de mapa MIP La sonda a una imagen siempre tomará muestras de una imagen que tenga la misma frecuencia en cada eje. Por lo tanto, al muestrear para evitar el alias en un eje de alta frecuencia, los otros ejes de textura se reducirán de manera similar y, por lo tanto, potencialmente borrosos.
Con el filtrado anisotrópico del mapa MIP, además de reducir la resolución a 128 × 128, las imágenes también se muestrean a 256 × 128 y 32 × 128, etc. Estas imágenes reducidas anisotrópicamente se pueden probar cuando la textura La frecuencia de la imagen mapeada es diferente para cada eje de textura. Por lo tanto, no es necesario que un eje se desenfoque debido a la frecuencia de pantalla de otro eje, y aún así se evita el aliasing. A diferencia del filtrado anisotrópico más general, el mapeo MIP descrito a modo de ilustración está limitado a que solo admite sondas anisotrópicas que están alineadas con ejes en el espacio de textura, por lo que la anisotropía diagonal todavía presenta un problema, aunque los casos de uso real de textura anisotrópica comúnmente tienen tales mapeos en el espacio de pantalla..
Aunque las implementaciones son libres de variar sus métodos, el mapeo MIP y las restricciones de alineación de ejes asociados significan que no es óptimo para un verdadero filtrado anisotrópico y se usa aquí solo con fines ilustrativos. La implementación totalmente anisotrópica se describe a continuación.
En términos sencillos, el filtrado anisotrópico conserva la "nitidez" de una textura que normalmente se pierde por los intentos de la textura del mapa MIP de evitar el alias. Por lo tanto, se puede decir que el filtrado anisotrópico mantiene detalles de textura nítidos en todas las orientaciones de visualización y, al mismo tiempo, proporciona un filtrado de texturas suavizado rápido.
Grado de anisotropía admitido
Se pueden aplicar diferentes grados o proporciones de filtrado anisotrópico durante el renderizado y las implementaciones actuales de renderizado por hardware establecen un límite superior en esta proporción. Este grado se refiere a la relación máxima de anisotropía soportada por el proceso de filtrado. Por ejemplo, el filtrado anisotrópico 4:1 (pronunciado “4 a 1”) continuará afinando texturas más oblicuas más allá del rango de nitidez 2:1.
En la práctica, lo que esto significa es que en situaciones de textura muy oblicuas, un filtro 4:1 será dos veces más nítido que un filtro 2:1 (mostrará frecuencias el doble que el filtro 2:1). Sin embargo, la mayor parte de la escena no requerirá el filtro 4:1; sólo los píxeles más oblicuos y normalmente más distantes requerirán un filtrado más nítido. Esto significa que a medida que el grado de filtrado anisotrópico continúa duplicándose, hay rendimientos decrecientes en términos de calidad visible con cada vez menos píxeles renderizados afectados, y los resultados se vuelven menos obvios para el espectador.
Cuando se comparan los resultados renderizados de una escena filtrada anisotrópicamente 8:1 con una escena filtrada 16:1, sólo unos pocos píxeles muy oblicuos, principalmente en geometrías más distantes, mostrarán texturas visiblemente más nítidas en la escena con la mayor resolución. grado de filtrado anisotrópico, y la información de frecuencia en estos pocos píxeles filtrados 16:1 solo será el doble que la del filtro 8:1. La penalización en el rendimiento también disminuye porque menos píxeles requieren capturas de datos de mayor anisotropía.
Al final, es la complejidad adicional del hardware frente a estos rendimientos decrecientes lo que hace que se establezca un límite superior en la calidad anisotrópica en un diseño de hardware. Las aplicaciones y los usuarios pueden entonces ajustar esta compensación mediante la configuración del controlador y el software hasta este umbral.
Implementación
El verdadero filtrado anisotrópico sondea la textura anisotrópicamente sobre la marcha por píxel para cualquier orientación de anisotropía.
En el hardware de gráficos, normalmente cuando la textura se muestrea anisotrópicamente, se toman varias sondas (muestras de textura en textura) alrededor del punto central, pero en un patrón de muestra mapeado de acuerdo con la forma proyectada de la textura en ese píxel, aunque Los métodos de software anteriores han utilizado tablas de áreas sumadas.
Cada sonda de filtrado anisotrópico suele ser en sí misma una muestra de mapa MIP filtrada, lo que añade más muestreo al proceso. Dieciséis muestras anisotrópicas trilineales pueden requerir 128 muestras de la textura almacenada, ya que el filtrado de mapas MIP trilineales debe tomar cuatro muestras multiplicadas por dos niveles de MIP y luego el muestreo anisotrópico (con 16 toques) debe tomar dieciséis de estas sondas filtradas trilineales.
Sin embargo, este nivel de complejidad de filtrado no es necesario todo el tiempo. Existen métodos comúnmente disponibles para reducir la cantidad de trabajo que debe realizar el hardware de reproducción de video.
El método de filtrado anisotrópico implementado más comúnmente en hardware de gráficos es la composición de los valores de píxeles filtrados de una sola línea de muestras de mapas MIP. En general, el método para construir un filtro de textura resultante de múltiples sondas que llenan un muestreo de píxeles proyectado en el espacio de textura se denomina "conjunto de huellas", incluso cuando los detalles de implementación varían.
Rendimiento y optimización
El recuento de muestras requerido puede hacer que el filtrado anisotrópico consuma mucho ancho de banda. Son comunes múltiples texturas; cada muestra de textura podría tener cuatro bytes o más, por lo que cada píxel anisotrópico podría requerir 512 bytes de la memoria de textura, aunque la compresión de textura se usa comúnmente para reducir esto.
Un dispositivo de visualización de vídeo puede contener fácilmente más de dos millones de píxeles y las velocidades de fotogramas deseadas para la aplicación suelen ser superiores a 60 fotogramas por segundo. Como resultado, el ancho de banda de memoria de textura requerido puede crecer hasta alcanzar valores grandes. Rangos de cientos de gigabytes por segundo de ancho de banda de canalización para operaciones de renderizado de texturas no son inusuales cuando se trata de operaciones de filtrado anisotrópico.
Afortunadamente, hay varios factores que mitigan a favor de un mejor rendimiento:
- Las propias sondas comparten muestras de textura caché, tanto interpixel como intrapixel.
- Incluso con un filtro anisotrópico de 16 puntos, no todos los 16 grifos son siempre necesarios porque sólo distante altamente oblicua los rellenos de pixel tienden a ser altamente anisotrópicos.
- El relleno de pixel altamente anisotrópico tiende a cubrir pequeñas regiones de la pantalla (es decir, generalmente bajo 10%)
- Los filtros de magnificación de textura (como regla general) no requieren filtración anisotrópica.
Contenido relacionado
Tarjeta perforada
CPython
Arquitectura Harvard