Paper Tecnicas de Antialiasing - Copia

18
TÉCNICAS DE ANTIALIASING

description

Un resumen con algunas técnicas de antialiasing, comenzando desde las técnicas mas básicas hasta algunas mas complejas y modernas

Transcript of Paper Tecnicas de Antialiasing - Copia

Paper Title (use style: paper title)

TCNICAS DE ANTIALIASINGResumenEn el siguiente documento se describen y analizan las diferentes tcnicas de antialiasing implementadas por diferentes fabricantes de hardware y que son usadas de manera regular en los procesadores grficos actuales.ndicesAntialising; Computacin Grfica; GPU.I. INTRODUCCIN Un problema fundamental en la tecnologa digital radica en el hecho de que los fenmenos naturales suelen ser, en la mayora de ocasiones, elementos analgicos continuos de resolucin infinita y deben ser representados como elementos digitales de resolucin finita para que puedan ser almacenados y procesados por mquinas.

La tecnologa digital solamente puede aproximar las seales analgicas a travs de un proceso llamado "muestreo". Este proceso consiste en almacenar los valores de la seal cada cierto intervalo de tiempo. Cuanto ms frecuentemente se tomen estas muestras ms fiel ser la representacin que obtengamos de la seal original. De la eleccin de una frecuencia de muestreo adecuada dependern muchos factores como el tamao de los datos, la fidelidad de la representacin, etc.

El teorema de Nyquist determina que, para no perder informacin, la frecuencia de muestreo debe ser el doble de la frecuencia de la seal a muestrear. Si se muestrea una seal por debajo de la frecuencia de Nyquist se produce un efecto llamado aliasing.

Bsicamente el aliasing consiste en la degradacin de un sonido, imagen, o cualquier otro tipo de seal, a causa de una baja frecuencia de muestreo. De aqu nace la definicin de antialiasing, concepto que se le da a los procesos que permiten minimizar el aliasing cuando se desea representar una seal de alta resolucin en un sustrato de ms baja resolucin.

II. ANTECEDENTES Las primeras menciones del aliasing se empezaron a dar entre los aos 70 y 80s, perodo en el cual podemos observar algunas publicaciones en las que se empieza a mencionar la problemtica del aliasing. Algunos defectos, como los bordes dentados, han sido durante mucho tiempo una molestia en imgenes sombreadas generados digitalmente. Aunque el aumento de la resolucin o desenfoque la pantalla puede atenuarlos, la comprensin de estos defectos conduce a mtodos ms eficaces. [6]. Tambin se empiezan a crear diversas tcnicas para combatir esta problemtica como el algoritmo de la superficie escondida con antialiasing en el que se describe una mejora para los filtros de la poca [7] Una solucin correcta para los filtros requieren un algoritmo de la superficie oculta en cada pxel. Si los datos en el pxel se presentan como una lista ordenada por profundidad de polgonos, a continuacin la intensidad visible promedio se puede encontrar utilizando polygon clipper en una manera similar a la empleada por dos algoritmos de superficie oculta conocidos. Todos los polgonos en un pxel se recortan contra un poco de borde unclipped frontal en dos listas de polgonos. El algoritmo se introduce de forma recursiva con cada nueva lista y se detiene cuando el polgono frontal se recorta en todos los lados, oscureciendo de este modo la parte de atrs del poligono. Los colores de la zona ponderada se devuelven como el valor que se aade a las otras piezas en el pxel.III. TCNICAS DE ANTIALISINGA. Muestreo EstocsticoRob Cook propuso el muestreo estocstico la cual es una tcnica de tipo Monte Carlo. La imagen se muestrea en lugares no uniformemente espaciados (en contraste con otras tcnicas que muestreaban intervalos regularmente espaciados). El efecto de esto es que las bajas frecuencias espurias se sustituyen por ruido aleatorio que es ms fcil ignorar para nuestro sistema visual.El aliasing no es evitable con intervalos de muestreo uniformes a menos de que se pueda garantizar que la funcin no contenga frecuencias superiores al lmite de Nyquist. Y qu hay de nuestros ojos? Ellos tienen un nmero finito de foto receptores pero no percibimos el efecto aliasing. Los monos Rhesus no tienen una distribucin de foto receptores uniforme en sus ojos, sino una distribucin de Poisson, esta es una distribucin al azar pero en un mono tambin existe la restriccin de una determinada distancia mnima entre dos foto receptores cualesquiera. La transformada de Fourier de esta distribucin retorna un fuerte valor en f = 0, y el efecto dado de esta distribucin es que no existe aliasing pero que las altas frecuencias son convertidas en ruido. As, hemos evolucionado para manejar las componentes de alta frecuencia como el ruido y por lo tanto ignorarlo. Para emular la distribucin de disco de Poisson realizamos jittering (fluctuacin) o agregamos ruido a la ubicacin de la muestra, esta es una forma de muestreo estocstico. [1]Los pasos para realizar un muestreo estocstico son sencillos, primero se debe obtener un muestreo de la imagen, asignando a cada punto un cambio aleatorio utilizando patrones cuasi-aleatorios como por ejemplo los patrones de Poisson, los discos de Poisson o el patrn de Jitter y luego se debe aplicar un filtro a la muestra resultante a fin de obtener la intensidad de los pxeles. El cambio que se realiza introduce ruido en la imagen lo que permite que se disminuya el efecto de aliasing.

Figura 1: A la izquierda una distribucin con un patrn de muestras ubicadas aleatoriamente. A la derecha la transformada de Fourier del patrn de la izquierdaB. A-BufferA-Buffer, tambin como conocido como anti-alias, promediado de rea o buffer de acumulacin, es un mecanismo general de superficies ocultas adecuado para computadoras de media escala de memoria virtual.

Resuelve la visibilidad entre una coleccin arbitraria de objetos opacos, transparentes y que se intersectan entre s. Usando un filtro de Fourier fcil de computar, aumenta la resolucin efectiva de la imagen sobre el Z-Buffer, con un moderado aumento en el costo. [2]

El mtodo de A-Buffer es un descendente del ya conocido Z-Buffer el cual brinda resultados de buena calidad en tiempos moderados. Ayuda en el uso de tcnicas de visibilidad y apoya las primitivas de modelado geomtrico como los polgonos, parches, fractales, etc. Ayuda tambin a manejar la transparencia y superficies de interseccin (y superficies de interseccin transparentes).

El algoritmo de A-Buffer de Loren Carpenter [CARP84] aborda el problema del aliasing mediante la aproximacin de la zona objeto-precisin por pxel de Catmull muestreando con operaciones de imagen-precisin por pixel en una cuadrcula de sub-pxeles. Los polgonos son primero procesados en un orden de escaneo por lneas recortndolos a cada cuadro de pixel que estos cubren. Esto resulta en una lista de fragmentos de polgonos recortados que corresponden a cada cuadro de pixel. Cada fragmento tiene 4 por 8 mscaras de bit de partes del pxel que este cubre. [3]

El bit de mascara para un fragmento es procesado aplicando el operador lgico XOR a las mscaras que representan cada uno de los bordes de los fragmentos. Cuando todos los polgonos que intersectan a un pixel hayan sido procesados entonces el promedio del rea de los colores de la superficie visible del pixel es obtenida seleccionando fragmentos de orden de profundidad y usando sus bits de mscara para recortar aquellos con los fragmentos ms lejanos.

Las mscaras de bit pueden ser manipulados eficientemente con operaciones booleanas. Por ejemplo, dos mscaras de fragmento de bit se pueden sumar para determinar la coincidencia entre ellas. El algoritmo A-Buffer guarda slo una pequea cantidad de informacin adicional con cada fragmento. Por ejemplo, incluye la medida Z del fragmento pero no hay informacin de qu parte del fragmento se asocia con estos valores de Z. Por lo tanto el algoritmo debe hacer suposiciones acerca de la geometra de sub-pxeles en los casos en que las mscaras de fragmento de bit se superpongan en Z.

Figura 2: La imagen de la izquierda muestra polgonos intersectados sin antialiasing. La imagen de la derecha muestra polgonos intersectados usando tecnologa A-Buffer.

C. Super-sampling

Las tcnicas de antialiasing implican muestrear el contenido de cada pxel en mltiples lugares, lo que significa que el color se calcula en ms de un lugar dentro de la zona cubierta por el pixel. Los resultados de estas muestras se combinan para determinar el color final del pxel. Estas muestras son esencialmente pxeles adicionales, utilizados para aumentar la resolucin efectiva de la imagen que se mostrar. Si el borde de un objeto cae parcialmente dentro del rea de un pxel, su color y el color de otro objeto, que llena parcialmente el rea del pixel, pueden ser usados para calcular el color final a ser utilizado. El resultado es una transicin ms suave de una lnea de pxeles a otra a lo largo de los bordes de los objetos, donde el aliasing es ms evidente.

Super-sampling es una tcnica de antialiasing que es simplemente un mtodo de fuerza bruta que se utiliza en muchos procesadores de grficos disponibles en el mercado. Un procesador de grficos que utiliza super-sampling o super-muestreo renderiza la imagen de la pantalla a una resolucin mucho ms alta que la del modo de visualizacin actual y luego escala y filtra la imagen a la resolucin final antes de que esta esta sea enviada al monitor. Existe una gran variedad de mtodos para realizar esta operacin, pero cada uno requiere que el procesador de grficos despliegue tantos pxeles adicionales sean requeridos por el mtodo de super-sampling. Adicionalmente, debido a que el procesador de grficos est renderizando ms pxeles de los que se desplegarn, se debe escalar y filtrar aquellos pxeles a la resolucin final, la cual ser menor. Estos procedimientos reducen considerablemente el rendimiento.

El grado de la escala en un modo de super-sampling especfico es a menudo identificado por la relacin de pxeles de la imagen sin escala al nmero de pxeles de la salida escalada. Por ejemplo, un super-sampling de 2x escribe el doble de pxeles al buffer de fotogramas que se requeriran sin antialiasing. 4x escribe cuatro veces ms pxeles. Como se puede deducir, el super-sampling provoca una cada sustancial en el rendimiento, medido por el framerate. Si el procesador de grficos renderiza cuatro veces ms pxeles entonces el framerate ser un cuarto de lo que era en modo de visualizacin estndar. De hecho, el descenso del rendimiento puede ser incluso peor que los x mltiplos de super-sampling configurados debido al proceso de escalamiento previamente mencionado. [4]

Figura 3: Captura de pantalla del videojuego Half Life 2: Lost Coast. El lado izquierdo de la imagen muestra un renderizado sin antialiasing mientras el lado derecho muestra un renderizado con super-sampling.

Figura 4: Grfico de barras donde se evidencia la caida de fotogramas por segundos al activar super-sampling.D. Multi-sampling

El multi-sampling es una tcnica ms sofisticada que el super-sampling que implica una salida de mayor calidad que un renderizado estandar con un rendimiento mucho mayor que el del super-sampling; un escenario de ganar/ganar en comparacin con cualquier alternativa. El multi-sampling requiere una GPU ms sofisticada, sin embargo hoy en da, ya muchos procesadores de grficos soportan esta tcnica. [4]

La innovacin que aporta el multi-sampling respecto al super-sampling es que solo se calcula un valor de la textura por pixel, en vez de un valor por cada subpixel como en el super-sampling. Mientras que en el super-sampling se renderiza la imagen al completo a mayor resolucin de la original, en el multi-sampling solo se hace para la geometra, no para las texturas. Esto ahorra tanto tasa de relleno como ancho de banda.

El ahorro es menor en ancho de banda debido a que aunque solo se genera un valor de color por pixel, este debe ser almacenado por separado para cada subpixel.

Figura 5: La esfera de la izquierda est renderizada sin tcnica de antialiasing mientras la esfera de la derecha est rendelizada usando la tcnica multi-sampling 4x.

Figura 6: Bordes de un tringulo. El lado izquierdo de la imagen sin tcnica de antialiasing, el lado derecho usando multi-sampling 8x.E. SMOOTHVISIONSMOOTHVISION es una tecnologa antialising desarrollada por el fabricante de hardware ATI. Con la introduccin de esta tecnologa al mercado, la compaa asegura mantener un alto nivel de rendimiento en grficos mientras se logran ms detalles y realismo en los mismos.Es una tcnica de super-sampling que da a los usuarios un gran nmero de opciones de muestreo, variando el nmero de muestras tomadas por pixel y cambiando la tcnica de procesamiento del muestreo. La implementacin de ATI de antialiasing provee una mejora considerable sobre otras plataformas de antialiasing encontradas en otras GPUs. En lugar de desplazar cada pixel en la misma direccin, grupos de pixeles pueden ser individualmente desplazados en diferentes direcciones. Esta tcnica se puede utilizar para generar una distribucin ms aleatoria de muestras de pixeles, lo que conlleva a una calidad de suavizado de imgenes superior.

SMOOTHVISION usa un alto nmero de 16 bloques de muestras que cubren un variable nmero de pxeles, el cual es determinado por el nivel de antialiasing que se desea implementar. Cada pxel dentro de cada grupo de las 16 muestras posee sus posiciones actuales de muestreo seleccionadas de una tabla jitter pre-programada de 8 muestras. Ver Fgura 7.

Mientras el nivel de antialising sea aumentado, cada bloque de 16 muestras cubrir en nmero de pxeles ms pequeo. Por ejemplo en el caso de antialising 2x, un total de 8 pxeles estarn cubiertos por el grupo de 16 muestras, y en el caso de 4x, un total de 4 pxeles son muestreados 4 veces cada uno. Ver Figura 8 para un ejemplo de SMOOTHVISION 4x.

Un muestreo de pxeles sin orden provee una solucin ms ptima, ya que para el ojo humano es mucho ms difcil distinguiendo artefactos en una imagen resultante sin aliasing, siendo menos sensible a los patrones de muestreo sin orden.

Figura 7: 8 posibles ubicaciones de muestras para un nico pixel.

Figura 8: Posibles ubicaciones de muestras para una configuracin de SMOOTHVISION 4x.

Figura 9: Captura de pantalla del videojuego Quake 3. La imagen de la izquierda usa una tcnica multi-sampling 4x y la imagen de la derecha usa la tcnica SMOOTHVISION 2x. Note la calidad superior de texturas y mejorados bordes en la imagen derecha, todo esto proporcionando un rendimiento mejor que el mtodo multi-sampling 4x.F. Fragment AantialiasingEl Antialiasing Fragmentado de 16x de Matrox (FAA-16x) fue un enfoque revolucionario para antialiasing, ofreca calidad sper sampling de 16x para entregar una representacin 3D de alta calidad. Solo realiza el antialiasing en los pxeles de borde. FAA-16x es capaz de proporcionar un gran nivel de calidad, afectando muy ligeramente el rendimiento. [8]

Figura 10. Proceso paso a paso del fragment antialiasing.Identifica fragmentos inspeccionando los bordes de los tringulos en los pxeles con 16x de precisin sub-pixel, es decir, 16 muestras por pxel, para determinar la cobertura de este. Esta informacin se utiliza entonces para determinar si el pixel debe ser desechado, colocado en la memoria intermedia de trama, o se enva a la unidad de FAA-16x. Todos los pxeles no fragmentados se escriben inmediatamente en el frame buffer, mientras que todos los datos del fragmento se recogen y almacena en un fragment buffer. El fragment buffer mantiene listas de fragmentos, que contienen informacin sobre un pxel particular. Especficamente, la lista de fragmentos almacena la cobertura y la informacin de color sub-pxel para cada uno de los bordes que se cruzan en el pxel. La unidad FAA-16x continuamente actualiza el buffer de fragmento para determinar la representacin final de fragmentos de escenas reales. Los fragmentos se combinan entonces y los pxeles finales se escriben en la memoria intermedia del frame para completar la trama. La Figura 10 ilustra este proceso.

G. Quincunx Aantialiasing

El Quincunx de NVIDIA hace el filtrado en la etapa donde el buffer se rasteriza en la pantalla. La escena 3D se hace normalmente, pero el Pixel Shader almacena cada pxel dos veces, en dos lugares diferentes del frame buffer. Esto no necesita mucho ms poder de renderizacion que no usar alguna tcnica de Antialiasing, aunque si requiere dos veces el ancho de banda de memoria en la operacin de escritura de pxel al final del proceso de renderizado. [9]

Figura 11. Peso de las muestras en Quincunx (izquierda) y desplazamiento de los pixeles en el mezclado (centro y derecha).

En el momento en el que el ltimo pxel de la trama se ha renderizado, el HRAA (hardware motor de GeForce3) desplaza virtualmente la imagen medio pxel en direccin X e Y como se ve en la figura 11 en la derecha. Esto crea el efecto de que cada pxel de la 'primera' muestra est rodeado por cuatro de los pxeles de la 'segunda', finalmente se realiza el mezclado o interpolado y se crea la imagen sin el aliasing. Los pesos de las muestras en cada pxel se pueden observar en la Figura 11 en la izquierda, un octavo para cada una de las esquinas y un medio para el pxel del centro.

Figura 12. Comparacin de calidad de las tcnicas de antialiasing

En la figura 12 podemos ver la comparacin entre una imagen sin ninguna tcnica de antialiasing, multisampling 2x, 4x, y el Quincunx que ofrece una calidad cercana a multisampling 4x con un costo similar al 2x.H. Accuview

El motor Accuview [10] mejora la tecnologa de multisampling de NVIDIA proporcionando una variedad de modos multi muestreo. Estos modos incluyen 2x, 4x, QUINCUNX, y un nuevo modo 4XS que ofrece una mejor calidad en la cobertura subpxel para una mejor textura. Adems, Accuview incorpora filtrado anisotrpico para imgenes ms detalladas. La idea bsica del Accuview es muy parecida al Quincunx pero con una mejora en el muestreo del pixel, como se puede ver en la figura 13 se toman las muestras ms centradas en el pxel en lugar de hacerlo en las esquinas. Adems detrs del muestreo mltiple se inserta la inteligencia antialiasing (que est dentro del ncleo de la GPU) en el hardware. Esto hace que el GPU sea ms complejo, pero recompensa al usuario final con imgenes de mayor calidad y un rendimiento ms rpido

Figura 13. Muestreo en el Quincunx (izquierda) y muestreo del Accuview (derecha).

Esta tcnica fue abordada desde el Geforce 4, y su principal caracterstica fue la de proveer a la GPU del hardware necesario para procesar varias muestras en tiempo real, es decir, sin degradar el rendimiento.Este enfoque fue revolucionario por su equilibrado entre la calidad y el rendimiento, pero Accuview va incluso un paso ms adelante con las nuevas posiciones de muestreo en el pxel. En multisampling, el txel tomado para una muestra de subpixel dada se calcula y se hace referencia como si fuera a ser colocado en el centro del pxel. As, mientras la ubicacin 1 de la Figura 13 de la izquierda, contiene un txel que coincide exactamente con su ubicacin, la ubicacin 2 est desactivada por cierta distancia del txel que le corresponde. Esto da lugar a un posible error de color; dependiendo de la escala de la textura a primitivas (relacin Txel a pxel), el error podra ser muy grande, por esta razn se utiliza una nueva distribucin de las muestras del Accuview en comparacin a las del Quincunx.I. Filtro Anisotrpico

Es una tcnica de filtrado de texturas avanzada que mejora la calidad de imagen para las escenas con objetos que se extienden desde el primer plano hasta el fondo. El filtrado anisotrpico proporciona la capacidad de elegir la escala entre un mapa de textura y la primitiva en que se proyecta. [10]

Figura 14. Distintos grados de Anisotropa, desde ninguna anisotropa hasta los 16x.

En grficos 3D, el mapa de textura para una primitiva dado se elige en funcin del tamao de la primitiva y la escala resultante. Idealmente, la escala es 1:1, de manera que cada pxel de una primitiva recibe un txel. Si el mapa de textura es demasiado grande, habr problemas de calidad en la seleccin del txel adecuado, lo que resulta en una imagen con aliasing. Por el contrario, si el mapa de textura es demasiado pequeo, la textura mapeada a la primitiva se ver en bloques y posterizada. La solucin genrica para esto es crear mltiples mapas (llamados mapas MIP) de una textura. Los mapas MIP de la textura se crean en varios tamaos y resoluciones (usualmente de potencias de 2). Dependiendo de donde en el espacio 3D se renderiza y se muestra en la pantalla, la textura se ajusta y se ve mejor.El filtro intenta desplegar de forma ms precisa y detallada los mapas de textura de objetos cuya posicin con respecto al observador se encuentra casi paralela, por lo cual se percibe un efecto de distorsin a medida que aumenta la profundidad del objeto. En la figura 14 se puede observar la textura vista desde un ngulo casi paralelo y la mejora que se consigue al aplicar el filtro en distintos grados de anisotropa ninguna, 2x, 4x, 8x y por ltimo la ms costosa y con ms calidad la de 16x.

Figura 15. Anisotropa de 8x y 16x comparadas con el trilinear.

Por ejemplo en la Figura 15, cuando uno compara el resultado de renderizar una imagen con una relacin 8:1 de anisotropa a 16:1, slo los pocos pxeles ms distantes y oblicuos se vern ms definidos en 16:1 que en 8:1, el resto de los pixeles se ver igual que en la 8:1.

J. Intellisample

Es una tcnica de NVIDIA usada a partir del Geforce serie 6, de filtrado anisotrpico, ms moderna que usa correccin gamma. Contrariamente a lo que un monitor de computadora muestra o cmo el ojo humano percibe, los programas de grficos generalmente asumen un espacio de color lineal. La correccin gamma tiene en cuenta laforma tan distinta de percibir la luz que tiene el ojo humano, y suaviza enormemente las transiciones de los bordes para hacerlas ms naturales. [11]

Figura 16. Imagen mientras se le est realizando la correccin Gamma.

Esta arquitectura d NVIDIA incluye la tecnologa de compresin de color implementado por hardware. Los procesadores NVIDIA Geforce FX emplean una forma patentada avanzada de compresin de datos sin prdidas, con una proporcin de 4:1 de compresin para informacin de color. Esta solucin de compresin de color nica se implementa en hardware y es completamente transparente a las aplicaciones, tanto con la compresin y como para la descompresin que tiene lugar en tiempo real. No hay reduccin en la calidad de la imagen o prdida de precisin. El resultado de esta tecnologa NVIDIA es un aumento dramtico en eficiencia de la memoria y el rendimiento general del sistema es mejorado. Para el usuario, esto significa que la velocidad de antialiasing se mejora hasta el punto donde esencialmente muchos de los modos de antialiasing son libres con casi ninguna prdida asociada de rendimiento.En la Figura 16 podemos ver en la derecha la imagen con correccin gamma.

Ofrece una variedad de tcnicas de filtrado de textura de adaptacin que le da a los usuarios ms opciones para mejorar la calidad de su imagen sin obligarlos a renunciar a la velocidad de fotogramas para conseguirlo. Estas tcnicas adaptativas requieren el hardware para supervisar tanto la geometra y el contenido de la textura continua, como para hacer intercambios inteligentes que mejoran el rendimiento, y no producirn defectos visuales. Tiene adems una flexibilidad que hace que se ajuste automticamente el nmero y tipo de muestras que se necesita para las operaciones de texturizacin sobre una base de pixel por pixel. Estos algoritmos son capaces de seleccionar de forma inteligente los niveles de txel y filtro para trilinear as como modos de filtrado anisotrpico. Alternativamente, el usuario puede optar por utilizar la configuracin ms conservadora y saber que todo el filtrado de texturas se hace de manera tradicional.

IV. ANTIALIASING POST-PROCESAMIENTO El antialiasing Post-Proceso comenz con el Morphological Antialising el cual es una tcnica que fue originalmente diseada por Intel, y esta demostr que el aliasing en las imgenes puede ser casi totalmente eliminado en post-proceso, es decir, una vez que la imagen ya ha sido generada. Este mtodo funciona bastante bien pero no puede resolver algunos casos como: Si los contenidos son muy pequeos (Ejemplo. Lneas en una Maya).

Si el contenido se mueve lentamente.

Si el contenido originalmente deba tener esquinas dentadas.

Resolver los problemas en etapa de Post-procesamiento es tentador porque este no aade complejidad adicional y puede ser optimizado independientemente de los pasos de rendering de la imagen.

Las tcnicas de post-procesamiento son bastante complicadas, sobretodo el caso del MLAA, en donde su parte ms compleja es la del algoritmo de bsqueda de patrones en imgenes de colores el cual se menciona mas abajo.

A. Morphological Antialiasing

El MLAA (Morphological Antialiasing) est diseada para reducir el aliasing en las imgenes desplegadas sin adicionar grandes tiempos de cmputo [13]. Consiste en 3 etapas:

Conseguir discontinuidades entre los pixeles de la imagen dada.

Identificar los patrones predefinidos.

Mezclar los colores de los vecinos en esos patrones.

Por trminos de simplicidad primero se describe el MLAA binario, es decir, para imgenes en blanco y negro, y luego se generaliza para imgenes a colores. Los pasos son los siguientes:

1) Mezclando sombras fuertes (MLAA Binario o Blanco y Negro):

El principal uso del MLAA binario es para el antialising en sombras fuertes. Como en el caso de los mapas de silueta de sombras [12] el cual permite construir una aproximacin lineal a tramos de la sombra real.La figura 17 muestra una imagen en blanco y negro en la izquierda de la cual nosotros queremos construir una aproximacin de los bordes entre los pixeles blanco y negro, y obtener as la imagen sin aliasing como se ve en la derecha.

Figura 17. MLAA procesando una imagen en blanco y negro con formas en L, Z y U.Se usa una notacin de ajedrez para los pixeles. Los sufijos l, r, t y b van a definir los bordes de un pixel en particular, as por ejemplo el borde derecho del pixel a8 (el pixel superior izquierdo) seria a8r y el borde de abajo seria a8b y as sucesivamente. Un borde puede tener dos diferentes etiquetas (a8b = a7t) y adems se usa la notacin abreviada para grupos de pixeles como {cd}4 para {c4, d4}.

En el primer paso del algoritmo, se realiza la bsqueda de todas las lneas que separan pxeles negros en un lado y los pxeles blancos en otro, manteniendo los ms largos. Esto se logra mediante la comparacin de cada dos filas adyacentes y dos columnas adyacentes. Por ejemplo, para las filas 4 y 5, nos encontraremos con una sola lnea de separacin {C4U, d4u, e4u}, mientras que columnas gyh tendrn 2 lneas de separacin diferentes G3R y g7r. Tambin vamos a suponer que los pxeles de fronteras se extienden hacia filas adicionales y columnas imaginarias, el pxel c9 ser de color negro y as sucesivamente. Cada lnea de separacin se define por sus dos vrtices ms alejados. En el segundo paso del algoritmo, buscamos otra separacin lneas que son ortogonales a la actual en sus vrtices ms alejados. La mayora de las lneas de separacin tendrn dos lneas ortogonales, con una excepcin de las lneas que se originan en los bordes de la imagen. Esta observacin nos permite clasificar las lneas de separacin en las tres siguientes categoras:

Un patrn en forma de Z que ocurre si dos lneas ortogonales cruzan los dos medio-planos formados por la actual lnea de separacin. Un ejemplo es el patrn formado por b5r, {cde} 4u, e4r en la Figura 17 Patrn en forma de U para que las lneas ortogonales estn en el mismo lado, por ejemplo C2R, {de} 2b, E2R Patrn en forma de L que slo podra suceder si lnea de separacin se origina en imagen Frontera, por ejemplo {ab} 5t, b5rUna sola lnea de separacin puede ser una parte de mltiples patrones (hasta cuatro). Esto sucede, por ejemplo, si h4 fuese un pixel negro. El algoritmo no toma esto en consideracin y procesa inmediatamente cualquier patrn, tan pronto como se identifica. Este da como resultado un ligero desenfoque, que amortigua ms abajo altas frecuencias injustificadas en la imagen. Del mismo modo, un solo pxel puede estar delimitado por varias lneas de separacin, lo que resulta en mezclado adicional para dichos pixeles (por ejemplo, C8 y G7 en la figura 17).

Las formas Z y U se pueden dividir en dos formas L, por lo que es suficiente describir el procesamiento de formas L en la tercera etapa de el algoritmo. Se considera que cada una de las formas L estn formadas por una borde principal que se encuentra en el primer paso, y un borde secundario encontrado en el segundo paso. La longitud de la arista principal es 0,5 pxeles o ms (es una fraccin debido a la divisin de formas Z o U), mientras que cada borde secundario tiene una longitud igual a 1 (incluso puede ser parte de una lnea de separacin ms larga, aunque solo interesa el fragmento inmediatamente unido al borde primario). Cualquier forma L est formado por tres vrtices. Con el fin de encontrar los pesos de mezcla, nos conectamos al punto medio de la arista secundaria con el vrtice restante del borde principal (que se muestra como la lnea roja en la figura 17).

Figura 18. Peso de la mezcla de pixeles computados. La forma L est formada por la mitad del borde secundario v0-v1 y por el borde primario v1-v2.Esta lnea de conexin divide cada celda adjunta a forma de L en dos trapezoides. Calculamos el rea de cada trapecio unido al borde primario y se utiliza para calcular el nuevo color de estas celdas de la siguiente manera:

Aqu es el antiguo color de la celda, y es el color de la celda en el lado opuesto del borde principal (la asignacin de 0 a negro y 1 de color blanco). En particular, para la celda C5.

Su nuevo color se calcula como:

xx

Y del mismo modo, la celda D5 tendr su nuevo color el cual es casi blanco y es igual a:

xx

(4)2) Procesando Imagenes a Color:

Para el procesamiento de imgenes de color se requieren ciertos ajustes en el algoritmo descrito anteriormente para el MLAA binario. Aunque el principal cambio que se realiza es en la bsqueda de patrones que es uno de los puntos ms complicados en este tipo de MLAAa) Discontinuidades e Imgenes de Color

Para encontrar discontinuidades en una imagen, bien se puede confiar en las diferencias de color entre los pxeles vecinos o sobre alguna informacin adicional, (materiales diferentes) geomtricos o discretos. La mayor ventaja de la primera aproximacin (con color) es que este enfoque no procesa pxeles con color parecido, evitando as el trabajo extra que probablemente no iba a cambiar el color de estos pxeles de una manera significativa. En el lado negativo, este enfoque tambin puede desencadenar el procesamiento superfluo de pxeles que obtienen diferencias significativas en el color slo a travs de la asignacin de texturas. MLAA como tal se puede utilizar con cualquier mtodo que determina si dos pxeles son diferentes. MLAA no arroja ningn rayo adicional, mitiga los impedimentos de rendimiento provocados por la eleccin de valor de umbral bajo. En todos los resultados, que se presentan, se utilizan slo los 4 bits ms significativos como medida de similitud para cada canal de 8 bits de color rojo, verde y azul (esto es comparable con la compresin DXT1 textura, en el que todos txeles que tienen los mismos 5 bits iniciales se consideran iguales). Si hay una diferencia en estos bits en cualquiera de los canales, dos colores se supone que son diferentes. Utilizando cualquiera de 3, 5, o 6 bits no cambia los resultados de manera significativa, aunque para algunas imgenes 3 bits no son suficientes para encontrar todos los pxeles con alias que son visibles por el ojo humano.

b) Busqueda del Patron

Vamos a empezar a derivar reglas para buscar patrones en imgenes en color al notar que la expresin mezcla de color (1) no depende de valores numricos para el negro 0 y blanco 1. Podra ser utilizado para los colores RGBA, as, por separado para cada canal. Para imgenes en blanco y negro (B & W), calculados de acuerdo a esta ecuacin estn cambiando suavemente cuando diferentes Z, U, o formas L son adyacentes entre s. Es una consecuencia de la utilizacin de puntos medios de los bordes secundarios, ya que define aproximacin lineal a tramos continua de aristas de silueta. Para imgenes en color, no ser tan estricta esta restriccin, aunque todava requieren aproximacin de silueta continua.

Figura 19. Costura de dos formas juntas. Elegimos alturas hc y hd desconocidos para minimizar las diferencias de color en la posicin de costura

La Figura 19 muestra dos formas Z adyacentes formadas, en este caso particular, por un borde de silueta lineal. Los colores de todos los pxeles por debajo de la lnea de separacin de color rojo son similares (o el mismo para imgenes en blanco), as como los colores de pxeles por encima de la lnea roja. Para imgenes en blanco tenemos:

hc hd

r hc

Donde es la longitud de la forma Z que utilizamos: La relacin caracteriza la relacin entre las dos bases de trapezoide, y el rea del trapecio es la media de sus dos bases. Si las longitudes de dos formas conectadas son las mismas luego dos trapecios azules (ms grandes), son congruentes, como son los dos trapecios amarillos (ms pequeos). Vamos a utilizar nombres de celdas para representar a sus colores. Para establecer los requisitos para la transicin suave entre dos formas, calculamos el mismo color mezclado dos veces, utilizando parmetros de cada forma:hc r c1 hc r c2 (7)

hd - r d2 hdrd3hc hd Para las imgenes con c1 = d2 (dos pixeles debajo de la lnea roja) y c2 = d3 por encima de esta, utilizaremos la ecuacin (5) para imgenes de colores para resolver c1, c2, d2 y d3.Finalmente para encontrar patrones que dan lugar a la mezcla de colores suaves, lo haremos probar todos los posibles candidatos (formas delimitadas por el color de discontinuidades) por resolucin de ecuaciones lineales (7). Si los valores encontrados de hc y hd estn en el intervalo [0, 1], procesamos la prueba, de lo contrario se ignoran. Todava podra haber una situacin, cuando una lnea de separacin constituye mltiples patrones vlidos, sobre todo en zonas texturadas. Para simplificar, slo la primera forma encontrada forma un cierto tipo (dos posibles formas Z y dos formas de U) y luego se puede seguir adelante. Al proporcionar un criterio adicional para aceptar o rechazar patrones ensayados, que evitan clculos innecesarios debido a la configuracin del umbral de la discontinuidad de color demasiado bajo. Por otra parte, nos aseguramos una transicin suave entre las formas conectadas.

B. Fast Approximate Antialiasing

El FXAA [14] es la respuesta de NVIDIA a la tecnologa MLAA de AMD, y se implementa de una manera muy similar a esta, es decir, se procesa los datos de color de una imagen renderizada, en busca de pxeles con un alto grado de contraste local. Luego aplica un filtro de suavizado para reducir el contraste. La principal diferencia entre estas tcnicas es que FXAA busca alto contraste local para cada pxel mientras MLAA busca patrones de alto contraste pxeles.

Figura 20. Sin Antialiasing (izquierda) vs 4xMSAA (medio) vs FXAA (derecha)Las principales caractersticas del FXAA son:

Reduce aliasing visible mientras se mantiene la nitidez y mantiene dentro de un prctico costo fps para un motor tpico juego. El costo para procesar un 1920x1200 marco en GTX480 est bajo 1ms para FXAA pre configurado.

Tiene efecto en el aliasing tanto en los bordes del tringulo como en el sombreado. FXAA tiene una lgica para reducir el aliasing de un solo pxel y a nivel de subpxel. Se puede ver la reduccin de aliasing punteado en la zona de sombra con jitter de muestreo en la Figura 20.

Es fcil de integrar en un shader de un solo pxel. FXAA se ejecuta como un filtro de paso nico en una imagen de color con una sola muestra. FXAA proporciona una gran ventaja en memoria comparada con el MSAA.

Puede proporcionar una ventaja de rendimiento para el procesamiento diferido en comparacin al uso de MSAA y el sombreado en mltiples muestras.

V. VENTAJAS Y DESVENTAJAS Las principales ventajas del Antialiasing Post-Procesamiento son: Puede ser aplicado a casi cualquier juego.Al ser aplicado al final del procesamiento de la imagen lo puede hacer la tarjeta grfica sin tener en cuenta el juego, as que se podra aplicar aunque no se soporte el antialiasing pre-procesamiento. Es ms rpido.Es mucho ms rpido que aplicar el antialiasing clsico. Esto es muy importante para aquellos juegos donde la velocidad y fluidez del juego es ms importante que todo lo dems. Este tipo de antialiasing no son como el 2X MSAA, 4X MSAA o 8x MSAA que se realizan durante la renderizacion de la escena, si no que se realiza despus de esta, por lo que son capaces de ser aplicados a la imagen entera, a pantalla completa, de modo que cualquier aliasing en la imagen se puede reducir, sin importar dnde estn las texturas o que tipo o cantidad de polgonos hay. Las principales desventajas son: Son muy complicados de implementar

Problemas con los textos.Al realizar el procesado despus de calcular la imagen si esta posee textos los mismos pueden dejar de verse claramente. El algoritmo identifica las palabras como posibles zonas problemticas y las emborrona. Puede dejar la escena borrosa. Dependiendo del juego, su iluminacin y dems pueden dejarte la escena con peor calidad que si no lo aplicas. No ataca todos los problemas del aliasing.Ya que pueden existir objetos lejanos que puedes ver con muy poca calidad

De forma general se puede decir que las ventajas del antialiasing pre-procesamiento es ayudar a disminuir el efecto dentado o jagged (aliasing) y hacer que los bordes especialmente y las texturas de la imagen se vean mucho mejor. Pero su principal desventaja es el tiempo de procesamiento que se pierde al realizar estas mejoras, ya que los pixeles de las lneas o lmites y los del fondo deben ser analizados para determinar que sombreado intermediase puede adicionar, este tiempo de procesamiento es bastante importante en las aplicaciones de tiempo real como son los juegos ya que tiene un gran impacto en los fps. Cuando se utiliza el antialiasing en lneas estas quedan ms suaves pero se hacen tambin ms gruesasVI. CONCLUSIONES En la actualidad existen diversas tcnicas de antialiasing, estas tcnicas se pueden dividir principalmente en las tcnicas de pre-procesamiento las cuales se realizan durante la renderizacion de la imagen y son usualmente mucho ms costosas pero con una calidad bastante alta, y los post-procesamiento, los cuales se realizan una vez que la imagen ha sido renderizada por lo cual no son tan costosos en tiempo de procesamiento y adems permiten ser utilizados por GPU que no soportan las tcnicas de antialiasing clsicas. En las tcnicas de pre-procesamiento se encuentra el sper sampling el cual tiene la mejor calidad aunque un costo bastante elevado, ya que consiste en generar la imagen de 2,4, 8 y hasta 16 veces el tamao original y luego realizar la interpolacin para llevarla nuevamente a la resolucin inicial. Las dems tcnicas que siguen surgiendo y evolucionando de las anteriores intentan obtener calidades cercanas al sper sampling pero con costos menores, como han sido el multisampling, el Quincunx (que usa multisampling), el Accuview (mejora del Quincunx).

Figura 21. Cantidad de Fps dependiendo de la tcnica de Antialiasing usada.

Podemos decir que en la actualidad no existe una tcnica que sea totalmente superior a otra, ya que las tcnicas utilizadas dependen de la capacidad del hardware, y en muchas ocasiones no se utiliza una sola tcnica si no que se pueden usar varias de estas, como por ejemplo una combinacin de multisampling (la cual mejora los bordes), combinado con alguna tcnica de filtrado de texturas como el filtro anisotrpico, y finalmente se puede utilizar el FXAA o MLAA en post-procesamiento.

Finalmente en la Figura 21 y 22 vemos una comparacin del rendimiento en varias de las tcnicas que mencionamos a lo largo del texto y podemos ver que efectivamente muchas de las tcnicas de antialiasing tienen un impacto bastante grande en los fps de las aplicaciones, por lo que no es ideal usar tcnicas que requieran mucho tiempo de procesamiento en GPU que no sean lo suficientemente rpidos o en juegos o aplicaciones que requieran mucho computo.

Figura 22. Reduccin de los fps en Porcentaje.References

[1] Robert L. Cook, "Stochastic Sampling and Distributed Ray Tracing", An Introduction to Ray Tracing, Andrew Glassner, ed., Academic Press Limited, 1989.[2] Loren Carpenter. "The A -buffer, an antialiased hidden surface method".[3] Foley, James D.; Feiner, Steven K.; van Dam, Andries; Hughes, John F. (1995). Computer Graphics: Principles and Practice in C.[4] NVIDIA Corporation, Technical Brief, HRRA: High-Resolution Antialiasing through Multisampling

[5] ATI Technologies White Paper, "SMOOTHVISION".[6] Crow, Franklin C, "The aliasing problem in computer-generated shaded images". Communications of the ACM, November 1977.[7] Catmull Edwin, "A hidden-surface algorithm with anti-aliasing". Proceedings of the 5th annual conference on Computer graphics and interactive techniques. August 2325, 1978.[8] 16x Fragment Antialiasing, May 14, 2002, Matrox Parhelia.

[9] Richard Cant, Nathan Chia, David Al-Dabass, New Anti-Aliasing and Depth of Field Techniques for Games, Department of Computing and Mathematics, the Nottingham Trent University.[10] NVIDIA Accuview Technology, High-Resolution Antialiasing Subsystem, NVIDIA Corporation, 2701 San Tomas Expressway, January 24, 2002.[11] NVIDIA GeForce FX GPUs Intellisample Technology. February 10, 2003, NVIDIA Corporation, 2701 San Tomas Expressway.[12] SEN P. and CAMMARANO M. 2003. Shadow Silhouette Maps. In ACM, Transactions on Graphics (Proceedings of ACM SIGGRAPH 2003), 22(3), 521-526[13] Alexander Reshetov, Morphological Antialiasing, Intel Labs.[14] Timothy Lottes, FXAA, NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050.(1)

(2)

(3)

(6)

(4)

(5)

Quincunx Vs Accuview