Lecciones sobre el tiempo real

¿Qué es el trazado de rayos en tiempo real y por qué es importante?

Cortesía de Epic Records
Durante los últimos tres o cuatro años, habrás oído hablar mucho del trazado de rayos en tiempo real. Es posible que tus amigos te hayan dicho que necesitas una codiciada tarjeta gráfica NVIDIA RTX para tu próximo PC o portátil. Aunque puede que no tengas del todo claro a qué se debe todo este alboroto. Si ese es el caso, este es el artículo indicado para ti.

En primer lugar, ¿qué es el trazado de rayos?

Empecemos con lo básico. Definiremos el trazado de rayos a un nivel muy alto y veremos en qué se diferencia de la rasterización, tecnología a la que sustituye en muchos casos. 

Tanto la rasterización como el trazado de rayos son métodos de renderización utilizados en los gráficos por ordenador para determinar el color de los píxeles que componen la imagen que se muestra en la pantalla, o que se crea en el disco duro cuando se pulsa el botón de renderización. 

La rasterización funciona dibujando los objetos de una escena de atrás hacia adelante, mapeando los objetos 3D al plano 2D mediante matrices de transformación. Determina el color de cada píxel basándose en la información (color, textura o normal) almacenada en la malla (modelo), combinada con la iluminación de la escena. Por lo general, es mucho más rápido que el trazado de rayos, pero no puede simular efectos que dependen de la luz rebotada como los reflejos reales, la translucidez y la oclusión de ambiente.
Por otra parte, el trazado de rayos funciona lanzando un rayo desde el punto de vista de la cámara y traza su trayectoria mientras rebota alrededor de los objetos de la escena hasta llegar a una fuente de luz, recopilando y disponiendo el color a su paso. Como imita el comportamiento físico de los rayos de luz, ofrece resultados de mayor calidad y fotorrealismo que la rasterización como sombras suaves y detalladas, oclusión de ambiente y refracciones y reflejos precisos. No obstante, todas estas ventajas tienen un coste: la velocidad.

¿Qué es el renderizado en tiempo real?

Al ver una película en el cine —ya sea una producción de acción real con actores y entornos reales o un reportaje generado por ordenador— lo que el cerebro percibe como movimiento continuo son en realidad 24 fotogramas individuales que se reproducen sucesivamente por cada segundo de metraje. 

En el caso de las películas generadas por ordenador, cada uno de esos fotogramas debe renderizarse, es decir, el ordenador debe calcular cómo debe ser cada uno de los píxeles que componen el fotograma. En los canales tradicionales de gráficos por ordenador (CG), esto se hace mediante un renderizador sin conexión, en el que no es raro que un único fotograma tarde horas o días en renderizarse para conseguir la resolución y la calidad deseadas.

Sin embargo, para los juegos u otras aplicaciones interactivas en las que no hay forma de saber de antemano lo que la cámara verá en cada momento, los fotogramas deben renderizarse a la misma velocidad a la que se van a reproducir, es decir, en tiempo real. Para los juegos actuales, es necesario renderizar 60 o incluso 120 fotogramas cada segundo, lo que equivale a unos pocos milisegundos por fotograma.

La rasterización es lo suficientemente rápida como para utilizarla en el renderizado en tiempo real en los juegos —aunque con muchos trucos y soluciones inteligentes— durante décadas. Pero hasta hace poco, el trazado de rayos solo se utilizaba para el renderizado sin conexión. En los juegos solo se utilizaba el trazado de rayos para las cinemáticas (también conocidas como secuencias) que, al igual que las películas, se renderizan de antemano y luego se reproducen dentro del juego, pero no se puede interactuar con ellas.

¿Qué es lo que hace posible el trazado de rayos en tiempo real?

Entonces, ¿qué ha cambiado? En 2018, surgieron dos tecnologías impulsoras de forma simultánea: El entorno DXR (DirectX Raytracing) de Microsoft y la plataforma RTX de NVIDIA. Al trabajar con NVIDIA y ILMxLAB, Epic Games pudo mostrar por primera vez el trazado de rayos en tiempo real en la GDC de marzo de 2018 con la demo Reflections, en la que aparecían personajes de Star Wars: Los últimos Jedi.
El fragmento mostraba luces de área texturizadas, sombras de luz de área trazadas por rayos, reflejos trazados por rayos, oclusión ambiental trazada por rayos, profundidad de campo cinematográfica y reductores de ruido en tiempo real de NVIDIA ejecutándose en conjunto. 

Así era antes. El código del prototipo de Unreal Engine aún no estaba disponible para los usuarios, el hardware necesario para ejecutar la demo en tiempo real consistía en una NVIDIA DGX Station con cuatro GPU NVIDIA Volta con un precio que rondaba los 70 000 dólares, por lo que ni el software ni el hardware eran lo que podría considerarse accesible para el usuario medio.
 

¿El trazado de rayos en tiempo real es para todos?

Avancemos hasta agosto de 2018 en la Gamescom, donde NVIDIA mostró Reflections ejecutándose en tiempo real en una de sus recién anunciadas GPU GeForce RTX 2080 Ti de 1200 dólares. 

En la GDC de marzo del año siguiente, Epic Games lanzó la beta de su tecnología de trazado de rayos en tiempo real en Unreal Engine 4.22. Utilizaba un enfoque híbrido que combinaba las capacidades de trazado de rayos para los pases que se aprovechaban de ellas con las técnicas tradicionales de rasterizado para los que no lo hacían, lo que permitía obtener resultados en tiempo real.

A la misma vez, Goodbye Kansas y Deep Forest Films demostraron lo mucho que ha avanzado el software en 12 meses con Troll, una película en tiempo real que incluye un humano digital
Hoy en día, con Unreal Engine 5, el software de trazado de rayos en tiempo real de Epic ha recibido muchas mejoras en su rendimiento, estabilidad y composición, y se pueden conseguir tarjetas gráficas RTX capaces de ejecutarlo en tiempo real por menos de 500 dólares. La descarga gratuita de Unreal Engine permite dar los primeros pasos y, si se combina con modelos de tarjetas gráficas RTX a un precio bastante asequible, el trazado de rayos en tiempo real está al alcance de un espectro mucho más amplio de usuarios. 

¿Cuáles son los beneficios del trazado de rayos?

Echemos un vistazo a algunas de las ventajas del trazado de rayos, tanto en tiempo real como sin conexión. 

Los reflejos más fieles aportan mucha credibilidad a una escena. Los reflejos con trazado de rayos admiten múltiples rebotes, lo que significa que pueden crear interreflexiones para las superficies reflectantes, como en la vida real. También reflejan objetos fuera del campo de visión. Para los diseñadores y publicistas del mundo del automóvil, la forma en que la luz se refleja en una superficie es de suma importancia. El trazado de rayos les permite visualizarlo antes de construir el coche.
Cortesía de GIANTSTEP
Las sombras con trazado de rayos simulan efectos de iluminación de un área suave para los objetos del entorno. Esto significa que, en función del tamaño del origen de la luz o del ángulo de la misma, la sombra de un objeto será más nítida cerca de la superficie de contacto que de lejos, donde se suaviza y ensancha. Además de fijar los objetos en la escena, las sombras trazadas por rayos capturan detalles sutiles en zonas como la tapicería, así los interiores resultan mucho más convincentes. Para los arquitectos, las sombras trazadas por rayos también permiten realizar estudios solares precisos.
La iluminación global simula cómo la interacción natural de la luz con los objetos afecta al color de otros objetos de la escena, teniendo en cuenta la absorción y la reflectividad de los materiales de los que están hechos los objetos. Aumenta enormemente el realismo de las escenas. Con el trazado de rayos, la iluminación global se calcula para cada fotograma en vez de hacer bake previo, lo que significa que puede cambiar con el tiempo, como cuando se enciende o se apaga una luz, cuando sale el sol o cuando alguien abre una puerta. Lumen es un sistema de Unreal Engine totalmente dinámico para la iluminación global y los reflejos que utiliza múltiples métodos de trazado de rayos.
La oclusión de ambiente es el sombreado de las zonas que bloquean la luz ambiental (iluminación que no procede directamente de una fuente de luz), como las esquinas y los bordes donde se juntan las paredes o las grietas y arrugas de la piel. La oclusión ambiental trazada por rayos es mucho más precisa (y, por lo tanto, creíble) que la oclusión de ambiente en el espacio de la pantalla. 
En el caso de los renderizados de exteriores o de interiores con grandes ventanas, la representación precisa de la luz del cielo es esencial para crear una escena creíble. Con el trazado de rayos, puedes utilizar una imagen de alto rango dinámico (HDR) para iluminar la escena, dando lugar a efectos sutiles y suaves que imitan eficazmente el mundo real. 
Cortesía de ARCHVYZ, diseño de Toledano Architects
Además de todas estas ventajas, el trazado de rayos suele ser mucho más fácil de configurar y utilizar que los métodos utilizados para representar algunos de estos efectos en los renderizadores de trama, como las sombras de mapa de profundidad, la iluminación global tras hacer bake y las sondas o planos de reflexión.

¿Quién está usando el trazado de rayos en tiempo real?

El objetivo de muchos desarrolladores es hacer que sus experiencias sean cada vez más creíbles, y para ellos el trazado de rayos en tiempo real es algo natural. Como los títulos AAA suelen tener un ciclo de producción de tres a cuatro años, los jugadores han tenido que ser pacientes para aprovechar los beneficios de la nueva tecnología. No obstante, hoy en día, la última hornada de juegos con un aspecto magnífico que utilizan el trazado de rayos en tiempo real está creciendo rápidamente. Buenos ejemplos son Deliver Us Mars, Ghostwire: Tokyo, y Hellblade: Senua’s Sacrifice. Hay muchos más títulos en desarrollo.
Además de los juegos, el trazado de rayos en tiempo real en Unreal Engine se utiliza para la visualización arquitectónica, como en esta herramienta de venta interactiva de Buildmedia, para la visualización de automóviles, como esta herramienta de revisión de diseño en RV de Subaru, en la producción virtual para el cine y la televisión, como este ejemplo de cómo Volkswagen hace anuncios de coches más ecológicos, y en otras aplicaciones en tiempo real. Cualquier aplicación interactiva que busque el realismo se beneficia del trazado de rayos en tiempo real, desde los conciertos virtuales hasta la moda en línea y mucho más. Al simular el comportamiento natural de la luz, las experiencias de trazado de rayos en tiempo real son mucho más envolventes y creíbles. 
Cortesía de Epic Records
El trazado de rayos en tiempo real también está revolucionando el mundo de la creación de contenidos animados para el cine y la televisión, como demuestra la serie Armored Saurus de Studio EON, que también empleó técnicas de producción virtual. Al poder renderizar en una fracción del tiempo que sería necesario en un proceso tradicional y seguir teniendo el aspecto que exige el público, no solo se ahorra en costes de producción, sino que se puede procesar hasta el último minuto para encontrar la mejor versión de la historia.
Cortesía de Armored Saurus y Studio EON

Primeros pasos con el trazado de rayos en tiempo real

Si quieres probar el trazado de rayos en tiempo real en Unreal Engine, puedes descargar el software de forma gratuita y consultar la documentación para comprobar los requisitos del sistema. También puedes descubrir cómo activar el trazado de rayos en tiempo real y obtener más información sobre las funciones. 

Si prefieres los tutoriales en vídeo, visita la Comunidad de desarrolladores de Epic, donde encontrarás cientos de horas de aprendizaje gratuito en línea, entre los que se incluyen estos cursos sobre el trazado de rayos.

Además, podrás descubrir otra técnica de trazado de rayos que está disponible en Unreal Engine, el llamado trazado de rutas, un modo de renderizado progresivo y con aceleración por hardware que mitiga las desventajas de las funciones en tiempo real con una iluminación global físicamente correcta y sin complicaciones, reflexión y refracción de materiales, etc.
Cortesía de ARCHVYZ, diseño de Toledano Architects

Más lecciones sobre la tecnología de tiempo real


lecciones sobre el tiempo real

¿Cómo se crea un humano digital?

lecciones sobre el tiempo real

¿Qué es un animador 3D?

lecciones sobre el tiempo real

¿Qué es la realidad aumentada?

Artículos relacionados


Trazado de rayos

Lumen introduce la iluminación global en tiempo real en el capítulo 4 de Fortnite Battle Royale