Unreal Engine 5, ¿Realidad o Ficción?
¿Qué pasaría si lo que viésemos un día y pensásemos que es real no lo fuese? ¿Dónde esta el límite que separa la realidad de la ficción?
Han pasado ya 2 años desde que Epic Games lanzo al mundo el motor mas potente para el desarrollo de videojuegos. Pero ¿Es solo un motor de videojuegos?
Aquel 13 de Mayo de 2020 se produjo el mayor avance tecnológico en lo que a videojuegos se refiere de manera pública, ya que Epic Games lanzaba al mundo un motor, no solo capaz de procesar en tiempo real millones de polígonos prácticamente sin coste de fotogramas, sino que incluía un sistema de luz integrado capaz de competir con el hasta ahora mas potente sistema de iluminación "Ray Tracing".
Debido a la profundidad del tema a tratar, considero necesario dividir este artículo en 2 secciones distintas, donde hablaremos de los 2 puntos clave de este motor: Lumen y Nanite
Lumen
Durante mucho tiempo, hemos sentido una gran necesidad por hacer evolucionar los gráficos, no solo de los videojuegos, sino de cualquier entorno virtual 3D, con el objetivo de mejorar la experiencia del espectador, y no hay que olvidar que uno de los factores mas determinantes a la hora de simular realismo es la iluminación.
Hasta el 20 de septiembre del 2018, el ray-tracing era tan solo una técnica disponible para escenas pre-renderizadas, y se caracterizo su uso en las cinemáticas de muchas películas así como algunas cutscenes de videojuegos, pero la salida de las nuevas graficas de Nvidia GeForce 20 series permitieron el uso de esta técnica al usuario promedio, en muchos casos disminuyendo el rendimiento del juego y restándole demasiados FPS, por lo que a pesar del gran avance que esta gamma de tarjetas graficas suponía, no podemos destacarlo como un punto de inflexión en la evolución de los entornos virtuales.
Esta técnica consiste en proyectar rayos contra una superficie para generar sombras, tonalidades, etc.
Siendo fieles al comportamiento de la luz en el mundo real, al proyectar estos rayos contra una superficie se produce un rebote, en un ángulo simétrico al ángulo inicial de proyección. Estos rebotes se producen de manera infinita, hasta que debido a las propiedades de los materiales contra los que rebota se disipan. Realizar este proceso en tiempo real es demasiado costoso, ya que en el menor de los casos, por cada pixel existente en la pantalla, se calcula el trazado con sus respectivos rebotes de 1024 rayos de luz. Para evitar que este proceso pueda inhabilitar el entorno virtual, se establece un límite en el numero de rebotes que realiza la luz, reduciendo la carga en el ordenador, pero restándole información lumínica a la escena.
Con el lanzamiento de este motor, epic games nos presenta Lumen, un sistema de iluminación global en tiempo real capaz de calcular reflexiones, refracciones mediante dos técnicas distintas: Por software y por hardware. El uso de un hardware especifico nos dará resultados mas realistas, pero también ejerce mucha carga sobre el ordenador.
En ambos casos, el sistema que se utiliza es el mismo y es llevado a cabo en 2 fases. En la primera fase, lumen analiza la escena de manera global, sin tener en cuenta detalles mínimos, simplemente para extraer una serie de datos sobre el entorno que se almacenan en una memoria intermedia llamada Surface Cache. Acto seguido, se calculan desde diversos ángulos las distintas interacciones que la luz tiene con la escena, reflexiones, refracciones, iluminación directa, indirecta y difusa.
Con toda esa información, el programa comienza a analizar la escena de una manera mas meticulosa, prestando especial atención a los objetos que la componen. Este proceso es conocido como Screen Space Tracing. Aunque de una manera algo mas costosa en cuanto a rendimiento, este proceso podría sustituir al comúnmente utilizado "Screen Space Reflections" que utiliza información de la escena en función del posicionamiento de la cámara para generar reflexiones.
Nanite
Nanite es un sistema de renderizado de poligonaje de manera "2D". Habitualmente a la hora de crear un entorno virtual, la cantidad de polígonos de una malla 3D es muy importante para no sobrecargar el dispositivo. Normalmente, se crean 2 modelos, uno en baja resolución con una cantidad limitada de triángulos, y otro en alta resolución cuya densidad en la malla varía en función del nivel de detalle que se quiera conseguir. Después, mediante un proceso de bake, se traspasa la información del modelo en alta resolución al modelo en baja resolución mediante una textura 2D conocida como Normal Map. Este proceso, aunque permite conseguir resultados bastante buenos, a veces presenta carencias si se presta especial atención al detalle de los modelos. Este es el motivo por el que aunque la iluminación sea muy buena, no se consigue un resultado realista.
Con el uso de nanite, podemos comprimir una cantidad de polígonos infinita en un mapa 2D de triángulos, cuya densidad varia en función de la resolución, el detalle de la maya etc...
No es necesario recalcar la importancia del detalle en los modelos 3D a la hora de generar realismo, cuanta mas información se disponga al espectador, mayor es la sensación generada en el.
Además, nanite permite ajustar de manera automática los LOD (level of detail) del modelo gracias a que la tecnología nanite no es invariable, sino que se modifica con el paso del tiempo en forma y tamaño para adaptarse a las necesidades del entorno.
Gracias a la nanite y a lumen, se ha producido un gran cambio en el mundo de los videojuegos, ya que las posibilidades de creacion son ahora mas amplias, pero esto tambien afecta al mundo del cine.
Disponer de un motor que te permite crear entornos ultra realistas podría suponer que el cine pase a ser grabado en un green screen o incluso con fondos creados de pantallas LED como se hace en The Mandalorian.
Comentarios
Publicar un comentario