¿Qué es el trazado de rayos?

click fraud protection

Desde el anuncio de Nvidia en 2018 de sus tarjetas gráficas RTX de la serie 20, su característica principal, el "trazado de rayos" ha sido 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é 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 estás viendo es un fotón de una fuente de luz. En su camino hacia ti, 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 de luz, cada superficie absorbe algo de luz y refleja otras. Lo que vemos como una superficie verde, como una hoja, aparece de esa manera porque refleja principalmente luz verde. Si la luz que se refleja en la hoja golpea otra superficie, como una pared blanca, esa superficie se verá ligeramente diferente de lo que sería si fuera una 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 el 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 produce un resultado mayormente desperdiciado. Para reducir la carga de trabajo, el trazado de rayos funciona a la inversa, proyectando rayos desde 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 la perspectiva 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 menos la luz azul que arroja una luz azul en la pared, lo que hace que el píxel sea de color azul.

¿Por qué Ray Tracing se ve mucho mejor?

El método estándar de renderizado de escenas en tiempo real implica el uso de mapas de luz precalculados e iluminación de toda la escena. Algunos juegos utilizan una iluminación volumétrica limitada para incluir fuentes de luz en movimiento y permitir sombras dinámicas; sin embargo, esta técnica se usa con moderación ya que requiere un uso intensivo del procesador.

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 aparezca fotorrealista con la luz que reacciona como debería cuando se refleja en el hormigón, el metal, la madera y el vidrio etc.

El trazado de rayos permite proyectar reflejos y sombras precisos como parte del proceso de renderizado. en los métodos de renderizado tradicionales, ambos efectos son completamente opcionales y pueden causar impactos significativos en el rendimiento.

El trazado de rayos en sí mismo viene con un gran éxito en el rendimiento. Hasta que se anunciaron las tarjetas gráficas RTX de Nvidia con aceleración de hardware para el trazado de rayos, se pensó que la potencia de procesamiento necesaria para realizar el trazado de rayos en tiempo real en software fue de más de una década lejos. Incluso con la aceleración del hardware, el trazado de rayos sigue provocando una disminución significativa en el rendimiento, ya que sigue siendo la parte más lenta del procesamiento de un fotograma.