Desde el anuncio de 2018 de las tarjetas gráficas RTX de la serie 20 de Nvidia, su característica de «trazado de rayos» ha sido un término popular en los círculos de videojuegos. Pero puede ser difícil entender qué es el trazado de rayos, cómo funciona y por qué se ve mejor que las técnicas anteriores.
¿Qué es el trazado de rayos y cómo funciona?
En el mundo real cuando ves algo, lo que ves es un fotón que proviene de una fuente de luz. En su camino, ese fotón puede haber sido reflejado por una o más superficies. Cada reflejo cambia las características de la luz que llega a tus ojos.
El sol emite una amplia gama de colores claros, cada superficie absorbe algo de luz y refleja otras. Lo que vemos como una superficie verde, como una hoja, se ve así porque refleja principalmente la luz verde. Si la luz que se refleja en la hoja golpea otra superficie, como una pared blanca, entonces esa superficie se verá ligeramente diferente de lo que sería si fuera pura luz blanca que brilla sobre ella. Cada reflejo influye en cada superficie futura con la que interactúa la luz, cambiando su intensidad y color visible.
El trazado de rayos es una técnica gráfica que sigue los mismos principios. Se proyectan rayos de luz, se calculan las propiedades de la luz reflejada y refractada, como el color, y el rayo continúa viajando.
En el mundo real, cada fuente de luz, como una bombilla o el sol, emite fotones en todas las direcciones, la mayoría de las cuales nunca llegan a los ojos. Simular esto sería un proceso increíblemente intenso que produce un resultado mayormente desperdiciado. Para reducir la carga de trabajo, el trazado de rayos funciona en reversa, proyectando los rayos desde la cámara. Cada rayo puede viajar una cierta distancia sin reflejo o reflejarse un cierto número de veces antes de que se realicen los cálculos y se establezca el valor de píxel.
Por ejemplo, un haz se proyecta desde la perspectiva del espectador, cuando golpea una pared blanca un algoritmo genera recursivamente un haz reflejado que luego viaja a través de un panel de vidrio azul, finalmente, el haz reflejado golpea una fuente de luz blanca y es absorbido. El cristal azul absorbe todo excepto la luz azul que proyecta una luz azul en la pared, lo que da como resultado el color azul del píxel.
¿Por qué Ray Tracing se ve mucho mejor?
El método estándar de renderizar escenas en tiempo real implica el uso de mapas de luz precalculados y la iluminación de toda la escena. Algunos juegos usan iluminación volumétrica limitada para incluir fuentes de luz en movimiento y para permitir sombras dinámicas, esta técnica se usa con moderación a pesar de que es bastante intensiva en el procesador.
El trazado de rayos puede lograr un resultado fotorrealista si se realiza un trabajo adicional en la fase de diseño del juego. Si todas las superficies incluyen detalles como la reflectividad, la transparencia y cómo la luz se refractará a través de ellas, el resultado general puede parecer más natural. Aunque este enfoque obviamente implica más trabajo en la fase de diseño del juego, permite que el resultado parezca fotorrealista con la luz que reacciona como debería cuando se refleja en concreto, metal, madera y vidrio, etc.
El trazado de rayos le permite proyectar reflexiones y sombras precisas como parte del proceso de renderizado. En los métodos de representación tradicionales, ambos efectos son completamente opcionales y pueden causar resultados significativos.
El trazado de rayos en sí es muy exitoso en términos de rendimiento. Hasta que se anunciaron las tarjetas gráficas RTX de Nvidia con aceleración de hardware para el trazado de rayos, se creía que la potencia de procesamiento requerida para realizar el trazado de rayos en tiempo real en el software era de más de una década. Incluso con la aceleración de hardware, el trazado de rayos sigue causando una disminución significativa en el rendimiento, ya que sigue siendo la parte más lenta de renderizar un marco.