¿Qué es Ray Tracing?, el nuevo mantra de los gamers

En los últimos meses se ha hablado mucho en los juegos sobre el rastreo de rayos, una tecnología de representación que debería sustituir a la rasterización en el futuro. Por ahora hablamos de renderización híbrida (hybrid rendering), con el uso del trazado de rayos sólo para algunos aspectos en los videojuegos, ya que la técnica es muy pesada de manejar, por lo que no es posible -por el momento- renderizar toda la escena en el trazado de rayos en tiempo real.

Intentemos explicar qué es el rastreo de rayos y qué significa para el mundo de los juegos. Antes de explicarlo tenemos que decir que desde principios de los años 90 la representación tridimensional se basa en un proceso llamado «rasterización», en el que los objetos se crean a partir de una malla de triángulos o polígonos que sirven para representar el modelo tridimensional de un objeto.

La tubería de representación convierte cada triángulo de modelos 3D en píxeles que se muestran en una pantalla 2D. Los píxeles, a su vez, pueden ser procesados (sombreados) antes de ser mostrados en la pantalla. En esta etapa se cambia el color de un píxel de acuerdo con la forma en que la luz de la escena lo golpea y se aplican una o más texturas al píxel. La rasterización todavía puede ofrecer una excelente calidad gráfica, como lo demuestran muchos juegos de hoy en día.

El trazado de rayos actúa de manera diferente y es un paso más hacia el objetivo final, el fotorrealismo, es decir, la obtención de imágenes indistinguibles de la realidad. Utilizado durante mucho tiempo para definir una representación «en tiempo no real» debido a su pesadez, permite una iluminación realista de las escenas simulando el comportamiento físico de la luz, teniendo en cuenta las interacciones de los rayos producidos por una o más fuentes con las diversas superficies, antes de llegar al ojo humano.

Esto al menos es lo que sucede en la realidad. En el caso de los gráficos, la trayectoria de la luz se calcula siguiendo los rayos hacia atrás a lo largo de la trayectoria que deberían haber tomado antes de golpear una lente imaginaria.

A medida que se camina por la escena, la luz puede ser reflejada de un objeto a otro (causando reflejos), bloqueada por otros objetos (provocando sombras) o pasando a través de objetos transparentes y semitransparentes (refracción). Todas estas interacciones se combinan para producir el color final de un píxel que luego se muestra en la pantalla.

En resumen, las propiedades materiales de la superficie de un objeto, como el color, la reflectividad y la opacidad, son todas informaciones que influyen en el color del objeto y en la forma en que interactúa con los rayos de luz. Debido a que los rayos se propagan desde el ojo, la luz y la sombra interactúan naturalmente cambiando el ángulo de visión.

Hasta ahora el trazado de rayos se ha visto como el Santo Grial de la representación, ya que permite aumentar drásticamente la calidad gráfica, permitiendo luces y sombras de gran calidad en todo momento.

Desafortunadamente, tanta belleza también requiere mucha potencia para el disfrute en tiempo real, como la que deben proporcionar los videojuegos. Esto a pesar de que el seguimiento inverso de los rayos permite aligerar los cálculos necesarios, ya que algunos rayos de luz pueden no proporcionar información importante a los que están observando una escena en particular.

Hasta ahora el rastreo de rayos era una especie de tabú, si no para la representación de «tiempo no real». La tecnología en sí misma no es exactamente nueva y probablemente te la has encontrado varias veces, porque tiene sus raíces a finales de los 60, cuando Arthur Appel de IBM introdujo el concepto de emisión de rayos, que consiste en iniciar los rayos desde el ojo, uno por píxel, y encontrar el objeto más cercano que bloquee su camino. El objeto golpeado es lo que el ojo ve a través de ese píxel.

En 1979 Turner Whitted completó el trabajo, capturando los reflejos, las sombras y la refracción. Con la técnica de Whitted, cuando un rayo encuentra un objeto en la escena, la información sobre el color y la iluminación en el punto de impacto en la superficie del objeto contribuye al color del píxel y al nivel de iluminación. Si el rayo rebota o viaja a través de las superficies de diferentes objetos antes de llegar a la fuente de luz, la información de color e iluminación de todos estos objetos puede contribuir al color final del píxel.

Robert Cook, Thomas Porter y Loren Carpenter en 1984 explicaron que el trazado de rayos puede incorporar una serie de técnicas comunes de producción de películas – incluyendo el desenfoque por movimiento, la profundidad de campo, la semisombra, la translucidez y los reflejos borrosos – hasta ahora sólo creadas con cámaras de vídeo. Dos años más tarde, el profesor de Caltech Jim Kajiya, en «La ecuación de la representación», amplió aún más la forma en que la luz se dispersa en una escena.

Hollywood utiliza el trazado de rayos en las películas para generar o mejorar los efectos especiales digitales y fusionarlos con la acción real. Los diseñadores y arquitectos utilizan el trazado de rayos para generar prototipos fotorrealistas de sus productos. Las compañías de cine pueden tomarse el tiempo que quieran para renderizar una sola imagen, y lo hacen fuera de línea a través de muchos ordenadores situados en enormes granjas de render. Renderizar videojuegos requiere una fracción de segundo. Es por eso que el rastreo de rayos sólo recientemente ha empezado a asomar en el mundo de los juegos y de manera limitada.

El campo de batalla aplica el trazado de rayos a los reflejos. Metro Exodus lo utiliza para la iluminación global del sol y el cielo, dando forma a la forma en que la luz interactúa con varias superficies. Las fuentes de luz locales no se renderizan en el trazado de rayos. Shadow of The Tomb Raider lo usa para los efectos de sombra,

Debido a que el trazado de rayos es tan intensivo en potencia, a menudo se utiliza para renderizar las áreas u objetos de una escena que más se benefician de la calidad visual y el realismo de la técnica, mientras que el resto de la escena se renderiza mediante rasterización. La rasterización todavía puede ofrecer una excelente calidad gráfica.

Con la llegada de nuevas arquitecturas gráficas, como la nueva Turing de Nvidia, las GPU están adquiriendo la capacidad de cálculo para realizar algunas cargas de trazado de rayos en tiempo real. Esto es a través de unidades dedicadas a la aceleración de cómputo y el desarrollo por parte de Microsoft de una API dedicada llamada DirectX Raytracing (DXR). El API de Vulkan también soporta el rastreo de rayos a través de una extensión desarrollada por Nvidia.
tecnicas ray tracing

Afortunadamente, el trabajo de los fabricantes y desarrolladores de hardware está llevando el trazado de rayos a las GPU sin unidades tecnológicas, pero con un impacto en la calidad visual y el rendimiento. Como se ha mencionado, el rastreo de rayos introduce varias cargas de trabajo nuevas. El primero es determinar qué triángulo en la escena del juego intersectará un rayo. Esto se hace utilizando una técnica, muy exigente en términos de potencia de cálculo, llamada Jerarquía de Volumen Ligante, o BVH. Una vez calculados los haces, se aplica un algoritmo de denotación (limpieza) para mejorar la calidad visual de la imagen final, de modo que se utilizan menos haces, lo que permite que el proceso tenga lugar en tiempo real.

Los GeForce RTX Cores no son más que un hardware diseñado para acelerar los cálculos de BVH y de trazado de rayos y pueden acelerar el trazado de rayos. En la GeForce GTX estos cálculos se realizan mediante sombreadores, pero se comparten con otras funciones gráficas. En los juegos, se espera que el trazado de rayos encuentre cada vez más espacio en los próximos años, aunque durante algún tiempo seguirá utilizando una representación híbrida que combina la rasterización con el trazado de rayos.

También te puede interesar: