La llegada de la arquitectura Turing al mercado no solo supuso el desembarco del Ray Tracing en tiempo real a PC y a los juegos, sino que trajo consigo otras mejoras igualmente importantes y de la que no se habla demasiado. Nos referimos a Variable Rate Shading o VRS, una característica exclusiva de la arquitectura Turing y que promete aumentar el rendimiento a coste cero, pero ¿qué es exactamente y cómo funciona?
La optimización es tan importante como la potencia. No es rentable en gaming tener que solventar los problemas de rendimiento a base de fuerza y músculo, por lo que tanto desarrolladores como AMD y NVIDIA buscan métodos que permitan optimizar cada frame generado y representado por la GPU.
VRS llega en este enfoque y ha sido acogido con tanta fuerza que AMD ya trabaja en su implementación definitiva.
Variable Rate Shading (VRS): la flexibilidad al servicio del rendimiento sin perder calidad
VRS no es más que una técnica para realizar lo que se ha denominado como sombreado de velocidad variable. Hasta ahora, cuando había que realizar el proceso de shading en cada píxel este recibía un soporte completo en toda su trama.
Pero realmente el ojo humano no centra su atención en toda la pantalla en general, sino en ciertos puntos clave, por lo tanto, ¿para que realizar un shading completo y a la vez en todo el frame?
Lógicamente, sombrear cada cuadro repercute en el rendimiento, así que VRS lo que permite es controlar la velocidad de dicho sombreado dinámicamente mediante regiones de 16 x 16 píxeles.
Cada región de dicho tamaño puede tener una tasa de shading diferente, lo que permite a los desarrolladores dos vertientes que no son auto excluyentes: mejorar el rendimiento y mejorar la calidad.
Nuevos algoritmos de optimización por frame
El dividir la pantalla en pequeños cuadrados de 16 píxeles tiene la ventaja de que tenemos un gran rango de trabajo disponible a optimizar. Los nuevos algoritmos implementados en los nuevos motores y API permiten a los desarrolladores optimizar la velocidad de shading y aumentar la calidad de imagen.
Ahora pueden trabajar con hasta 7 opciones distintas que abarcan desde 1 x 1 píxel hasta los 4 x 4 píxeles. Estas opciones son las óptimas para cada región de 16 x 16 píxeles, por lo tanto, el desarrollador elige en todo momento la tasa que más le interese y sobre todo, donde le interesa hacerlo.
Una escena puede tener un shading totalmente distinto en cada región de 16 píxeles, lo que permite realizar la función de sombreado en un único triángulo con distintas velocidades. No hay que confundir la tasa de shading (shading rate) con la tasa de visibilidad (visibility rate), ya que son distintas y ahora gracias a VRS pueden ser trabajadas por separado.
Esta nueva técnica es especialmente interesante en realidad virtual, donde tenemos la pantalla muy cerca de nuestros ojos y la focalización de nuestro POV y FOV es muy importante.
Además, VRS no necesita escalado de resolución o similares, ya que trabaja en resolución nativa, por lo que las ventajas serán aplicadas en cualquier monitor o gafa de RV.
En resumen, cuando más complejo sea realizar la acción de shading, más ganancia potencial ofrece esta técnica, lo cual es un dato más que interesante ya que normalmente es al contrario y por ello se entiende menos que se hable tan poco sobre esta nueva característica. Aun así, muchos desarrolladores comienzan a ver con buenos ojos tanto esta tecnología como Mesh Shading.
Además, hay que contar con la nueva versión de esta tecnología, o más bien podríamos hablar de una derivación, como es VRSS. Un complemento a VRS que será explotado a partir de su implementación en drivers, juegos y API de Microsoft y que promete dar una vuelta de tuerca al rendimiento sin afectar a la calidad.