DirectX Raytracing

Det finns en del frågetecken kring vissa termer och hur de förhåller sig till varandra, vad som är standard och vad som är låst till specifika tillverkare. En annan fråga som ofta debatteras på SweClockers är om vad som nu framhävs inom marknadsföringen är "äkta" ray tracing.

DirectX Raytracing

Applikationer som vill använda ray tracing i spel har som grundkrav att använda DirectX 12 eller Vulkan. För DirectX 12 krävs vidare att systemet har Windows 10 Fall Creators Update 2018, då det är först där DirectX 12 uppdateras med stöd för ray tracing.

Förkortningen DXR står för DirectX Raytracing. DXR är alltså en standardfunktion i DirectX 12, inte något specifikt för Nvidias Geforce RTX 2000-serie.

En trevliga egenskap med DXR är att det ger en relativt abstrakt definition av ray tracing-processen, något som ger de som ska designa kretsar för acceleration av ray tracing, AMD och på sikt även Intel, många frihetsgrader. Vad som specificeras sammanfattas väldigt bra i följande bilder:

DXR_pipeline.png

Översiktsbild för DXR

vulkan_pipeline.png

Översikts bild för Vulkan Ray Tracing, i praktiken identiskt med DXR

Äkta ray tracing?

Så är detta "äkta" ray tracing? Ja, det finns inget i DXR som hindrar implementation av någon viss ray tracing-effekt. Däremot kommer spel i praktiken behöva göra förenklingar av prestandaskäl. DXR har en perfekt design för att kunna välja en viss specifik effekt, till exempel att enbart hantera skuggor som i Shadow of the Tomb Raider eller enbart hantera reflektioner som Battlefield V.

Det som måste anpassas beroende på önskad effekt kallas "any hit shader", ett program som körs för varje stråle som träffat en triangel. Detta program kan skapa nya strålar (anropa Traceray) för att generera reflektions-, skugg- eller refraktionsstrålar, beroende på spelutvecklaren önskemål.

BFV_water_mirror.png

I Battlefield V är användning av ray tracing begränsad till reflektioner.

Möjligheten att använda ray tracing i spel står och faller helt med hur väl grafikprocessorn kan accelerera processen att lokalisera den triangel en stråle först träffar.

Ovanpå det hänger det på speltillverkarna att avgöra vilka effekter som är värda att implementera, samt vilka som kostar långt mer än det smakar. Att försöka hantera skuggor, reflektion och refraktion i en och samma titel är gissningsvis helt övermäktig dagens grafikkretsar från Nvidia.

För att spinna vidare lite i DirectX Raytracing "äkthet". Det går faktiskt alldeles utmärkt att hantera path tracing med DXR, men det är knappast rimligt från ett prestandaperspektiv.