DirectX Raytracing
# DirectX Raytracing

DirectX Raytracing (DXR) es una función introducida en DirectX 12 de Microsoft que implementa el trazado de rayos para la representación de gráficos de video. DXR se lanzó con la actualización de octubre de Windows 10 (versión 1809) el 10 de octubre de 2018. Requiere una tarjeta de video de la serie AMD Radeon RX 6000 o Nvidia GeForce 10, 20, 30 o 40, que está diseñada para manejar la alta carga informática utilizada para el trazado de rayos.

## Adiciones a DirectX 12

Con la introducción de DXR en octubre, se agregaron cuatro nuevas características a DirectX 12:

* La estructura de aceleración es una representación del entorno 3D que está formateada de manera eficiente para la GPU. Este entorno es el plano que se utiliza para crear los puntos de partida. La estructura permite realizar modificaciones y tiene un recorrido de rayos optimizado.
* La lista de comandos DispatchRays es el comienzo de los rayos que se utilizan para generar los gráficos de reflexión. Estos son utilizados por la GPU para comenzar el proceso de trazado de rayos.
* Los nuevos sombreadores HLSL, la generación de rayos, el acierto más cercano, cualquier acierto y error, que se utilizan describen computacionalmente lo que hace DXR al renderizar el trazado de rayos. Estos sombreadores utilizan la función TraceRay en HLSL para rastrear rayos en el entorno. Cuando el rayo interactúa con el plano generado, puede llamar a uno de los muchos sombreadores seleccionados de acertar o fallar. La variación de shaders impredecibles crea diferentes texturas.
* Raytracing pipeline state, una contraparte de los objetos de estado de la tubería Graphics and Compute actuales. Los objetos de estado de canalización son configuraciones de hardware que determinan cómo la GPU interpreta y procesa la información.

## Detalles técnicos

DXR comienza enviando un rayo desde cada píxel en un plano dado y calcula qué objetos en el plano son golpeados primero por el rayo. Luego, el algoritmo DXR estima la cantidad de luz donde el rayo se cruza con el objeto y adjunta ese cálculo al objeto. Los objetos pueden tener diferentes propiedades que absorberán o reflejarán la luz a diferentes velocidades. Para evitar que ocurran rebotes infinitos de un rayo, DXR detendrá los cálculos después de una cierta cantidad de intersecciones. Los rayos que nunca interactúan con un objeto se rastrean hasta dónde han llegado. Esto es para que el algoritmo entienda cuándo los rayos han ido demasiado lejos.

## Actualizaciones

DXR se lanzó al público el 10 de octubre de 2018 con la actualización de octubre de Windows 10 (versión 1809).

La primera actualización importante de DXR se realizó el 27 de mayo de 2020 con la actualización de mayo de Windows 10 (versión 2004). La actualización de mayo implementó DXR Tier 1.1, que permite que los motores de juegos realicen cálculos en tiempo real, lo que hace que los gráficos de trazado de rayos sean más rápidos y eficientes.

