Saltar al contenido
ᐅ HielosMendez – Información digital que te dejara helado 🧊🥶

Cómo funciona el trazado de rayos en tiempo real RTX de Nvidia

Desde que se inventó hace décadas, el trazado de rayos ha sido el santo grial para renderizar gráficos por computadora de manera realista. Al rastrear los rayos de luz individuales a medida que rebotan en múltiples superficies, puede recrear fielmente reflejos, dispersión debajo de la superficie (cuando la luz penetra a través de un poco de una superficie como la piel humana pero se dispersa a medida que avanza), translucidez y otros matices que ayudan haz una escena atractiva. Se usa comúnmente en películas y publicidad, pero la gran cantidad de tiempo de procesamiento necesario lo ha mantenido alejado de las aplicaciones en tiempo real como los juegos.

Con su nueva familia de GPU Turing, Nvidia tiene como objetivo cambiar todo eso al implementar un soporte mejorado en tiempo real para RTX, su biblioteca de trazado de rayos de alto rendimiento que puede producir escenas detalladas a velocidades de cuadro dignas de un juego. Analizaremos en profundidad qué dificulta el trazado de rayos, qué hace que el RTX de Nvidia sea especial y cómo su arquitectura de Turing lo acelera aún más.

Cómo Ray Casting se convierte en Ray Tracing

En teoría, el trazado de rayos implica proyectar rayos de cada fuente de luz en una escena, generar (generalmente al azar) rayos de luz a partir de ella y seguirlos cuando golpean y se reflejan en las superficies. En cada superficie, las propiedades de la luz se combinan con las propiedades del material que golpea y, por supuesto, el ángulo en el que se cruza. La luz, que puede haber adquirido un color diferente al reflejarse en el objeto, se sigue rastreando utilizando múltiples rayos que simulan la luz reflejada, de ahí el término trazado de rayos. El proceso de rastreo continúa hasta que los rayos abandonan la escena.

Si bien ese proceso es excelente en teoría, es increíblemente lento, ya que la mayoría de los rayos no golpean nada que nos interese, y otros rayos pueden rebotar casi indefinidamente. Entonces, las soluciones del mundo real hacen una optimización inteligente. Usan un principio de luz llamado reciprocidad, que establece que el inverso de un haz de luz funciona de la misma manera que el original para proyectar rayos desde la cámara virtual hacia la escena. Eso significa que solo se emiten los rayos que contribuirán a la escena final, lo que aumenta considerablemente la eficiencia. A continuación, se siguen (trazan) esos rayos a medida que rebotan hasta que golpean una fuente de luz o salen de la escena. Incluso cuando salen de la escena, podría ser en un punto que agrega luz (como el cielo), por lo que de cualquier manera, la cantidad de iluminación agregada a cada superficie que golpea el rayo se agrega a la escena. El software también puede limitar la cantidad de reflejos que seguirá un rayo si es probable que la contribución de luz sea pequeña.

El CEO de Nvidia, Jen-Hsun Huang, explica cómo se ha utilizado el horneado ligero como una alternativa más eficiente al trazado de rayos

El CEO de Nvidia, Jen-Hsun Huang, explica cómo se ha utilizado el horneado ligero como una alternativa más eficiente a algunas de las capacidades disponibles con el trazado de rayos.

Ray Casting es un procesador masivo intensivo

El número total de rayos de luz que caen sobre una escena supera lo que pueden modelar incluso las potentes computadoras utilizadas para el trazado de rayos. Prácticamente, eso significa que los trazadores deben elegir un nivel de calidad que determine cuántos rayos se emiten desde cada píxel de la escena en varias direcciones. Luego, después de calcular dónde cada rayo se cruza con un objeto en la escena, necesita seguir una cierta cantidad de rayos desde cada intersección para modelar la luz reflejada. Calcular esas intersecciones es relativamente caro. Hasta hace poco, también se limitaba a las CPU. Moverlo a la GPU, como pueden hacer algunos trazadores de rayos modernos, ha proporcionado una mejora importante en la velocidad, pero los resultados con calidad de Hollywood aún requieren casi 10 horas por cuadro en una mini-supercomputadora multi-GPU de alta gama.

Debido a que el trazado de rayos es tan intensivo en el procesador, las aplicaciones interactivas como los juegos no han podido usarlo excepto para generar escenas atractivas por adelantado. Para el renderizado en tiempo real, se basan en la rasterización, donde las superficies de cada objeto se sombrean en función de las propiedades del material y las luces que inciden sobre ellos. Las optimizaciones inteligentes, como el horneado ligero, hacen posible que los juegos se rendericen a altas velocidades de cuadro sin dejar de verse geniales. Pero se quedan cortos cuando se trata de interacciones sutiles como la dispersión bajo la superficie. Entonces, para lo último en recrear escenas realistas, el objetivo siempre ha sido el trazado de rayos en tiempo real.

Nvidia RTX utiliza sus GPU para acelerar el trazado de rayos

Arquitectura RTX de Nvidia ampliada con la introducción de Turing y nuevos tipos de núcleosAparte de la respuesta obvia de años de optimización de código, hay algunos elementos nuevos específicos que ayudan a hacer posible RTX. En primer lugar, para obtener el máximo rendimiento, los sombreadores de todos los objetos de la escena deben cargarse en la memoria de la GPU y estar listos para usarse cuando sea necesario calcular las intersecciones. La publicación del desarrollador de Nvidia no brinda requisitos específicos para el tamaño de la memoria, pero puede ser una de las razones por las que RTX solo se ejecuta en las GPU de la familia Volta y Turing. La demostración de Star Wars que Nvidia mostró inicialmente se ejecutaba en un DGX-1 de cuatro Volta, por ejemplo, mientras que ahora Nvidia ha mostrado esfuerzos aún más impresionantes en sus nuevas GPU de consumo y de grado profesional de Turing.

RTX también se basa en un nuevo y elegante módulo de eliminación de ruido. La eliminación de ruido es muy importante en el trazado de rayos porque solo puede emitir un número limitado de rayos de cada píxel en la cámara virtual. Por lo tanto, a menos que deje su trazador de rayos funcionando el tiempo suficiente para completar la escena, tendrá muchos «puntos calvos» o «ruido» de aspecto desagradable. Hay algunos grandes proyectos de investigación que ayudan a optimizar qué rayos se emiten, pero aún así terminas con mucho ruido. Si ese ruido se puede reducir por separado, puede producir una salida de calidad mucho más rápido que si necesita abordar el problema enviando tantos rayos más. Nvidia utiliza esta técnica para ayudarlo a crear marcos más rápidamente. Es probable que esta capacidad se base en el trabajo impulsado por IA que Nvidia presentó en SIGGRAPH el año pasado, ya que ejecutarlo en tiempo real depende en gran medida de los núcleos Tensor “AI” en sus GPU de Turing.

Los núcleos RT personalizados facilitan el trazado de rayos en tiempo real

El trabajo pesado en cualquier tipo de trazado de rayos basado físicamente es el cálculo de intersecciones. Para cada rayo de luz emitido por la cámara (de los cuales se necesita al menos uno para cada píxel de cada fotograma, y ​​muchos más si también se están simulando ópticas), el software necesita encontrar el objeto con el que se cruza. Luego, se deben enviar múltiples rayos continuos desde ese objeto, y esas intersecciones calculadas, y así sucesivamente hasta que el rayo abandone la escena (y se le asigne un valor basado en el mapa de iluminación ambiental) o golpee una fuente de luz radiante. La eliminación de ruido reduce la cantidad de rayos necesarios, pero la cantidad sigue siendo asombrosa.

Para ayudar a abordar este problema, Nvidia ha desarrollado RT Cores especialmente diseñados como parte de su arquitectura Turing. No hay mucha información sobre ellos, pero en particular, permiten un cálculo mucho más rápido de la intersección de un rayo con objetos almacenados en una Jerarquía de volumen límite (BVH), una estructura de datos popular para representar objetos en trazadores de rayos. .

RTX llega a las GPU de consumo con las nuevas tarjetas Turing 20xx

Nvidia ha introducido tres versiones diferentes de sus tarjetas GPU Turing orientadas al consumidorSEEAMAZON_ET_135 Ver comercio de Amazon ET, todos los cuales presentan un rendimiento de trazado de rayos sustancialmente mejor que los 1.2 Giga Rays por segundo aproximados actuales de la GTX 1080 Ti:

GPU GeForce Trazado de rayos Actuación* Memoria A partir de Edición Fundadores
RTX 2080 Ti 10 GigaRayos / seg 78T RTX-OPS 11 GB $ 999 $ 1,199
RTX 2080 8 GigaRayos / seg 60T RTX-OPS 8GB $ 699 $ 799
RTX 2070 6 GigaRayos / seg 45T RTX-OPS 8GB $ 499 $ 599

Puedes ver lo que Nvidia espera de los desarrolladores en el siguiente clip de demostración creado por el equipo de Battlefield V. Muestra reflejos de objetos fuera de la pantalla, incluidas llamas y explosiones, lo que no sería posible usando solo el renderizado basado en lo que está en la pantalla. Los reflejos también modelan de cerca las propiedades físicas de las superficies, otra gran ventaja del trazado de rayos:

Inicialmente, es probable que los elementos trazados por rayos o escenas específicas aparezcan como características mezcladas en los juegos, en lugar de usarse para crear juegos completos, ya que la gran mayoría de los jugadores no podrán ejecutar RTX durante bastante tiempo. Algunos desarrolladores de juegos también han dicho que sería una empresa enorme y un gran éxito en el rendimiento rediseñar sus títulos para admitir el trazado de rayos, sin importar qué tan rápido sea el trazador de rayos. Nvidia ciertamente está compitiendo con el agua, con una lista sólida de títulos que, según afirma, están trabajando activamente para implementar el trazado de rayos en tiempo real usando RTX, pero tendremos que esperar y ver qué ofrecen realmente y cuándo.

Lea ahora: Nvidia presenta RTX 2070 y 2080, Nvidia afirma que el trazado de rayos en tiempo real es ahora posible y Nvidia dice que las ventas de GPU para la minería criptográfica se han agotado