En contexto: Los juegos de hoy en día utilizan texturas muy detalladas que pueden llenar rápidamente el búfer de fotogramas en muchas tarjetas gráficas, lo que provoca tartamudeos y bloqueos del juego en títulos AAA recientes para muchos jugadores. Dado que los fabricantes de GPU son tacaños con la VRAM incluso en los modelos de gama media más nuevos, la responsabilidad recae en los ingenieros de software para encontrar una manera de exprimir más el hardware disponible en la actualidad. Quizás, irónicamente, el desarrollo más prometedor en esta dirección hasta ahora proviene de Nvidia: la compresión de texturas neuronales podría reducir los requisitos del sistema para futuros títulos AAA, al menos en lo que respecta a VRAM y almacenamiento.
Uno de los temas más candentes en este momento se centra en los juegos AAA modernos y sus requisitos del sistema. Tanto las especificaciones mínimas como las recomendadas han aumentado y, como hemos visto con títulos como The Last of Us Part I, Forspoken, The Callisto Protocol y Hogwarts Legacy, ejecutarlos incluso a 1080p usando el ajuste preestablecido Ultra ahora plantea problemas para los gráficos. tarjetas equipadas con 8 GB de VRAM.
Al observar la última encuesta de Steam, vemos que 8 GB es el tamaño de VRAM más común para PC con soluciones gráficas dedicadas. Es probable que eso no cambie por un tiempo, especialmente porque las actualizaciones de las tarjetas gráficas siguen siendo costosas y los fabricantes de GPU no parecen estar interesados en ofrecer más de 8 GB de memoria gráfica en la mayoría de los modelos principales.
Lea también: ¿Por qué los juegos de PC modernos usan tanta VRAM?
La buena noticia es que Nvidia ha estado trabajando en una solución que podría reducir el uso de VRAM. En un artículo de investigación publicado esta semana, la compañía detalla un nuevo algoritmo para la compresión de texturas que supuestamente es mejor que los métodos tradicionales de compresión de bloques (BC) y otras técnicas de compresión avanzadas como AVIF y JPEG-XL.
El nuevo algoritmo se denomina simplemente compresión de texturas neuronales (NTC) y, como sugiere el nombre, utiliza una red neuronal diseñada específicamente para texturas de materiales. Para hacer esto lo suficientemente rápido para un uso práctico, los investigadores de Nvidia construyeron varias redes neuronales pequeñas optimizadas para cada material. Como puede ver en la imagen de arriba, las texturas comprimidas con NTC conservan muchos más detalles y son significativamente más pequeñas que incluso estas mismas texturas comprimidas con técnicas BC a una cuarta parte de la resolución original.
En los juegos modernos, las propiedades visuales de un material se almacenan en mapas separados que describen cómo absorbe y refleja la luz, y la variedad utilizada varía de un motor de juego a otro. Cada mapa suele incluir versiones adicionales reducidas del mapa original en el mismo archivo. Estos llamados «mipmaps» se utilizan para optimizar el uso de la memoria de gráficos cuando no se necesita la resolución completa de la textura, como cuando un objeto en particular está lejos de su punto de vista.
Lea también: Cómo funciona el renderizado de juegos en 3D: texturizado
Los investigadores explican que la idea detrás de su enfoque es comprimir todos estos mapas junto con su cadena de mipmap en un solo archivo y luego hacer que se descompriman en tiempo real con el mismo acceso aleatorio que la compresión de textura de bloque tradicional.
Comprimir decenas de miles de texturas únicas para un juego también lleva tiempo, pero Nvidia dice que el nuevo algoritmo supuestamente es diez veces más rápido que las implementaciones típicas de PyTorch. Por ejemplo, una textura de material 4K de 9 canales se puede comprimir en uno a 15 minutos con una Nvidia RTX 4090, según el nivel de calidad que establezca. Los investigadores señalan que NTC admite texturas con resoluciones de hasta 8K (8192 por 8192), pero no ofreció cifras de rendimiento para tal escenario.
Una ventaja obvia es que los desarrolladores de juegos podrán utilizar NTC para, con suerte, reducir los requisitos de almacenamiento y VRAM para juegos futuros o, al menos, reducir la tartamudez al colocar más texturas en el mismo búfer de cuadros y, por lo tanto, reducir la necesidad de intercambiarlas. dentro y fuera cuando se mueve a través de un entorno detallado. Otra ventaja es que NTC se basa en la multiplicación de matrices, que es rápida en las GPU modernas e incluso más rápida cuando se usan Tensor Cores en las GPU GeForce RTX.
Sin embargo, NTC tiene algunas limitaciones que pueden limitar su atractivo. En primer lugar, al igual que con cualquier compresión con pérdida, puede introducir una degradación visual a tasas de bits bajas. Los investigadores observaron una leve borrosidad, la eliminación de detalles finos, bandas de color, cambios de color y fugas de características entre los canales de textura.
Además, los artistas de los juegos no podrán optimizar las texturas de la misma manera que lo hacen hoy, por ejemplo, al reducir la resolución de ciertos mapas de texturas para objetos o NPC menos importantes. Nvidia dice que todos los mapas deben tener el mismo tamaño antes de la compresión, lo que complicará los flujos de trabajo. Esto suena aún peor cuando considera que los beneficios de NTC no se aplican a distancias de cámara más grandes.
Quizás las mayores desventajas de NTC tienen que ver con el filtrado de texturas. Como hemos visto con tecnologías como DLSS, existe la posibilidad de que la imagen parpadee y otros artefactos visuales cuando se usan texturas comprimidas a través de NTC. Y aunque los juegos pueden utilizar el filtrado anisotrópico para mejorar la apariencia de las texturas en la distancia a un costo de rendimiento mínimo, en este momento no es posible con el NTC de Nvidia.
Los fanáticos de los gráficos y los desarrolladores de juegos que quieran profundizar en NTC pueden encontrar el documento aquí; vale la pena leerlo. Nvidia también presentará el nuevo algoritmo en SIGGRAPH 2023, que comienza el 6 de agosto.