viernes, 7 de abril de 2023

El Path Tracing, otra más y cómo puede mejorar los juegos en PC

Durante la GTC, la conferencia propia de NVIDIA, que se celebró en marzo de 2023, no se paró de hablar de un concepto de forma continua: Path Tracing. El cual después de años en el que el Ray Tracing no acaba de estandarizarse suena literalmente a algo lejano o una tecnología que será poco usada. Sin embargo, no es así, y os vamos a explicar el motivo por el cual nos encontramos ante lo que va a ser el futuro de los gráficos para ordenador y que podría marcar incluso a la siguiente generación de consolas. Este es el futuro de los juegos: Path Tracing.

El objetivo no es otro que el conseguir los gráficos cada vez más precisos y realistas posibles y con las tarjetas gráficas para PC muy por encima de lo que ofrecen las consolas a día de hoy, dicha potencia extra no ha de limitarse en ofrecer la mayor cantidad de frames por segundo posible, sino también en conseguir llegar a niveles visuales que no serían posibles de otra manera. Y es que el PC si ha marcado la pauta es por haber adoptado tecnologías mucho antes que el resto, un ejemplo es el que nos ocupa.

¿Qué es el Path Tracing?

Para entender lo que son tecnologías como el Path Tracing y el Ray Tracing hemos de entender para qué sirven, y, por tanto, cuál es su utilidad, ya que no son un simple efecto visual, sino la solución a un problema que el algoritmo tradicional para generar escenas en 3D en los videojuegos no puede solventar.

Nos estamos refiriendo a la iluminación indirecta, la que se produce como efecto de una fuente de luz incidiendo sobre un objeto y que da como resultado sombras, reflejos, así como el comportamiento de la luz, refracción, sobre un material dado.

Dichos puntos no se tenían en cuenta hasta el momento por el hecho que lo importante era esencial conseguir una buena tasa de frames por segundo y los algoritmos que podían resolver este problema visual eran demasiado lentos como para ser útiles en videojuegos.

Es por ello que hemos tenido que esperar más de dos décadas desde la aparición de las primeras tarjetas 3D para tener de forma primitiva el Ray Tracing y que empecemos a hablar de una variante más avanzada de este, el Path Tracing.

¿Cuál es la diferencia entre el Path Tracing y el Ray Tracing?

Tanto el Ray Tracing como el Path Tracing simulan el comportamiento de la luz al desplazarse por la escena en tres dimensiones. Sin embargo, en el caso del trazado de rayos, lo que se hace es generar un rayo adicional (o dos incluso) que sale desde el objeto en otra dirección o ángulo cambiado. En cambio, el Path Tracing genera rayos en todas las direcciones posibles, por lo que la carga computacional es mucho más grande, pero al mismo tiempo el proceso es mucho más preciso, aunque genera una gran cantidad de ruido.

El gran problema con el Path Tracing es que en un mismo píxel en pantalla puede haber diferentes valores de color según el búfer de imagen. Esto hace que en cada punto se tenga que calcular el valor, no decenas ni cientos de veces, sino incluso miles de veces en cada píxel. Esto ha hecho que esta técnica se haya quedado durante años relegada a granjas de renderizado en 3D para películas y ha forzado incluso la creación de técnicas avanzadas basadas en Deep Learning para paliar este problema.

Un ejemplo de ello es Quake 2 RTX, el cual no deja de ser un juego de 1998, pero al contrario que otros juegos que aplican este tipo de algoritmos para cosas puntuales este usa el 100% del Path Tracing y requiere una máquina varias órdenes de magnitud más potentes que lo que había en los ordenadores de aquel entonces. En todo caso, se espera que este se aplique como renderizado híbrido.

¿Renderizado híbrido?

Tanto el Path Tracing como el Ray Tracing no suponen una ventaja visual respecto a la rasterización si hablamos solo de luces directas, pero sí una carga computacional más alta. Es por ello que lo que se hace es generar la imagen primero con iluminación directa de forma convencional para luego aplicar el Ray Tracing o el Path Tracing según sea conveniente, aunque también de forma limitada, dado que en las actuales API DirectX 12 Ultimate y Vulkan todas las derivaciones del trazado de rayos no son automáticas. Por ello:

  • Se ha de especificar si un objeto genera un rayo o no, esto se aplica para los usados en sombras, reflejos, oclusión ambiental, etcétera. Por lo que con tal de conseguir una mayor cantidad de FPS se hará que una parte de los objetos no emitan rayos y, por tanto, no apliquen el Path Tracing.
  • Según el resultado, en el cálculo de la intersección, la cual es necesaria para saber si el rayo que sale de la cámara o un objeto colisiona con otro objeto, se aplica un programa Shader para cambiar el color de los píxeles del objeto u otro. En ciertas condiciones pueden incluso ignorar realizar el cálculo.

En la actualidad nos encontramos muy lejos todavía de poder ejecutar el Ray Tracing a todos los objetos en pantalla y mucho menos el Path Tracing. Por lo que se trata de una tecnología que tardará, no una generación, sino varias en ser adoptada y cada vez de forma más progresiva.

¿No es un poco pronto para que NVIDIA apueste por ello?

Hace unos años los estudios de Disney acabaron entrenando una IA para poder reducir el número de muestras necesarias por cada frame para que crear escenas con Path Tracing. Consiguieron el hito de hacer que con solo 32 muestras se llegará al nivel visual de una de 1000. Esto abarató enormemente los costes, ya que solo hacía falta ejecutar el algoritmo usando para ello un array sistólico o núcleo Tensor, un tipo de unidad que NVIDIA empezó a integrar a partir de Volta, y que no son otra cosa que los llamados Tensor Cores.

Es más, el propio fabricante de tarjetas gráficas y de cara al mercado profesional empezó a integrar su reductor de ruido (Denoiser) en su paquete de software NVIDIA OPTIX. El caso es que a día de hoy tenemos una RTX 4090 que permite realizar dicho proceso a tiempo real. Es decir, lo suficientemente rápido como para que ciertos efectos se apliquen no usando el Ray Tracing, sino Path Tracing, y ser mucho más precisos.

Como se puede ver, la apuesta de NVIDIA tiene que ver con su mapa de ruta relacionado con la IA que ha llevado a cabo en estos últimos años, un factor diferencial que los coloca muy por encima de su rival AMD y que esta última no puede replicar. De ahí a que apuesten por el Path Tracing al ser algo que ninguna tarjeta gráfica de la competencia puede emular.

El primer juego en aplicar el Path Tracing para ir un nivel por encima del uso del Ray Tracing en calidad visual ha sido con Cyberpunk 2077, una versión del juego de CD Projekt que por el momento requiere una RTX 4090 para funcionar por los altos requisitos técnicos de esta técnica. Se trata, por el momento, de una característica premium y que será deseable para cuando los juegos alcancen altas tasas de fotogramas por segundo con el Ray Tracing, lo que dará margen para una mejora visual importante.

En todo caso, si bien no es primer juego en utilizar Path Tracing, sí que es el primero de carácter contemporáneo en aplicarlo, abriendo la veda para que el resto de títulos existentes lo puedan aplicar y mejorar con ello su calidad visual. ¿El único hándicap? Por el momento no se trata de un estándar, por lo que deberemos esperar a su aplicación en un futuro DirectX 13 o en alguna extensión de Vulkan. En otras palabras, es una tecnología solo para NVIDIA.

Saludos.

No hay comentarios:

Publicar un comentario

Por favor sé respetuoso/a y escribe adecuadamente. Gracias.