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

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 sin for å støtte funksjonen som realistisk gjengir lys- og skyggeeffektene 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 noen separate dynamiske skyggeleggere eller skyggetabeller. API for funksjonen skjuler tilgang til akselerasjonsstrukturen (f.eks. Datastruktur, kryss, trekant). 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 tilbyr 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 umiddelbart gyter den, 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 raffinement.

Voksende tilstandsobjekter via AddToStateObject ():

En optimaliseringsfunksjon, denne nye forsøker å redusere sløsende behandlingstråder. Ganske mange apper og prosesser i dag skaper en fullbefolket rørledning for strålesporing, som kaster bort mange ressurser og belaster systemet. Foreløpig analyserer D3D12-kjøretiden fortsatt fullstatusobjektet som blir opprettet av byggesteiner.

Selv om det er gjort for å verifisere korrekthet, med AddToStateObject (), kan et nytt tilstandsobjekt lages ved å legge til skyggelister til 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 geometrier i akselerasjonsstrukturer på bunnnivå. Tidligere kunne geometrier skilles ut ved å variere data i skyggetabelloppføringer 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 inngår i beregningen av indekseringsberegningen for 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 raytracing-anrop, kan de også deklareres globalt via raytracing pipeline-konfigurasjon.

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.

Facebook Twitter Google Plus Pinterest