Qué es el Ray Tracing de las NVIDIA RTX y por qué consume tantos recursos

Escrito por Juan Diego de Usera

Con el reciente lanzamiento de las nuevas tarjetas gráficas NVIDIA GeForce RTX serie 20, un nuevo concepto ha sido desarrollado por NVIDIA: el NVIDIA RTX. Esta tecnología tiene mucho que ver con el uso del Ray Tracing en las imágenes que se representan en la pantalla de nuestro monitor. Vamos a ver en qué 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.

Para hacer esto, toda escena requiere de una fuente de luz. Pero hacerlo de manera natural representaría una pérdida brutal de recursos, 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.

NVIDIA RTX usa el núcleo gráfico de la tarjeta para acelerar el Ray Tracing hasta el tiempo real

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.

Pero Ray Tracing tiene un problema muy importante: la cantidad de recursos que consume para representar las imágenes es imponente. Si eres un estudio de Hollywood que está trabajando en una escena de una película, esto te puede dar más o menos igual. Pero cuando hablamos de representar imágenes en movimiento a un ritmo de una imagen cada 16 ms (y 60 imágenes por segundo, para que pueda considerarse “tiempo real”) la cantidad de trabajo que ha de realizarse es realmente muy importante. La API Microsoft DirectX R es capaz de aplicar ciertos parámetros que ya se emplean en las técnicas de rasterización de imágenes, de manera que la imagen sobre la que se trabaja sea una mucho más sencilla a la que aplicar la técnica del Ray Tracing en tiempo real.

Aun con todo y con eso, NVIDIA ha tenido que dedicar una parte importante de su núcleo gráfico de las nuevas NVIDIA RTX a esta función porque, a pesar que Microsoft dice que cualquier tarjeta gráfica debiera de ser capaz de procesar Ray Tracing con DirectX R, de alguna manera dudamos que los resultados con las actuales tarjetas gráficas fueran a ser todo lo que se podría esperar de ellas. Sin embargo, los núcleos NVIDIA RTX son núcleos diseñados específicamente para realizar este tipo de tareas en tiempo real y de una manera muy eficiente.

Continúa leyendo