Boletín No. 85
1o. de julio de 2021
RAY TRACING
Flores Negrete Azereth
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Dr. Luis Martín Reséndiz Mendoza
Instituto Politécnico Nacional
Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas
Resumen
El Ray Tracing es una de las tecnologías más nuevas e innovadoras para el mundo de los videojuegos. Consiste en la simulación del comportamiento de la luz como sucedería en la vida real; calculando y analizando los rebotes de cada rayo trazado con los distintos objetos para lograr una iluminación lo más realista posible. Lo que produce una sensación de juego nueva siendo mucho más inmersiva y disfrutable para el jugador.
Es una tecnología que lleva muchos años desarrollándose, pero pocos años en el mercado, por lo que aún faltan muchos detalles que corregir. Es preciso aclarar que, para disfrutar del Ray Tracing en un juego, éste debe soportarlo, además de contar con un equipo de cómputo suficiente para las nuevas tarjetas gráficas que la integran. Siendo así algo que no resulta accesible para todo el mundo y se espera que en el futuro su uso sea más común en tarjetas gráficas de menor costo.
El Ray Tracing o en español “Trazado de Rayos” puede definirse como un algoritmo para la síntesis de imágenes que se encarga de calcular el camino de la luz simulando sus efectos sobre las superficies virtuales en las que incida. Lo que produce imágenes con un alto grado de realismo comparado con todas las técnicas anteriores a la invención de este método con la desventaja del alto costo computacional que implica.
NVIDIA ha sido de las empresas con mayor desarrollo de esta tecnología durante los últimos años; ésta lo define como: “La tecnología Ray Tracing es el santo grial de las tarjetas gráficas para gaming, y a que simula el comportamiento físico de la luz y logra una renderización en tiempo real y de calidad cinematográfica hasta en los juegos más exigentes”, Figura 1. [1]
a)
b)
Figura 1. Imágenes del juego Cyberpunk 2077 lanzado el 17 de septiembre del 2020. a) RTX deshabilitado y b) RTX habilitado [1] |
Para comprender esta tecnología con profundidad debemos hablar de algunos otros términos primero, pues el Ray Tracing va más allá de una simple mejora de gráficos.
1. Modelos 3D
En los videojuegos más viejos o simples, se desarrollaban modelos 2D conocidos como sprites que son simplemente mapas de bits. Hoy en día la mayoría de los videojuegos se hacen utilizando modelos 3D siendo éstos la representación matemática de un diseño en tres dimensiones. Se puede entender como una analogía donde la pintura serían los sprites y la escultura los modelos 3D.
Estos modelos 3D se pueden construir virtualmente con polígonos, ya sea con triángulos o con cuadrados utilizando los softwares adecuados; como resultado tenemos un conjunto de coordenadas espaciales, donde cada una representa la posición de cada uno de los puntos que forman nuestro modelo.
Un elemento muy importante en la presentación de estos modelos es la cámara, es decir, la perspectiva desde donde vemos los modelos. Por lo que la base del videojuego es una escena con modelos 3D y una cámara. A este proceso de traducir ese conjunto de coordenadas y transformarlo en algo que pueda apreciarse desde la cámara, se le conoce como proyección. Pero para poder mostrar este escenario a las pantallas se debe pasar por un proceso más llamado rasterización.
2. Rasterización
Las pantallas son capaces de representar imágenes a través de una matriz de puntos de colores, pero no pueden interpretar los mapas de coordenadas, es decir los modelos 3D. Por lo que primero se debe hacer un mapa de rastreo (bitmap), que consiste en asignarle un valor numérico al color a cada píxel de la pantalla para poder representar el modelo. Esto es la rasterización, calcular el color a cada instante dependiendo del movimiento de la cámara y de los modelos en la escena, los cuales interactúan con elementos que hacen ver diferente a los modelos, como la luz. Para conseguir efectos de iluminación los desarrolladores de videojuegos han creado varias técnicas que se continúan usando después de la implementación del Ray Tracing.
3. Iluminación Direccional
Con el uso de algoritmos se calcula el ángulo de incidencia en cada cara de los modelos con respecto a la fuente de iluminación simple, ya sea el sol o un foco en una habitación oscura. De acuerdo con dicho ángulo, se define el color de cada píxel. El problema con estos algoritmos es que se calcula a cada segundo la incidencia de la luz en cada modelo, pero no se consideran las interacciones entre los modelos ni con el resto de la escena. Hay ciertas superficies que tienen la capacidad de reflejar la luz en la vida real, pero con el método de iluminación direccional esos reflejos no se muestran, además de que es sumamente complicado la creación de las sombras por lo que se obtiene una iluminación precaria pero funcional para juegos sencillos.
Para mejorar la iluminación de la escena se emplea un truco. Consiste en colocar una cámara en las fuentes de luz, renderizar la escena y crear un mapa de profundidad donde se marcan de colores más oscuros los objetos más cercanos y de colores más claros los objetos más lejanos para poder crear el Shadow Maping (mapa de sombras), donde cada sombra de los modelos es independiente y no se consideran las interacciones de las sombras con los reflejos de superficies o con las demás sombras. [2]
4. Mapas de luz
Para hacer aún más realista la escena con el método anterior, se usan mapas de luz (lightmaps) que son texturas que se aplican a los modelos 3D, donde se muestra cómo se verá la luz sobre éstos. Como ya está precalculado, los lightmaps están fijos y siempre se apreciará la misma iluminación sobre el objeto, aunque se mueva la cámara. La combinación de las sombras antes mencionadas y las texturas funcionan en escenas donde no interactúan demasiados objetos. [2 - 3]
5. Reflejos Realistas
La técnica de usar reflejos realistas consiste en superponer imágenes ya renderizadas sobre las superficies donde se prevé que reflejen. Es una técnica muy usada. Sin embargo, no aparecen los reflejos de objetos que no se ven en cámara, aún si la superficie reflejante aparece en escena. Además, solo funciona en superficies perfectamente planas o esféricas. Para superficies reflejantes irregulares como automóviles se colocan imágenes que no corresponden con el reflejo real, sin que sea notorio a simple vista. [4]
Calcular la luz con técnica de rastreo a cada segundo en un videojuego es algo sumamente complicado. Se requiere de computadoras con características muy específicas además de caras, por lo que se aplican las técnicas y trucos antes mencionados para lograr el aspecto más realista posible.
A diferencia de las imágenes de un videojuego, las de una película cuentan con una iluminación sumamente realista con reflejos creados para cada fotograma específicamente. Para una película como Monsters INC 2 que utiliza la tecnología RTX, tomaría 29 horas renderizar un segundo en un solo procesador, por lo que renderizar toda la película tomaría aproximadamente 500 años. Para acelerar el proceso, grandes empresas como Disney cuentan con granjas de hasta 30,000 procesadores para lograr renderizar toda la película en una semana. Esto no es posible para los videojuegos, debido a que se deben ver las escenas fluidas mientras se renderizan a cada segundo.
6. Ray Tracing
La escena se aprecia desde una cámara principal, desde la cual se lanza un rayo a un píxel de la imagen y se calcula la iluminación que afecta a los modelos, ya sea iluminación directa emitida por fuentes de luz o iluminación indirecta, reflejada por objetos, así con cada uno de los pixeles que conforman la imagen. Con esta tecnología se supera a todas las técnicas antes mencionadas, pues se está simulando totalmente el comportamiento de la luz. [5]
Para el uso de esta tecnología se deben determinar todas las interacciones de los objetos entre sí. Para esto se utiliza un sistema de colisiones, en el que cada uno de los modelos 3D cuenta con una Hitbox (caja de colisión). Ésta simplifica los límites de los modelos y normalmente es rectangular para facilitar la interacción entre ellos, en lugar de usar su geometría irregular ya que implicaría cálculos más complejos. [2]
Empresas como NVIDIA comenzaron a desarrollar algoritmos predecesores de la tecnología Ray Tracing en sus tarjetas gráficas hace muchos años. Fue hasta finales de 2018 cuando las primeras tarjetas gráficas con esta tecnología salieron al mercado y para reconocerlas reciben el nombre RTX antes del número de modelo. Sin embargo, que una computadora soporte juegos con RTX es complicado y costoso. Para que los juegos creados bajo esta tecnología sean accesibles para más personas, se utiliza únicamente en escenas o modelos puntuales como reflejos de agua y para el resto se utilizan los trucos anteriormente mencionados. [6 - 7]
El Ray Tracing es una nueva tecnología que sin duda ha mejorado la experiencia del videojuego. Sin embargo, implica ciertas desventajas como el alto costo y limitaciones técnicas. Se espera que con el paso del tiempo su uso sea más eficiente y accesible, que los desarrolladores de videojuegos la utilicen más a menudo y que incluso existan juegos 100% elaborados con Ray Tracing, para disfrutar al máximo lo que esta tecnología puede ofrecer.
Referencias
- NVIDIA. (2021). RTX. IT’S ON. 2 de marzo del 2021. NVIDIA. https://www.nvidia.com/es-la/geforce/rtx/
- Ros, I. (2021). Ray Tracing o trazado de rayos: todo lo que siempre quisiste saber, pero nunca te atreviste a preguntar.MC1 marzo del 2021. Sitio web: https://www.muycomputer.com/2021/02/02/ray-tracing-trazado-de-rayos-claves/
- Tokio School. (2020). ¿Qué son las texturas para videojuegos?Tokio? 2 marzo del 2021. Sitio web: https://www.tokioschool.com/noticias/texturas-para-videojuegos/#:~:text=En%20el%20mundo%20de%20los,y%20por%20ende%20m%C3%A1s%20calidad
- TheOverclocker. (2019). How Ray Tracing Works – Technology Explained. TheOverClocker3 de marzo del 2021. Sitio web: https://www.theoverclocker.com/how-ray-tracing-works-technology-explained/
- Scratchapixel 2.0. (2020). An Overview of the Ray-Tracing Rendering Technique. Scratchapixel 2.0. 3 de marzo del 2021. Sitio web: https://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-overview
- Carvajal, C. (2018). Confirmadas las Nvidia RTX 2080 Ti, 2080 y 2070: características, precio y lanzamiento.TRIBECA review.2 de marzo del 2021. Sitio web: http://tribecareview.es/informatica/nvidia-rtx-2080-ti-2070-caracteristicas-precio-lanzamiento/
- López, P. (2020). Ray Tracing: ¿Qué es y para qué sirve? GEEKNETIC1 de marzo del 2021. Sitio web: https://www.geeknetic.es/Ray-Tracing/que-es-y-para-que-sirve