El Raytracing en videojuegos no es cosa “de ahora”

Desde que los aceleradores de hardware de gráficos 3D se han hecho populares en las computadoras de escritorio normales, el algoritmo de renderización de los juegos de computadora comerciales se ha limitado a la tecnología de rasterización que tiene ciertas ventajas, pero también limitaciones. Sin embargo, las PC podían hacer ray-tracing en tiempo real desde fines de los 90, pero muy limitado en la complejidad de las escenas que se podían representar y el rendimiento real logrado.

Con sus nuevas tarjetas RTX NVIDIA “lleva” a las masas (si no fuera por los precios) capacidades de representación de imagenes en los videojuegos mediante raytracing. Si bien AMD presentó su versión profesional de ProRender con ray-tracing en tiempo real en marzo, aún no se conoce que tendrá disponible para competir en el segmento de consumo.

Los investigadores trabajan hace años en como explotar esta técnica avanzada de representación, logrando resultados en tiempo real. Y que mejor lugar para ver estos resultados que llevándola a los videojuegos. La tarea no era y aún no es fácil, en vista de la necesidad de representacion en tiempo real y de baja latencia y las grandes necesidades de potencia computacional requerida. Los investigadores empleaban un motor de juego conocido, del que se habian ido liberando los codigos fuentes de sus distintas versiones. Estos son los idTech de idSoftware, el corazon de juegos como los Quake, Doom y Wolfenstein. De aquí obtenian el acceso a los datos del juego para representarlos con el nuevo sistema.

Un proyecto mostró un avance suficiente como para que Intel contratara a los investigadores, con la tarea de llevar sus resultados de la mejor manera posible a sus productos. Intel deseaba mostrar las capacidades de sus chips multinucleos, sus sitemas multiprocesadores, y mas importante, la capacidad del hardware del proyecto Larrabee.

Empleando los datos de los juegos, el motor de raytrace genraba las imagens con iluminación global, reflexiones y refracciones, sombras difusas, mejor detección de colisiones y otras ventajas técnicas.

Quake 3: Ray Traced
Fue el primer proyecto, funcional para 2004, cuando fueron contratados por Intel.




Quake 4: Ray Traced
El siguiente paso.




Quake Wars: Ray Traced
Aplicó un renderizador de trazado de rayos al contenido del juego de Enemy Territory: Quake Wars . La posibilidad de usar el trazado de rayos para este juego en tiempo real se demostró primero en los servidores y luego de un mayor progreso en las estaciones de trabajo y en un prototipo temprano del hardware Larrabee. Este es el tercer gran proyecto que incorpora esta técnica en un juego con fines de investigación de algoritmos de representación alternativos. Un sucesor de este proyecto Wolfenstein: Ray Traced fue creado en 2010.






Wolfenstein: Ray Traced
Es un proyecto de investigación de Intel Corporation que aplicó un renderizador de trazado de rayos al contenido del juego de Wolfenstein (2009). Este es el cuarto gran proyecto que incorpora trazado de rayos en tiempo real en un juego con fines de investigación de algoritmos de representación alternativos. El proyecto se demostró en el Fall Intel Developer Forum 2010 utilizando un enfoque de juego basado en la nube. La imagen del trazado de rayos se calculaba en cuatro máquinas, cada una de ellas con un prototipo de la tarjeta Intel Knigths Ferry en su interior. Esa imagen se envíava a un thinclient (pequeña computadora portátil) a través de Gigabit Ethernet, y el cliente enviaba actualizaciones de los estados del juego a los servidores.




Mejoras mediante el uso del trazado de rayos

Sombras: además de las sombras duras usuales que se generan fácilmente mediante el uso de un trazador de rayos, este proyecto también destacó los beneficios de obtener sombras plausibles a través de objetos transparentes parciales. Esto se ha mostrado primero en un sombreador de campo de fuerza que cambia la transparencia y el color con el tiempo. La intensidad de las sombras cambia en consecuencia. [3] Otro ejemplo de esto es un modelo de molino de viento con velas azules que proyectan sombras de colores. [4] A partir de 2009, ningún juego lanzado comercialmente ha mostrado diferentes sombras de colores de intensidad de objetos transparentes parciales.

Agua: Se han mostrado reflejos y refracciones exactas por píxel en una superficie de agua dinámica con simulación de onda alrededor de una isla. En un rasterizador tradicional, estos efectos solo son posibles de una manera menos precisa mediante la generación de texturas de reflexión separadas y, por lo general, algún algoritmo de distorsión que simula un comportamiento similar a la refracción.

Bajo el agua: simulando reflejos y refracciones correctas, el jugador puede ver el efecto de reflexión interna total si se encuentra debajo de la superficie del agua y mira hacia el cielo. A partir de 2009 , ningún juego lanzado comercialmente ha mostrado este efecto especial.

Mejora del juego: por ejemplo, la lente del rifle de francotirador del juego se ha cambiado para mostrar reflejos físicamente correctos del entorno detrás del jugador. Para lograr esto en un renderizador rasterizado tradicional, se habría necesitado otra vista para ser renderizada, almacenada en una textura y proyectada de nuevo en la lente. En un trazador de rayos, este efecto se puede lograr de manera eficiente ya que solo requiere tantos rayos de reflexión como píxeles visibles en el alcance. Esto también podría ser una característica de mejora del juego, ya que proporciona al jugador información sobre lo que está sucediendo detrás de él como un enemigo que se aproxima. Habilitar este efecto en el trazador de rayos tuvo solo un impacto de rendimiento del 1% en la velocidad de fotogramas.

Vidrio: para demostrar las propiedades de un sombreador de vidrio con trazado de rayos, se ha mostrado una cúpula que consiste en una superficie de vidrio que refleja correctamente el entorno circundante, incluidos todos los objetos dinámicos.

Detección de colisiones: además de manejar las tareas gráficas, el trazador de rayos también se ha utilizado para calcular la detección de colisiones.

Portales: Se ha mostrado recursión múltiple de portales de cámara. Este efecto ya se conoce por otros juegos como Portal con una profundidad de recursión predeterminada de 10. En comparación con esto, la implementación del trazado de rayos se logró a través de una sola línea de código de lenguaje de sombreado de trazado de rayos y muestra una profundidad de recursión de hasta 250.

Dinámica masiva: para demostrar que las escenas altamente dinámicas también se pueden manejar en un trazador de rayos, se han agregado y animado 500 objetos de jugador a la escena.

Estación de vigilancia: en una sala del nivel se agregó una estación de vigilancia que muestra doce partes diferentes del nivel de juego al mismo tiempo, todas actualizadas en tiempo real. Mediante el uso del trazado de rayos, el impacto en el rendimiento se debe al tamaño total de las pantallas vistas desde la posición actual, pero no tanto sobre lo que se muestran en esas pantallas. Eso permite tener una gran cantidad de vistas diferentes al mismo tiempo en comparación con los juegos rasterizados tradicionales que usualmente muestran solo una o dos de esas al mismo tiempo. Dicha estación de vigilancia podría mejorar el juego al proporcionar al jugador rápidamente información sobre sus enemigos.

Desafíos usando el trazado de rayos

Rendimiento
No puede haber una comparación directa de rendimiento entre la versión original y la de trazado de rayos debido a los efectos especiales adicionales, pero en general las tasas de cuadros en la versión original, rasterizada son varios niveles más altas y generalmente más de 100 cuadros por segundo en Tarjetas gráficas de gama alta de 2009. Los números de rendimiento informados en una resolución de 1280×720 de la versión de trazado de rayos en la configuración basada en la nube son 40-80 fotogramas/s (dependiendo de la escena). Los números se han dado para una variedad de sistemas:

•Sistema de servidor Caneland con cuatro CPU de cuatro núcleos de Tigerton , 2.93 GHz: 15–20 cuadros/s
•Sistema de servidor Caneland con cuatro CPU de núcleo hexa de Dunnington , 2.66 GHz: 20–35 cuadros/s
•Sistema de estaciones de trabajo con dos CPU de cuatro núcleos Nehalem , 3.2 GHz: 15–20 cuadros/s
•Tarjeta gráfica Larrabee (prototipo temprano): Números exactos desconocidos.

Transparencias
En el enfoque de rasterización tradicional, los objetos transparentes se pueden representar de manera comparativamente rápida. En la implementación de Quake Wars: Ray, los objetos trazados, como los árboles, que se simulan a través de múltiples superficies de quads parcialmente transparentes, han sido intensivos en rendimiento para renderizar.

Otros

Desde entonces han existido otros varios ejemplos experimentales de aplicación de ray-tracing y path-tracing (una técnica similar) en juegos. Tan reciente como este de fines de 2017. Un representador con path-tracing basado en GPUs comunes, creado específicamente para Quake 2. Tiene varias optimizaciones que solo son viables debido a las características típicas de los datos y contenidos Quake 2, como el soporte para fuentes de luz en forma de paralelogramos, recorrido de BSP de la geometría de escena, manejo especial del cielo y “portales”.






¿Ven ese ruido en las imágenes? Ocurre cuando en el path-tracing no hay suficientes muestras (rayos). Pero a más rayos y saltos entre objetos, peor rendimiento, al aumentar mucho la complejidad computacional. Esto por ejemplo, NVIDIA lo resuelve de dos maneras aplicando inteligencia artificial, más exactamente, redes neurales. Se obtiene primero una imagen “rápida” pero ruidosa y luego realiza el completamiento “inteligente” de los pixeles ruidosos y aplica una reducción de ruido residual en la imagen. Esto se aplica en sus sistemas profesionales. Lo que logra es obtener imágenes cercanas a un ray-tracing más denso y preciso, pero a un menor coste.

Pixar investigó el uso de una red neuronal convolucional de aprendizaje profundo (CNN), entrenándola con millones de fotogramas de su película “Finding Dory”. Una vez entrenada, Pixar pudo usar la misma red para reducir el ruido de otras escenas. Esto permitió a Pixar alcanzar un gran aumento de velocidad en el tiempo de renderización, al hacer una representación con path-tracing de ruta completa para sus últimas películas, sin requerir potencialmente años de tiempo de representación, y tanto “Cars 3” como “Coco” hicieron un uso extensivo de la eliminación de ruido. Este otro de los orígenes de la técnica similar euq usa NVIDIA.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *