stringtranslate.com

Filtrado anisotrópico

Una ilustración de los métodos de filtrado de texturas que muestra una textura con mapeo MIP trilineal (izquierda) y filtrado de texturas anisotrópicas.

En gráficos por computadora 3D , el filtrado anisotrópico (abreviado AF ) [1] [2] es un método para mejorar la calidad de imagen de texturas en superficies de gráficos por computadora que se encuentran en ángulos de visión oblicuos con respecto a la cámara donde se proyecta 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" por no , "iso" por mismo , y "trópico" de tropismo , relacionado con la dirección; anisotrópico el filtrado no filtra lo mismo en todas direcciones).

Al igual que el filtrado bilineal y trilineal , el filtrado anisotrópico elimina los efectos de aliasing , [3] [4] 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. [5] 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

Un ejemplo de almacenamiento de imágenes de mapa MIP anisotrópico: la imagen principal en la parte superior izquierda va acompañada de copias filtradas y transformadas linealmente de tamaño reducido.
Mapa MIP isotrópico de la misma imagen.

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, podemos entender cómo el filtrado anisotrópico gana tanta calidad en el mapeo de texturas. [6] 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, cuando se muestrea 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 anisotrópicamente reducidas se pueden probar cuando la frecuencia de la imagen mapeada de textura 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 aún 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 filtrado anisotrópico verdadero y se usa aquí solo con fines ilustrativos. La implementación totalmente anisotrópica se describe a continuación.

En términos simples, el filtrado anisotrópico retiene 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. [7] 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. [8]

En la práctica, lo que esto significa es que en situaciones de textura muy oblicua, 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 el mayor grado de anisotropía. filtrado, 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 prueba 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 texel ) de la 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, [9] aunque Los métodos de software anteriores han utilizado tablas de áreas sumadas . [10]

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 de 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 "ensamblaje de huella", incluso cuando los detalles de implementación varían. [11] [12] [13]

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. [14]

Afortunadamente, varios factores mitigan a favor de un mejor rendimiento:

Ver también

Referencias

  1. ^ "¿Qué es el filtrado anisotrópico? - Technipages". 8 de julio de 2020.
  2. ^ Ewins, Jon P.; Waller, Marco D.; Blanco, Martín; Lister, Paul F. (abril de 2000). "Implementación de un filtro de textura anisotrópica - ScienceDirect". Computadoras y gráficos . 24 (2): 253–267. doi :10.1016/S0097-8493(99)00159-4.
  3. ^ Blinn, James F.; Newell, Martin E. (octubre de 1976). "Gráficos y procesamiento de imágenes: textura y reflejos en imágenes generadas por computadora" (PDF) . Comunicaciones de la ACM . 19 (10): 542–547. doi :10.1145/360349.360353. S2CID  408793 . Consultado el 20 de octubre de 2017 .
  4. ^ Heckbert, Paul S. (noviembre de 1986). "Estudio de mapeo de texturas" (PDF) . Aplicaciones y gráficos por computadora IEEE . 6 (11): 56–67. doi :10.1109/MCG.1986.276672. S2CID  6398235 . Consultado el 20 de octubre de 2017 .
  5. ^ "Documento técnico de Radeon" (PDF) . ATI Technologies Inc. 2000. pág. 23 . Consultado el 20 de octubre de 2017 .
  6. ^ "Capítulo 5: Texturizado" (PDF) . CS559, otoño de 2003 . Universidad de Wisconsin-Madison . 2003 . Consultado el 20 de octubre de 2017 .
  7. ^ "Filtrado anisotrópico". Corporación Nvidia . Consultado el 20 de octubre de 2017 .
  8. ^ abc "Antialiasing de textura". Tarjeta gráfica Radeon 9700 Pro de ATI . El informe técnico . 16 de septiembre de 2002 . Consultado el 20 de octubre de 2017 .
  9. ^ Olano, Marc; Mukherjee, Shrijeet; Dorbie, Angus (2001). "Texturizado anisotrópico basado en vértices". Actas del taller ACM SIGGRAPH/EUROGRAPHICS sobre hardware de gráficos (PDF) . págs. 95–98. CiteSeerX 10.1.1.1.6886 . doi :10.1145/383507.383532. ISBN  978-1581134070. S2CID  14022450. Archivado desde el original (PDF) el 14 de febrero de 2017 . Consultado el 20 de octubre de 2017 .
  10. ^ Cuervo, Franklin C. (julio de 1984). "Tablas de áreas sumadas para mapeo de texturas". Actas de la undécima conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '84 (PDF) . vol. 18. págs. 207–212. doi :10.1145/800031.808600. ISBN 0897911385. S2CID  2210332 . Consultado el 20 de octubre de 2017 .
  11. ^ Chelín, A.; Knittel, G.; Strasser, W. (mayo de 1996). "Texram: una memoria inteligente para texturizar". Aplicaciones y gráficos por computadora IEEE . 16 (3): 32–41. doi : 10.1109/38.491183.
  12. ^ Chen, Baoquan; Dachille, Frank; Kaufman, Arie (marzo de 2004). "Texturizado de muestra del área de la huella" (PDF) . Transacciones IEEE sobre visualización y gráficos por computadora . 10 (2): 230–240. doi :10.1109/TVCG.2004.1260775. PMID  15384648. S2CID  10957724 . Consultado el 20 de octubre de 2017 .
  13. ^ Lensch, Hendrik (2007). "Gráficos por computadora: teoría de muestreo y filtrado de texturas" (PDF) . Instituto Max Planck de Informática . Consultado el 20 de octubre de 2017 .
  14. ^ Mei, Xinxin; Chu, Xiaowen (8 de septiembre de 2015). "Disección de la jerarquía de memoria de la GPU mediante microbenchmarking". arXiv : 1509.02308 [cs.AR].Consultado el 20 de octubre de 2017.
  15. ^ Igehy, hombre; Eldridge, Mateo; Pie orgulloso, Kekoa (1998). "Captación previa en una arquitectura de caché de texturas". Taller de Eurographics/SIGGRAPH sobre hardware gráfico . Universidad Stanford . Consultado el 20 de octubre de 2017 .

enlaces externos