DirectX-kiirtejälgimise (DXR) 1. taseme uued funktsioonid võivad töötada lihtsalt draiveri toega ilma tugeva riistvaramuutmiseta

Riistvara / DirectX-kiirtejälgimise (DXR) 1. taseme uued funktsioonid võivad töötada lihtsalt draiveri toega ilma tugeva riistvaramuutmiseta 3 minutit loetud

Xboxi



Kiire jälgimine on kindlasti funktsioon, mida mängijad, eriti koos NVIDIA ja AMD tippklassi graafikakaartidega, ootavad innukalt. Juhtivad graafikaprotsessorite tootjad, kuhu varsti kuulub ka Intel, ehitavad aktiivselt oma riistvara, et toetada seda funktsiooni, mis reaalsuses muudab reaalsetes füüsikaseadustes põhinevad valguse ja varju efektid ning toob kaasa hüperrealistlikud ja ümbritsevad visuaalid.

Vahepeal tagab Microsoft, et Windows OS-i ökosüsteem sobib ideaalseks platvormiks tipptasemel mängude mängimiseks. Ettevõtte DirectX-i platvormi, mis on pikka aega olnud lauaarvutimängude juhtiv standard, kohandatakse ‘Reaalajas kiirte jälgimise’ loomuliku toetamise ja isegi suurendamise nimel. Tegelikult on DirectX Raytracing (DXR) Tier 1.1 uusim standard, mis toetab uusi funktsioone. Mõned põnevad funktsioonid, mida reaalajas kiirete jälgimine lähifunktsioonis võiks toetada, hõlmavad kiirgusjoone DispatchRays () kõned ExecuteIndirect () kaudu , Olekuobjektide kasvatamine AddToStateObject () kaudu , GeometryIndex () kiirtejälgijates , ja veel. Vaatame mõningaid uusi funktsioone, mida Windows 10 jaoks mõeldud DirectX 12 kiirte jälgimiseks toetab.



Sisemine kiirte jälgimine:

Kiirte jälgimise alternatiivne vorm, seesmine kiirte jälgimine, ei kasuta ühtegi eraldi dünaamilist varjundit ega varjutustabelit. Funktsiooni API varjab juurdepääsu kiirendusstruktuurile (nt andmestruktuuri läbimine, kast, kolmnurga ristmik). See jätab selle sisuliselt riistvarale / draiverile. Huvitav on see, et kogu vajalik rakenduse kood nii loendatud kandidaatide tabamuste kui ka päringu tulemuse (nt tabamuse ja vastamata jätmise) töötlemiseks võib varjutaja RayQuery .



Kiire kiirtejälgimine pakub arendajatele võimalust kiirendada kiirtejälgimisprotsesse, selle asemel, et töögraafik anda täielikult süsteemile. Pole vaja lisada, et see protsesside optimeerimine on üsna kasulik arendajatele, kes on mitme varjutusega viskamas. Pealegi on arendajatel täielik vabadus lihtsate rekursiivsete kiirte jaoks dünaamiliselt sisemisele vormile üle minna.



DispatchRays () kõned ExecuteIndirect () kaudu:

See funktsioon võimaldab GPU varjutajatel luua loendi DispatchRays () kõned. Nende hulka kuuluvad üksikud parameetrid, nagu lõimede arv, varjutustabeli seaded ja muud juurparameetrite sätted. Funktsiooni parim külg on see, et kogu loendi saab käivitada ilma, et protsess vajaks vahepealset edasi-tagasi tagasipöördumist protsessori juurde.



Kõik stsenaariumid, mis valmistavad GPU-l kiirtejälgimistööd ette ja seejärel selle kohe sünnitavad, peaksid sellest funktsioonist tohutult kasu saama. Pole vaja lisada, et see funktsioon peaks palju aitama mitme adaptiivse kiirtejälgimise stsenaariumi korral, nagu näiteks varjupõhine tapmine, sorteerimine, klassifitseerimine ja täpsustamine.

Olekuobjektide kasvatamine AddToStateObject () kaudu:

Optimeerimisfunktsioon, see uus proovib vähendada raiskavaid töötlusniite. Päris paljud rakendused ja protsessid loovad tänapäeval täielikult asustatud kiirtejälgimistorustiku, mis raiskab palju ressursse ja koormab süsteemi. Praegu sõelub D3D12 käitusaeg kogu loodava olekuobjekti ehitusplokkidest.

Isegi kui seda tehakse õigsuse kontrollimiseks, AddToStateObject () , saab uue olekuobjekti teha, lisades olemasolevale varjutaja olekuobjektile varjutajad. Pole vaja lisada, et protsessori üldkulud jäävad proportsionaalseks ainult lisatavate andmetega.

GeometryIndex () kiirtejälgede varjudes:

See funktsioon võimaldab varjutajatel eristada geomeetriat põhitaseme kiirendusstruktuurides. Varem oli geomeetriaid võimalik eristada varieeruvate tabelikirjete andmete muutmisega iga geomeetria kohta, kuid uue meetodi abil vabastatakse rakendus koormusest. Veelgi enam, kui kõik geomeetriad jagavad sama varjundit, saab rakendus valida selle MultiplierForGeometryContributionToHitGroupIndex parameeter kuni TraceRay () 0.

See tagab sisuliselt, et geomeetriaindeks ei võtaks enam arvesse fikseeritud funktsiooniga varjutustabeli indekseerimise arvutamist. Vajaduse või soovi korral saavad varjutajad siiski kasutada GeometryIndex () rakenduse enda andmestruktuuridesse indekseerimiseks.

Lisaks eelmainitud funktsioonidele sisaldab DirectX Raytracing (DXR) Tier 1.1 ka RAY_FLAG_SKIP_TRIANGLES ja RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES lipud. Kuigi need lipud on saadaval üksikutele kiirjälgimiskõnedele, saab neid globaalselt deklareerida ka kiirtejälgimise torujuhtme konfiguratsiooni kaudu.

On täiesti selge, et Microsoft üritab DirectX 12 optimeerida graafikamahukate mängude jaoks. Pealegi, kuna kiirtejälgimine on kõrgtehnoloogiliste mängude ja mängijate jaoks üks olulisemaid omadusi, tagab ettevõte, et süsteem, protsessor ja GPU-d kasutatakse optimaalselt minimaalsete koondamistega.

Sildid DirectX nvidia kiirtejälgimine RTX