# DirectX Raytracing

DirectX Raytracing (DXR) és una característica introduïda al DirectX 12 de Microsoft que implementa el traçat de raigs, per a la representació de gràfics de vídeo. DXR es va publicar amb l'actualització d'octubre de Windows 10 (versió 1809) el 10 d'octubre de 2018. Requereix una targeta de vídeo AMD Radeon RX 6000 series, AMD Radeon RX 7000 series o Nvidia GeForce 10, 20, 30 o 40 series, que està dissenyada per gestionar l'alta càrrega informàtica utilitzada per al traçat de raigs.

## Addicions a DirectX 12

Amb la introducció de DXR a l'octubre, es van afegir quatre funcions noves a DirectX 12:
* L'estructura d'acceleració és una representació de l'entorn 3D formatada de manera eficient per a la GPU. Aquest entorn és el pla que s'utilitza per crear els punts de partida. L'estructura permet fer modificacions i ha optimitzat el recorregut de raigs.
* La llista d'ordres DispatchRays, és l'inici dels raigs que s'utilitzen per generar els gràfics de reflexió. Aquests són utilitzats per la GPU per iniciar el procés de traçat de raigs.
* Els nous shaders HLSL, generació de raigs, èxit més proper, qualsevol èxit i error, que s'utilitzen descriuen computacionalment què fa DXR en renderitzar el traçat de raigs. Aquests shaders utilitzen la funció TraceRay a HLSL per rastrejar els raigs a l'entorn. Quan el raig interacciona amb el pla generat, pot invocar un dels molts shaders seleccionats. La variació dels shaders d'èxit i error crea diferents textures.
* Raytracing pipeline state, una contrapartida dels objectes actuals d'estat de pipeline Graphics i Compute. Els objectes d'estat de canalització són paràmetres de maquinari que determinen com la GPU interpreta i representa la informació.

## Detalls tècnics

DXR comença enviant un raig des de cada píxel en un pla determinat i calcula quins objectes del pla són colpejats primer pel raig. A continuació, l'algoritme DXR estima la quantitat de llum on el raig interseca l'objecte i enllaça aquest càlcul a l'objecte. Els objectes poden tenir diferents propietats que absorbiran o reflectiran la llum a diferents velocitats. Per evitar que es produeixin rebots infinits d'un raig, DXR aturarà els càlculs després d'una determinada quantitat d'interseccions. Els raigs que mai interaccionen amb un objecte es fan un seguiment de fins a quin punt han arribat. Això és perquè l'algoritme entengui quan els raigs han anat massa lluny.

## Actualitzacions

DXR es va llançar al públic el 10 d'octubre de 2018 amb l'actualització d'octubre de Windows 10 (versió 1809).
La primera actualització important es va fer a DXR el 27 de maig de 2020 amb l'actualització de Windows 10 May (versió 2004). L'actualització de maig va implementar DXR Tier 1.1, que permet als motors de jocs fer càlculs en temps real que fan que els gràfics de traçat de raigs siguin més ràpids i eficients.

## Referències

* ↑ «Announcing Microsoft DirectX Raytracing!» (en anglès). DirectX Developer Blog, 19-03-2018. [Consulta: 27 octubre 2020].
* ↑ «Announcing Microsoft DirectX Raytracing!» (en anglès). DirectX Developer Blog, 19-03-2018. [Consulta: 27 octubre 2020].
* ↑ «DirectX Raytracing and the Windows 10 October 2018 Update» (en anglès). DirectX Developer Blog, 02-10-2018. [Consulta: 27 octubre 2020].
* ↑ «Windows 10 May 2020 v2004 20H1 Feature Update Packs DirectX 12 Ultimate, Improved Ray Tracing Support, DirectX Mesh Shader And Many Other Features For PC Gaming» (en anglès). Appuals.com, 12-05-2020. Arxivat de l'original el 2020-10-30. [Consulta: 27 octubre 2020].
* ↑ «DirectX Raytracing (DXR) Tier 1.1» (en anglès). DirectX Developer Blog, 06-11-2019. [Consulta: 27 octubre 2020].