DirectX Raytracing (DXR) Tier 1.1 Nye funksjoner kan fungere med bare driverstøtte uten tung maskinvareendring

Maskinvare / DirectX Raytracing (DXR) Tier 1.1 Nye funksjoner kan fungere med bare driverstøtte uten tung maskinvareendring 3 minutter lest

Xbox



Ray Tracing er absolutt en funksjon som spillere, spesielt med avanserte grafikkort fra NVIDIA og AMD, venter spent på. Ledende produsenter av GPUer, som snart også inkluderer Intel, bygger aktivt maskinvaren for å støtte funksjonen som realistisk gjengir lys- og skyggeeffekter basert på de fysiske lovene i fysikken, og gir hyperrealistiske og oppslukende bilder.

I mellomtiden sørger Microsoft for at Windows OS-økosystemet egner seg godt som en ideell plattform for å spille avanserte spill. Selskapets DirectX-plattform, som lenge har vært en ledende standard for desktop-spill, blir tweaked for å støtte og til og med øke 'Real-time Ray Tracing'. Faktisk er DirectX Raytracing (DXR) Tier 1.1 den nyeste standarden som støtter et sett med nye funksjoner. Noen av de spennende funksjonene som strålesporing i sanntid kan støtte i nærfunksjonen inkluderer innebygd strålesporing, DispatchRays () samtaler via ExecuteIndirect () , Voksende tilstandsobjekter via AddToStateObject () , GeometryIndex () i raytracing skyggelegger , og mer. La oss se på noen av de nye funksjonene som DirectX 12 for Windows 10 vil støtte for strålesporing.



Inline Ray Tracing:

En alternativ form for strålesporing, innebygd strålesporing, bruker ikke separate dynamiske skyggeleggere eller skyggetabeller. API for funksjonen skjuler tilgang til akselerasjonsstrukturen (f.eks. Traversering av datastruktur, rute, kryss). Dette overlater det til maskinvaren / driveren. Interessant nok kan all nødvendig appkode for å håndtere både oppsatte kandidattreff og resultatet av et spørsmål (f.eks. Hit vs miss) være selvstendig i skyggen som driver RayQuery .



Inline ray tracing gir utviklere muligheten til å presse på for flere ray tracing-prosesser, i motsetning til å levere arbeidsplanlegging helt til systemet. Unødvendig å legge til, er denne optimaliseringen av prosesser ganske nyttig for utviklere som stikker med flere skygger. Videre har utviklerne full frihet til dynamisk å bytte til det innebygde skjemaet for enkle rekursive stråler.



DispatchRays () Anrop via ExecuteIndirect ():

Denne funksjonen gjør det mulig for shaders på GPUen å generere en liste over DispatchRays () ringer. Disse inkluderer individuelle parametere som trådtelling, innstillinger for skyggetabell og andre innstillinger for rotparametere. Det beste ved funksjonen er at hele listen kan kjøres uten at prosessen noen gang trenger en mellomretur til prosessoren.



Alle scenarier som forbereder strålesporingsarbeid på GPUen og deretter gyter den umiddelbart, bør ha enorm fordel av funksjonen. Unødvendig å legge til, bør denne funksjonen hjelpe mye med flere adaptive raytracing-scenarier som skyggebasert avliving, sortering, klassifisering og forbedring.

Voksende tilstandsobjekter via AddToStateObject ():

En optimaliseringsfunksjon, denne nye forsøker å redusere bortkastede behandlingstråder. Ganske mange apper og prosesser i dag skaper en fullbefolket pipeline for strålesporing, som kaster bort mange ressurser og belaster systemet. Foreløpig analyserer D3D12-kjøretiden fremdeles hele tilstandsobjektet som blir opprettet av byggesteiner.

Selv om det er gjort for å verifisere korrekthet, med AddToStateObject () , kan et nytt tilstandsobjekt lages ved å legge til skyggelister i et eksisterende skyggeleggingstilstand. Unødvendig å legge til, vil CPU-overhead bare forbli proporsjonal med dataene som legges til.

GeometryIndex () I Ray Tracing Shaders:

Denne funksjonen gjør det mulig for shaders å skille mellom geometrier i akselerasjonsstrukturer på bunnen. Tidligere kunne geometrier skilles ut ved å variere data i skyggetabellposter for hver geometri, men med den nye metoden blir appen frigjort fra byrden. Videre, hvis alle geometrier har samme skyggelegging, kan appen velge å stille inn MultiplierForGeometryContributionToHitGroupIndex parameter til TraceRay () 0.

Dette vil i hovedsak sikre at geometriindeksen ikke lenger er med i beregningen av indeksering av skyggetabellen med fast funksjon. Likevel, hvis nødvendig eller ønskelig, kan skyggeleggerne bruke GeometryIndex () å indeksere i appens egne datastrukturer.

I tillegg til de nevnte funksjonene inkluderer DirectX Raytracing (DXR) Tier 1.1 også RAY_FLAG_SKIP_TRIANGLES og RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES flagg. Selv om disse flaggene er tilgjengelige for individuelle strålesporingssamtaler, kan de også deklareres globalt via konfigurering av strålingsrørledning.

Det er tydelig at Microsoft prøver å optimalisere DirectX 12 for grafikkintensive spill. Videre, med strålesporing som lover å være en av de viktigste funksjonene for avanserte spill og spillere, sørger selskapet for at systemet, CPU og GPU utnyttes optimalt med minimale permitteringer.

Merker directx nvidia strålesporing RTX