¿Qué es el Ray Tracing y por qué consume tantos recursos?

¿Qué es el Ray Tracing y por qué consume tantos recursos?

Juan Diego de Usera

Con el lanzamiento de las nuevas tarjetas gráficas NVIDIA GeForce RTX, un nuevo concepto denominado Ray Tracing o trazado de rayos ha sido desarrollado e implementado por parte de NVIDIA en sus gráficas en sus RT Cores. Te explicamos en detalle en que consiste este método de renderizado.

Desde su invención hace varias décadas (la tecnología es originaria de finales de los años 60 del siglo XX, aunque se perfeccionó casi en 1980), el Ray Tracing se ha considerado el Santo Grial en lo que respecta al renderizado de imágenes con calidad fotorrealista.

Esta técnica de renderizado de imagen intenta simular el comportamiento de todos los rayos de luz que inciden sobre un objeto, y cómo se comportan después de ello: si son completamente reflejados, refractados o absorbidos, y cómo afecta el material sobre el que incide el rayo de luz en su comportamiento a posteriori de chocar contra la superficie.

Porque no sucede lo mismo cuando el rayo de luz incide sobre una superficie plana que una curva, o si incide sobre un espejo o sobre un trozo de madera. Todos estos aspectos, que serían los que importarían en la vida real a la hora de ver una imagen, son los que intenta simular la tecnología del Ray Tracing.

NVIDIA RTX tienen Ray Tracing en tiempo real gracias a los RT Cores

raytracing

Para hacer esto, toda escena requiere de una fuente de luz pero hacerlo de manera natural requeriría una cantidad incalculable de potencia gráfica, dado que la mayoría de rayos de luz se perderían sin alcanzar la cámara que está observando la escena. Así que el Ray Tracing usa una técnica denominada «reciprocidad», que lo que hace es invertir el proceso. Es decir, lo que hace es ver qué rayos de luz alcanzan la cámara observadora y seguir su recorrido a la inversa hasta que alcancen una fuente de luz.

Hasta la presentación del nuevo estándar Microsoft DirectX R y la integración que NVIDIA ha hecho de esta API en sus nuevas tarjetas gráficas NVIDIA GeForce  RTX, el Ray Tracing apenas se empleaba a la hora de renderizar imágenes. Lo que se solía hacer era rasterizar las imágenes, dado que es una técnica que se puede realizar de una manera rápida, pero en esta rapidez pierde gran parte de su fidelidad a la realidad, que es algo en lo que se basa la tecnología del Ray Tracing.

Sin hardware dedicado para Ray Tracing, no es posible usarlo en tiempo real

raytracing

Pero Ray Tracing tiene un problema muy importante: la cantidad de recursos que requiere para el trazado de rayos en las escenas es muy alto. Pero NVIDIA ha solucionado este problema creando los RT Cores que es una parte dedicada del hardware que se encarga exclusivamente de renderizar el trazado de rayos en tiempo real sin que ocupe tiempo de cómputo de la GPU. Los núcleos RT de las NVIDIA RTX son núcleos diseñados específicamente para realizar aceleración de hardware para el trazado de rayos en tiempo real.

Cuando hablamos de representar escenas completas en movimiento a 60 imágenes por segundo, la cantidad de trabajo que ha de realizarse es realmente muy importante por lo que NVIDIA ha tenido que dedicar una parte importante de su núcleo gráfico de las nuevas tarjetas gráficas NVIDIA RTX a esta función porque, a pesar que Microsoft dice que cualquier tarjeta gráfica debiera de ser capaz de procesar trazado de rayos en tiempo real con su API gráfica DirectX R las actuales tarjetas gráficas no son capaces de ello con la fluidez que requiere un videojuego por lo que en un futuro veremos hardware dedicado más potente en las tarjetas gráficas de NVIDIA y núcleos dedicados exclusivamente para el trazado de rayos en tiempo real en gráficas de AMD.