DirectX Raytracing (DXR) Tier 1.1 Nye funktioner kan fungere med bare driverunderstøttelse uden tung hardwareændring

Hardware / DirectX Raytracing (DXR) Tier 1.1 Nye funktioner kan fungere med bare driverunderstøttelse uden tung hardwareændring 3 minutter læst

Xbox



Ray Tracing er bestemt en funktion, som spillere, især med avancerede grafikkort fra NVIDIA og AMD, venter spændt på. Ledende producenter af GPU'er, som snart også inkluderer Intel, bygger aktivt deres hardware til at understøtte den funktion, der realistisk gengiver lys- og skyggeeffekter baseret på de fysiske love i fysikken og bringer hyperrealistiske og fordybende billeder.

I mellemtiden sikrer Microsoft, at Windows OS-økosystemet er velegnet som en ideel platform til at spille high-end-spil. Virksomhedens DirectX-platform, der længe har været en førende standard for desktop-spil, bliver tweaked for at understøtte og endda øge 'Real-time Ray Tracing'. Faktisk er DirectX Raytracing (DXR) Tier 1.1 den nyeste standard, der understøtter et sæt nye funktioner. Nogle af de spændende funktioner, som strålesporing i realtid kan understøtte i nærfunktionen, inkluderer indbygget strålesporing, DispatchRays () opkald via ExecuteIndirect () , Voksende tilstandsobjekter via AddToStateObject () , GeometryIndex () i raytracing shaders , og mere. Lad os se på nogle af de nye funktioner, som DirectX 12 til Windows 10 understøtter strålesporing.



Inline strålesporing:

En alternativ form for strålesporing, inline strålesporing bruger ikke nogen separate dynamiske skyggelægninger eller skyggetabeller. API'et for funktionen skjuler adgang til accelerationsstrukturen (f.eks. Datastruktur gennemgange, boks, trekantskæringspunkt). Dette overlader det i det væsentlige til hardware / driver. Interessant nok kan al den nødvendige appkode til håndtering af både opregnede kandidat-hits og resultatet af en forespørgsel (f.eks. Hit vs miss) være selvstændig i skyggen, der driver RayQuery .



Inline strålesporing giver udviklere mulighed for at presse på for flere strålesporingsprocesser i modsætning til at aflevere arbejdsplanlægning helt til systemet. Det er overflødigt at tilføje, at denne optimering af processer er ret nyttig for udviklere, der skubber med flere skygger. Desuden har udviklerne fuldstændig frihed til dynamisk at skifte til den integrerede form til enkle rekursive stråler.



DispatchRays () Opkald via ExecuteIndirect ():

Denne funktion gør det muligt for shaders på GPU'en at generere en liste over DispatchRays () opkald. Disse inkluderer individuelle parametre som trådtal, indstillinger for skyggetabeller og andre rodparameterindstillinger. Det bedste aspekt ved funktionen er, at hele listen kan udføres, uden at processen nogensinde har brug for en mellemretur tilbage til CPU'en.



Alle scenarier, der forbereder raytracing-arbejde på GPU'en og derefter straks gyder den, skal have enormt fordel af funktionen. Det er overflødigt at tilføje, at denne funktion skal hjælpe meget med adskillige adaptive raytracing-scenarier såsom skyggebaseret slagtning, sortering, klassificering og forfining.

Voksende tilstandsobjekter via AddToStateObject ():

En optimeringsfunktion, denne nye forsøger at reducere spildende behandlingstråde. En hel del apps og processer i dag skaber en fuldt befolket pipeline til strålesporing, som spilder mange ressourcer og byrder for systemet. I øjeblikket analyserer D3D12-runtime stadig det fuldstatsobjekt, der oprettes ud af byggesten.

Selvom det gøres for at kontrollere rigtigheden med AddToStateObject () , kan der laves et nyt statsobjekt ved at tilføje skyggelægere til et eksisterende skyggetilstandsobjekt. Det er overflødigt at tilføje, at CPU-omkostningerne kun forbliver proportionale med de data, der tilføjes.

GeometryIndex () I Ray Tracing Shaders:

Denne funktion gør det muligt for shaders at skelne mellem geometrier inden for accelerationsstrukturer i bundniveau. Tidligere kunne geometrier skelnes ved at variere data i skyggetabelregistreringer for hver geometri, men med den nye metode frigøres appen fra byrden. Desuden, hvis alle geometrier deler den samme skygge, kan appen vælge at indstille MultiplikatorForGeometryContributionToHitGroupIndex parameter til TraceRay () 0.

Dette vil i det væsentlige sikre, at geometriindekset ikke længere indgår i beregningen af ​​indeksering af skygge-tabel med fast funktion. Hvis det er nødvendigt eller ønsket, kan skyggerne stadig bruge GeometryIndex () at indeksere i appens egne datastrukturer.

Ud over de ovennævnte funktioner inkluderer DirectX Raytracing (DXR) Tier 1.1 også RAY_FLAG_SKIP_TRIANGLES og RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES flag. Mens disse flag er tilgængelige for individuelle raytracing-opkald, kan de også erklæres globalt via raytracing pipeline-konfiguration.

Det er klart, at Microsoft forsøger at optimere DirectX 12 til grafikintensive spil. Desuden sørger virksomheden for, at system, CPU og GPU udnyttes optimalt med minimale afskedigelser.

Mærker directx nvidia raytracing RTX