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 nuevo 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 RTX de Nvidia sea especial y cómo su arquitectura 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 impacta 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, lleva mucho tiempo, ya que la mayoría de los rayos no golpean nada que nos interese y otros rayos pueden rebotar casi indefinidamente. Así que las soluciones del mundo real hacen una optimización inteligente. Utilizan 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 enormemente 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 director ejecutivo 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 tienen que elegir un nivel de calidad que determina cuántos rayos se proyectan 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 de alta gama con múltiples GPU.

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, en la que las superficies de cada objeto se sombrean en función de las propiedades del material y las luces que caen sobre ellas. Las optimizaciones inteligentes, como el horneado ligero, hacen posible que los juegos se rendericen a altas velocidades de fotogramas 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

NvidiaAparte 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 proporciona 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 el rastreador 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 muchos más rayos. 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, es necesario 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 consumidor, 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 GeForceTrazado de rayosActuación*MemoriaA partir deEdición Fundadores
RTX 2080 Ti10 GigaRayos / seg78T RTX-OPS11 GB$999$1,199
RTX 20808 GigaRayos / seg60T RTX-OPS8GB$699$799
RTX 20706 GigaRayos / seg45T RTX-OPS8GB$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 los reflejos de los objetos fuera de la pantalla, incluidas las llamas y las explosiones, que no serían posibles si se usara únicamente el renderizado basado en lo que hay 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.

Copyright © Todos Los Derechos Reservados | 2007es.com