Skip to main content

Anti-aliasing temporal: ¿una bendición o una maldición?

Estudiamos las ventajas y problemas de esta herramienta vital para los desarrolladores.

Para bien o para mal, el anti-aliasing temporal (o TAA) se ha convertido en un elemento definitorio de la calidad de imagen de los juegos actuales. Pero... ¿es una bendición, una maldición, o ambas cosas? Lo mires como lo mires es una tecnología que está aquí para quedarse, así que veamos qué es, por qué tantos juegos la utilizan y qué pasa con el aspecto borroso en algunos juegos. Y cuando todavía no existía el TAA, ¿qué metodos de anti-aliasing se usaban y por qué ya no se usan ahora?

Durante más o menos una década, desde finales de los noventa hasta aproximadamente 2010, el mejor anti-aliasing que podías usar era SSAA (super-sample anti-aliasing). Sus principios son sorprendentemente sencillos: para eliminar los dientes de sierra usabas los recursos de tu GPU para renderizar la imagen a una resolución mucho más alta y luego reescalabas hacia abajo. Un 8x SSAA en una pantalla 1080p era, básicamente, renderizar internamente a 8K (!), mientras que 4x SSAA reescalaba desde 4K. Es un método de fuerza bruta, que ofrece una imagen estable con bordes muy limpios y con muy poca rotura sub-pixel. Cuando llegaron PlayStation 4 Pro y Xbox One X, Sony y Microsoft no solo nos vendieron el sueño de las 4K, sino también las bondades a nivel de calidad de imagen que aportaba el SSAA al renderizar a una resolución mucho más alta para luego reescalar hacia abajo.

Sin embargo, un enfoque de fuerza bruta implica que se necesita una tremenda cantidad de recursos de la GPU. Usando Crysis 3 en una RTX 3070, 1080p nativo funciona a casi 200 frames por segundo sin estar limitados por la CPU. En cambio, 4x SSAA reduce el frame-rate a 70FPS, y en el caso de 8x SSAA a tan solo 19FPS.

Ver en YouTube

¿La solución? MSAA, o multi-sample anti-aliasing. Piensa en MSAA como en algo parecido a SSAA, pero con una gran diferencia: solo se hace super-sampling de la geometría. Hasta donde sabemos, la 8800 GTX de Nvidia fue la primera GPU en soportar 8x MSAA, y podemos ver como en un ejemplo de esa época, The Elder Scrolls: Oblivion, se perdía un 35% de rendimiento al usarlo. Es una cifra significativa, pero que desde luego está muy lejos de nuestro ejemplo con Crysis 3 en la RTX 3070, donde se perdía el 90% del rendimiento. Al igual que con SSAA hay varios modos de calidad, con lo cual puedes utilizar 2x o 4x con una menor reducción de bordes, pero también sufriendo una menor penalización de rendimiento. Sin embargo, con el paso del tiempo el MSAA también ha ido desapareciendo y a día de hoy muy pocos títulos lo usan.

Hay muchas razones para ello. La primera es el renderizado diferido, una técnica que incrementa la complejidad del renderizado con un alto rendimiento. Un ejemplo del efecto que tiene el renderizado diferido es cómo los juegos que usan iluminación diferida pueden aumentar la cantidad de luces visibles en pantalla. Killzone 2, en PlayStation 3, no fue el primer juego en usarlo, pero a menudo se cita como uno de los mayores ejemplos de ello. MSAA se podría integrar dentro del flujo diferido, pero el coste para los desarrolladores era altísimo, así como el consumo de memoria.

Crysis 3 es compatible con renderizado diferido y MSAA, pero aquí vemos como destacan numerosos problemas que significaron el fin de su uso generalizado en videojuegos. Activar el MSAA a 8x en ese juego reduce el frame-rate a casi la mitad a 1080p y con 4K es todavía peor. Además, los resultados de su anti-aliasing no son del todo convincentes. Recordad que MSAA funciona en la geometría, lo cual es menos importante que el shading de los pixeles, el cual define la configuración visual del juego. Elementos como los mapas normales, popularizados por Doom 3, muestran que la iluminación del juego y el detalle de los objetos se basan más en las texturas que en la geometría. Efectos como la iluminación volumétrica y la oclusión ambiental en espacio de pantalla (SSAO) tampoco se llevan muy bien con MSAA. Volviendo a Crysis 3, el suavizado de los bordes estaba presente, pero el aliasing especular (los puntos brillantes) no se soluciona y se ve pobre.

A la izquierda, un vistazo al coste relativo de rendimiento y la calidad sin anti-aliasing frente al super-sampling en Crysis 3. A la derecha, una comparativa entre MSAA y soluciones por post-proceso. Haz clic en las imágenes para verlas a mayor resolución.

Entonces aparecieron medidas provisionales, como FXAA o SMAA, que son de forma efectiva soluciones de post-proceso que buscan los bordes visibles después de que la escena se haya renderizado, intentando difuminarlos y suavizarlos. Es una mejora en muchas situaciones y tiene un coste relativamente bajo a nivel de recursos de la GPU, pero definitivamente hace que la imagen sea más borrosa y el tratamiento de cada frame, sin tener en cuenta su historial, puede provocar discontinuidad visual. Y es aquí es donde vemos los inicios en el uso del TAA.

El anti-aliasing temporal es otra forma de super-sampling, pero en vez de reescalar hacia abajo a partir de una imagen mucho más grande, lo que se hace es retroproyectar los anteriores frames en el actual. Cuando funciona bien, este método se comporta de forma similar al SSAA, limpiando todo tipo de bordes. En situaciones en las que el MSAA rompe con shader aliasing, el AA temporal limpia mejor creando una imagen mucho más suave que con MSAA. Como funciona como el super-sampling, TAA también puede afectar a cosas que no están hechas de geometría; en Control, por ejemplo, los efectos de ray-tracing del juego tienen un correcto suavizado y limpiado de bordes, algo que nunca se podría conseguir con MSAA. Actualmente la forma definitiva de TAA es el DLAA de Nvidia (renderizando DLSS a resolución nativa), lo cual se puede ver significativamente mejor incluso que el super-sampling estándar.

Esta impresionante propiedad de super-sampling del TAA fue rápidamente explotada por los desarrolladores de videojuegos, a veces para mejorar el rendimiento. Efectos como los reflejos, la iluminación volumétrica, el filtrado de las sombras, la oclusión ambiental o el renderizado del pelo se renderizan a bajas resolución para luego 'completarse' cuando el TAA agrega datos de anteriores frames para 'finalizar' el efecto. Los desarrolladores utilizan TAA no solo para limpiar los bordes, sino para optimizar los juegos y ocultar los aspectos en los que recortan calidad. El punto negativo en este aspecto es, sin embargo, evidente: si no quieres usar TAA y lo desactivas, los efectos de baja resolución son muchísimo más evidentes y no se ven del todo bien.

Otro ejemplo de las sorprendentes ganancias de rendimiento que ofrece el anti-aliasing temporal frente al MSAA en un motor relativamente moderno.

Sin embargo, las ventajas pueden ser extraordinarias, e incluso en términos puramente de anti-aliasing, el coste de TAA es relativamente pequeño. En Deus Ex: Mankind Divided, por ejemplo, tan solo un tres por ciento del frame-rate se ocupa en los cálculos de TAA. La técnica suena increíble cuando miras su puntos positivos aislados: mejor rendimiento y mejor anti-aliasing que la tecnología anterior, pero hay problemas, siendo la nitidez de la imagen obviamente una de ellas. TAA, esto es así, produce una imagen más suavizada.

Un problema clave con TAA es que resuelve imágenes suavizadas. Parte de esto es simplemente la naturaleza de lo que es el propio anti-aliasing; incluso SSAA tiene un factor suavizante, técnicamente. Sin embargo, considerando como todos los métodos de anti-aliasing suavizan la imagen, TAA es incluso inherentemente más suave debido a cómo integra información de anteriores frames desviando la imagen para lograr su efecto. TAA resuelve la imagen por defecto de forma más suave que otras técnicas de anti-aliasing, y esto puede tener dos lecturas según tus gustos: una imagen agradablemente suave o una molestamente borrosa.

Un gran aspecto a tener en cuenta con esto es la distancia a la que estés de la pantalla y a la resolución a la que se mueva el juego. Si estás más lejos de la pantalla quizás no notes esa suavidad y puedas apreciar los aspectos macro de TAA. Pero si estás cerca la suavidad se amplifica y resulta más evidente. Esa suavidad se hace incluso más obvia cuando la resolución es más baja. Los usuarios de pantallas 1080p obtendrán resultados mucho peores que a 4K, hasta un punto en el que considero que la suavidad de imagen no es un problema a 4K.

Los aspectos negativos del TAA - como jitter e imagen borrosa - escalan según la resolución. A 1080p hay problemas evidentes, los cuales son mucho menos visibles a 4K.

Este aspecto de la distancia con la pantalla y la resolución que hace que TAA parezca mejor o peor resulta clave a la ahora de definir su mayor problema. La mayoría de gente que juega en consola lo hace, a menudo, en televisores de alta resolución y a varios metros de distancia, con lo cual la suavidad no es tan visible. Sin embargo, en PC la mayoría de jugadores están mucho más cerca de sus monitores, y a menudo con resoluciones más bajas. Si un desarrolladores equilibra las opciones de calidad de imagen basándose en la experiencia en consolas, un gran número de usuarios de PC, que se sitúan más cerca de sus pantallas y juegan a menor resolución, tendrán subjetivamente una experiencia más borrosa en la que los defectos del TAA resultan mucho más evidentes.

Otro problema del TAA es cómo se emborrona en movimiento, algo que podéis ver con mayor facilidad en el vídeo. El TAA de Halo Infinite es uno de los más borrosos cuando hay movimiento en la pantalla, pero el comportamiento de emborronar la pantalla cuando la cámara se mueve se puede encontrar en prácticamente todos los tipos de TAA, porque no es un bug, es inherente a la técnica. Lo mucho o poco que lo notes es, una vez más, algo subjetivo, pero cuanto más baja sea la resolución y más cerca estés de la pantalla, más lo notarás. También se escala con la velocidad del movimiento, así que un usuario que juegue con ratón se verá más afectado que uno que use un mando.

Otro detalle importante del TAA es que depende del frame-rate. Cuanto más alto es el frame-rate, más cerca está cada uno de los frames, con lo cual hay menos errores en los cálculos de retroproyección y, por lo tanto, más alta es la integridad de la imagen. Si juegas a títulos con frame-rates altos esto se puede ver como un aspecto positivo, pero también diría que hace que el TAA sea menos útil, haciendo que sea menos aplicable a ciertos tipos de juegos. Un aspecto menos favorable del TAA es como puede crear jitter en la imagen, pero el mayor problema es el ghsoting; no es constante con TAA, pero casi todos los tipos de TAA pueden verse afectados por eso y lo he podido ver cientos de veces en mis años analizando juegos para Digital Foundry a cualquier resolución. Incluso el mejor TAA, el DLSS de Nvidia, puede presentar este defecto.

TAA tiene muchas ventajas, pero no es una alternativa perfecta al super-sampling, como podemos ver en Halo Infinite. En nuestra opinión, la posibilidad de desactivar TAA e incluir opciones de SSAA es una excelente solución de futuro para los juegos de PC.

Entonces... ¿TAA es una bendición o una maldición? Pongámoslo de esta manera: sin TAA los gráficos en tiempo real no habrían avanzado hasta alcanzar el punto en el que se encuentran actualmente. Hitos como el path tracing en tiempo real en títulos triple A como Cyberpunk 2077 no hubiesen sido posibles sin los conceptos que TAA puso sobre la mesa. En consolas, esto también implica que la diferencia entre generaciones hubiese sido mucho menor sin TAA. Si no existiese el anti-aliasing temporal, un montón de potencia computacional se destinaría a limpiar los dientes de sierra y no a mejorar aspectos como la iluminación o la geometría. La demo de The Matrix Awakens, por ejemplo, no sería posible en Xbox o PlayStation sin la solución TSR de Nvidia (su versión de DLSS).

Incluso con todos sus defectos creo que TAA es algo fantástico, aunque solo soy una voz y hay una pluralidad de opiniones que merece ser escuchada. Por ejemplo, personalmente juego muchos títulos a 4K y eso hace que para mí los problemas fundamentales del TAA sean menos visibles, pero quien juegue a resoluciones más bajas, como 1080p, apreciará más esos defectos. Esto es importante, porque una gran cantidad de usuarios juega todavía a 1080p, si nos basamos en lo que dice la encuesta de hardware de Steam.

Y como los defectos del TAA, como el ghosting o la imagen borrosa, son más evidentes a 1080p, creo que la industría haría bien en tratar el TAA como una opción más que añade suavidad a la imagen. El TAA se tendría que poder desactivar, como por ejemplo ocurre con el motion blur, al ser una opción de accesibilidad para la gente que sufre de cinetosis.

También creo que debería haber alternativas estándar simples disponibles para los usuarios que no quieran usar TAA. En los ports de Spider-Man para PC de Nixxes, por ejemplo, los juegos originales en PlayStation estaban diseñados alrededor del TAA, pero en ordeandor podías desactivarlo o usar un anti-aliasing simple por post-proceso si lo deseabas. Sí, FXAA o SMAA no son tan buenos a la hora de limpiar los dientes de sierra, pero son mejor que nada y simples como alternativa.

La última razón por la cual se debería poder desactivar el TAA es pensando en el futuro. Ahora mismo TAA existe principalmente porque es conveniente, pero en diez años es posible que los usuarios prefieran usar super-sampling con sus juegos. Al preparar este artículo probé varios juegos antiguos que podía mover perfectamente con SSAA en mi RTX 4090, así que quizás los desarrolladores deberían permitir desactivar el TAA como opción de futuro, para cuando tengamos un hardware mucho más potente.

En cualquier caso, a corto plazo TAA está aquí para quedarse. En un mundo en el que escalar el rendimiento vía hardware es cada vez más complicado, el énfasis gira hacia soluciones por software que saquen más partido de los saltos generacionales, y ahora mismo TAA es una potente herramienta para elevar el nivel.


Traducción por Josep Maria Sempere.

También te puede interesar