Desde que Nvidia anunció sus tarjetas gráficas RTX de la serie 20 en 2018, su característica principal, «trazado de rayos», se ha convertido en un término popular en los círculos de los videojuegos. Pero puede resultar difícil comprender qué es el trazado de rayos, cómo funciona y por qué es 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 estás viendo es un fotón procedente de una fuente de luz. En su camino hacia ti, este fotón puede haberse reflejado en 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 de luz, cada superficie absorbe parte de la luz y refleja otras. Lo que vemos como una superficie verde, como una hoja, aparece así porque refleja principalmente la luz verde. Si la luz reflejada de la hoja golpea otra superficie, como una pared blanca, entonces esa superficie se verá ligeramente diferente de lo que sería si fuera luz blanca pura brillando sobre ella. Cada reflejo afecta a todas las superficies futuras con las 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 direcciones, la gran mayoría de los cuales nunca llegan a los ojos. Simular esto sería un proceso increíblemente intensivo que produciría un resultado en gran parte desperdiciado. Para reducir la carga de trabajo, el trazado de rayos funciona a la inversa, proyectando los rayos de la cámara. A cada rayo se le permite viajar una cierta distancia sin reflejarse o reflejar 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 rayo se proyecta desde el punto de vista del espectador, cuando golpea una pared blanca, un algoritmo genera de forma recursiva un rayo reflejado que luego viaja a través de un panel de vidrio azul, finalmente el rayo reflejado golpea una fuente de luz blanca y es absorbido . El vidrio azul absorbe todo excepto la luz azul que proyecta luz azul en la pared, lo que hace que el píxel sea de color azul.
¿Por qué el trazado de rayos es mucho mejor?
La forma estándar de renderizar escenas en tiempo real es usar mapas de luz precalculados e iluminación de escena completa. Algunos juegos usan iluminación volumétrica limitada para incluir fuentes de luz en movimiento y permitir sombras dinámicas, esta técnica se usa con moderación ya que consume bastante CPU.
El trazado de rayos puede lograr un resultado fotorrealista si se realiza un trabajo adicional en la etapa 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. Si bien este enfoque obviamente implica más trabajo en la etapa de diseño del juego, permite que el resultado parezca fotorrealista con la luz reaccionando como debería al reflejarse en concreto, metal, madera y vidrio, etc.
El trazado de rayos le permite proyectar luces y sombras precisas como parte del proceso de renderizado. en los métodos de renderizado tradicionales, estos dos efectos son completamente opcionales y pueden causar importantes problemas de rendimiento.
El trazado de rayos en sí es un gran éxito 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 faltaba más de una década para la potencia de procesamiento necesaria para realizar el trazado de rayos en tiempo real en el software. Incluso con la aceleración de hardware, el trazado de rayos todavía da como resultado una disminución significativa en el rendimiento porque sigue siendo la parte más lenta de la renderización de una imagen.