Aunque AMD ha presentado su implementación de MLAA con las nuevas Radeon HD 6800, hoy vemos que esto no es nuevo tecnológicamente hablando, de hecho, mentes españolas dieron a luz hace unos meses la mejor implementación para PC y Xbox 360 hasta la fecha.
Desde la Universidad de Zaragoza, en colaboración con Lionhead Studios, nos llega un trabajo de investigación que supone un gran avance en lo que a técnicas de antialiasing se refiere. La técnica desarrollada por el equipo formado por Jorge Jiménez, Belén Masiá, José I. Echevarría y Diego Gutiérrez, miembros de Grupo de Informática Gráfica Avanzada (GIGA); y Fernando Navarro de Lionhead Studios, toma como base el enfoque del Morphological Antialiasing (MLAA) y lo reinterpreta para ser ejecutado eficientemente en GPUs, ofreciendo una calidad entre 4xMSAA y 8xMSAA, siendo hasta doce veces más rápido que éste y con un consumo de memoria mucho menor.
Para el que no lo conozca, la idea principal del MLAA es la revectorización o recuperación de lo que serían las líneas y contornos originales de la escena. Para ello, lo que se hace es detectar discontinuidades en la imagen, dando como resultado los bordes en los que se tendrá que aplicar el antialiasing. La diferencia respecto a métodos anteriores radica en qué se hace con ellos. Donde aquellos aplican blurs o emborronados sobre los bordes, el MLAA los clasifica de acuerdo a unos patrones prefijados y se suavizan de acuerdo a su supuesta forma original. Por tanto, MLAA ofrece una calidad de imagen superior, evitando el emborronado de la imagen, lo cual lo convierte en uno de los mejores métodos de antialiasing por post-procesado que existen en la actualidad. Sin embargo, la implementación original del método (publicada en 2009) corría sobre CPU, por lo que era inviable su ejecución en entornos tan exigentes como los videojuegos.

Comparativa con FarCry 2 sin FSAA y con MLAA
Algunos de los principales hitos del trabajo desarrollado por los investigadores españoles son:
Es la primera implementación capaz de correr en tiempos prácticos por debajo del milisegundo en tarjetas de gama media-baja (0,44 ms de media para una NVIDIA GeForce 9800GTX+ a una resolución de 720p), lo cual la hace apta para su implementación en la generación actual de videojuegos con un impacto mínimo en los FPS, siendo más eficiente que el método de antialiasing más extendido hoy en día: MSAA.
Asimismo es la única implementación capaz de funcionar en GPUs DX9, DX10, DX11. Para ello, hacen uso de pixel shaders estándar en lugar de DirectCompute, lo que permite su ejecución incluso en plataformas con unos años a sus espaldas, como DirectX 9.
También es la primera implementación de MLAA en Xbox 360. Usando sólo su GPU, se consiguen tiempos de 3,79 ms para una resolución de 720p. Por comparación, el MLAA implementado en el SDK de la Playstation 3 (visto por primera vez en God of War III) tarda 4 ms de media para la misma resolución, usando 5 SPUs. Según comentan los autores, para la Xbox estos tiempos podrían bajar mediante el uso de un dev kit oficial.
Actualmente es la única implementación capaz de usar tanto profundidades como color para la detección de bordes, lo cual aporta mayor flexibilidad para los desarrolladores.
También es la única implementación en PC capaz de ser aplicada antes de renderizar el interfaz de usuario, por lo que textos y demás elementos no se ven afectados de forma negativa. En la imagen podemos ver cómo la implementación a nivel de driver de las gráficas AMD afecta negativamente al texto de la interfaz, además del aparente emborronado de texturas producido por su agresiva aproximación.

Click para ver en grande
Además, con respecto a AMD su implementación aporta:
- Una mejora sustancial en rendimiento. Aunque todavía no hay números definitivos debido a que la técnica sigue mejorándose día a día, las pruebas preliminares indican que son un 1180% más rápidos que MSAA y varias veces más rápidos que la opción escogida por AMD
- Calidad de imagen superior al no emborronar de forma tan agresiva la imagen
- Integración dentro del propio motor del juego, lo que permite una mayor personalización por parte de las desarrolladoras y mejor calidad de imagen final al poder procesar la imagen antes de aplicarle el HUD.
Y esto no es todo, los autores anuncian que ya están trabajando en una versión que proporcionará todavía mejor calidad, tanto en el suavizado de bordes como en coherencia temporal.
Dado el interés mostrado por algunas de las mayores desarrolladoras de videojuegos por su algoritmo, es probable que pronto veamos esta técnica en nuestros juegos favoritos.
A continuación os dejamos un vídeo mostrando su técnica sobre el popular Heaven benchmark de Unigine, os recomendamos el visualizado a 720p y pantalla completa:
En la página web del proyecto (http://iryokufx.com/mlaa/) podéis encontrar información más detallada, además de una extensa galería de imágenes que bien merece la pena echarle un vistazo.
Gracias a Cheve por redactar esta noticia.