Tarjetas gráficasTutoriales

NVIDIA DLAA ¿Qué es? ¿Para qué sirve?

Las nuevas API de gráficos, como DirectX 12 y Vulkan, han facilitado más que nunca a los desarrolladores el aprovechamiento de las GPU modernas, por eso están surgiendo tecnologías como NVIDIA DLAA. Ya no están encadenados a las antiguas APIs que reducen el rendimiento; ahora pueden exprimir hasta la última gota de rendimiento de su hardware dándoles exactamente lo que quieren.

Pero hay una pequeña pega: estas API también exponen las muestras en bruto (en lugar de los píxeles finales renderizados) directamente al sombreador.

Esto significa que el antialiasing tiene que implementarse en el sombreador, en lugar de recurrir a otra fase anterior del proceso. Y con tanta responsabilidad depositada en los sombreadores, los fabricantes de GPU han tenido que idear un nuevo conjunto de trucos para obtener el mejor rendimiento posible de estas nuevas API sin sacrificar la calidad de la imagen. Ahí es donde entra el DLAA (Deep Learning Anti-Aliasing) de Nvidia…

¿Qué es Nvidia DLAA?

nvidia dlaa

DLAA son las siglas de Deep Learning Anti-Aliasing. Se trata de un conjunto de algoritmos de suavizado de imágenes que utilizan redes neuronales para crear imágenes sin desenfoque. DLAA funciona analizando los píxeles del fotograma y comparándolos con los píxeles de una versión borrosa del mismo fotograma. A continuación, genera nuevos píxeles que son una combinación de ambos.

DLAA es una gran solución para los desarrolladores que quieran utilizar las modernas APIs de gráficos, como DirectX 12 y Vulkan, que no admiten los métodos tradicionales de antialiasing, como MSAA y SGSSAA. DLAA es un efecto de post-procesamiento, por lo que funciona en la misma etapa del pipeline de renderizado que cosas como los efectos de post-procesamiento, el motion blur y las sombras dinámicas.

¿Cómo funciona el DLAA?

El DLAA funciona generando una versión desenfocada de todo el fotograma y comparando este fotograma desenfocado con el fotograma sin desenfocar. A continuación, utiliza un algoritmo para determinar la mejor manera de combinar los dos para generar un resultado suave. El DLAA trabaja con una resolución inferior a la del fotograma final, por lo que para generar una imagen que se acerque a la calidad del resultado deseado, tiene que generar muchos píxeles. Para generar una imagen borrosa a la resolución deseada, DLAA utiliza tanto los sombreadores como los núcleos CUDA de la GPU.

¿Por qué es tan recomendable Nvidia DLAA?

nvidia dlaa

DLAA es una gran solución para los motores de juegos modernos que quieren ofrecer antialiasing pero no admiten los métodos tradicionales de antialiasing como MSAA y SGSSAA. Cualquier tarjeta gráfica moderna puede manejar MSAA y SGSSAA (o métodos de suavizado de imagen similares) sin problemas, pero el impacto en el rendimiento de estos modos de anti-aliasing en el hardware moderno puede ser bastante significativo. Esto se debe a que las APIs gráficas modernas, como DirectX 12 y Vulkan, exponen las muestras sin procesar directamente al sombreador, lo que significa que el antialiasing tiene que implementarse en el sombreador, en lugar de recurrir a otra fase anterior del proceso.

Para ofrecer un antialiasing de alta calidad con una sobrecarga de rendimiento mínima, los desarrolladores tienen que crear algoritmos complejos y que consumen muchos recursos. Sin embargo, DLAA evita todo esto generando la imagen a una resolución más baja y, a continuación, realizando un muestreo superior a la resolución de destino. Dado que DLAA funciona a una resolución más baja (y no requiere grandes cantidades de recursos para generarla), es un poco más ligero en cuanto a rendimiento que los métodos tradicionales de antialiasing.

Los problemas del AA basado en shaders

NVIDIA DLAA

Las GPU usan procesadores masivamente paralelos, pero los algoritmos de antialiasing son algoritmos secuenciales. Por eso, el antialiasing tuvo que trasladarse de las primeras fases del pipeline a la fase de sombreado. Las GPU nunca se diseñaron realmente para cargas de trabajo secuenciales, por lo que el antialiasing tuvo que implementarse de forma muy específica para aprovechar la naturaleza paralela de las GPU.

Los algoritmos de anti-aliasing se optimizaron para ejecutarse en una GPU sin ningún tipo de paralelización. Esto significa que un solo núcleo de la GPU es responsable de todo el proceso. Y, dado que las GPU están diseñadas para hacer muchas cosas a la vez, esa es una forma muy ineficiente de hacer las cosas. Hasta que los programadores descubrieron cómo utilizar la naturaleza masivamente paralela de las GPU para mejorar el rendimiento del anti-aliasing.

Limitaciones de DLAA

Una de las limitaciones más importantes de DLAA es que no puede utilizarse en tiempo real. Esto se debe a que necesita el fotograma no desenfocado para poder generar el fotograma desenfocado. Y como es el cuadro no desenfocado el que se muestra, eso significa que no se puede utilizar DLAA en escenarios en tiempo real.

Sin embargo, esto puede ser bueno. Dado que los efectos de post-procesamiento se aplican después de que el juego se haya renderizado, significa que puedes aplicar DLAA a todo el juego a la vez. Una vez hecho esto, puedes simplemente mostrar el fotograma no desenfocado. Esto significa que puedes aplicar el anti-aliasing a todo el juego cuando sepas que vas a renderizar a una resolución alta, como por ejemplo cuando haces streaming. Y esto significa que realmente obtendrás un mejor rendimiento que si aplicas el efecto a escenas individuales.

¿Cuáles son las desventajas de DLAA?

Uno de los principales inconvenientes de DLAA es que sólo puede aplicarse a un solo fotograma a la vez. Esto significa que no se puede utilizar para suavizar secuencias de juego, ni nada parecido. Todo lo que puedes hacer es aplicarlo a un solo fotograma. Y aunque es útil, no lo es tanto como el antialiasing en tiempo real.

Otro problema de DLAA es que sólo puede funcionar con imágenes estáticas. Esto significa que no se puede utilizar para suavizar las secuencias de juego, como el antialiasing en tiempo real. Sin embargo, se puede utilizar para suavizar imágenes pre-renderizadas, como escenas, trailers y otros contenidos de vídeo.

¿Qué es NVIDIA DLSS?

dlss vs fsr

DLSS son las siglas de Deep Learning Super Sampling, que es otro conocido método de AA de NVIDIA que utiliza una red neuronal entrenada para generar muestras de fotogramas de mayor resolución. En resumen, se entrena una red neuronal en imágenes con diferentes tipos de AA aplicados, y luego genera una muestra de mayor resolución para cada método de AA. A continuación, estas muestras se suavizan juntas para crear una única imagen de muestra para todo el fotograma. Esta imagen de muestra de alta resolución se utiliza entonces para generar los píxeles finales de cada fotograma, y la red neuronal compara su muestra con los píxeles sin procesar del fotograma actual para determinar la diferencia entre cada píxel sin procesar y su muestra. Luego, la red calcula en qué medida los píxeles brutos deben diferir de su muestra, y modifica los píxeles brutos para hacerlos más similares a la imagen de muestra.

DLSS frente a DLAA

Además de utilizar diferentes resoluciones de imagen de muestra y final, hay algunas otras diferencias entre el DLSS y el DLAA. Para empezar, el DLSS requiere una red neuronal entrenada, mientras que el DLAA no requiere ningún entrenamiento de datos adicional. Además, DLAA sólo tiene en cuenta el fotograma actual para generar su imagen de muestra, mientras que DLSS tiene en cuenta tanto el fotograma actual como el anterior para generar su imagen de muestra. Y, por último, DLAA requiere que todo el fotograma esté presente cuando genera la muestra, mientras que DLSS puede operar en porciones más pequeñas del fotograma.

Te recomendamos la lectura de las mejores tarjetas gráficas del mercado.

Ahora ya conoces algo más sobre NVIDIA DLAA y cómo actúa en tus videojuegos…

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba