„DirectX Raytracing“ (DXR) 1.1 pakopa Naujos funkcijos gali veikti tik palaikant tvarkyklę be didelių modifikacijų

Aparatinė įranga / „DirectX Raytracing“ (DXR) 1.1 pakopa Naujos funkcijos gali veikti tik palaikant tvarkyklę be didelių modifikacijų 3 minutes perskaityta

„Xbox“



„Ray Tracing“ tikrai yra funkcija, kurios žaidėjai, ypač turintys aukščiausios klasės NVIDIA ir AMD grafikos plokštes, nekantriai laukia. Pagrindiniai GPU kūrėjai, kuriuose netrukus bus ir „Intel“, aktyviai kuria savo aparatinę įrangą, kad palaikytų funkciją, kuri realiai sukuria šviesos ir šešėlio efektus, pagrįstus realaus pasaulio fizikos dėsniais, ir pateikia hiperrealistinius ir įtraukiančius vaizdus.

Tuo tarpu „Microsoft“ užtikrina, kad „Windows OS“ ekosistema yra ideali platforma žaisti aukščiausios klasės žaidimus. Kompanijos „DirectX“ platforma, kuri ilgą laiką buvo pagrindinis žaidimų kompiuteriuose standartas, yra pritaikyta natūraliai palaikyti ir netgi sustiprinti „Realaus laiko spindulių sekimą“. Tiesą sakant, „DirectX Raytracing“ (DXR) pakopa 1.1 yra naujausias standartas, palaikantis naujų funkcijų rinkinį. Keletas įdomių funkcijų, kurias tikralaikis spindulių sekimas galėtų palaikyti artimiausioje funkcijoje, yra tiesioginis spindulių sekimas, „DispatchRays“ () skambučiai per „ExecuteIndirect“ () , Būsenos objektų didinimas naudojant „AddToStateObject“ () , GeometryIndex () spindulių sekimo šešėliuose , ir dar. Pažvelkime į keletą naujų funkcijų, kurias „DirectX 12“, skirtos „Windows 10“, palaikys spindulių sekimui.



Tiesioginis spindulių sekimas:

Alternatyvi spindulių sekimo forma, inline spindulių seka, nenaudoja jokių atskirų dinaminių šešėlių ar šešėlių lentelių. Funkcijos API slepia prieigą prie pagreičio struktūros (pvz., Duomenų struktūros perėjimas, langelis, trikampio sankirta). Tai iš esmės palieka aparatinei įrangai / tvarkyklei. Įdomu tai, kad visas reikalingas programos kodas, skirtas tvarkyti tiek išvardytus kandidatų įvykius, tiek užklausos rezultatą (pvz., Įvykis prieš praleidimą), gali būti atskiras šešėlyje, valdančiame „RayQuery“ .



Inline spindulių sekimas suteikia kūrėjams galimybę paspartinti daugiau spindulių sekimo procesų, o ne viso darbo planavimo atidavimą sistemai. Nereikia nė pridurti, kad šis procesų optimizavimas yra gana naudingas kūrėjams, kurie spokso su keliais šešėliais. Be to, kūrėjai turi visišką laisvę dinamiškai pereiti prie tiesioginės formos paprastų rekursinių spindulių.



„DispatchRays“ () skambučiai per „ExecuteIndirect“ ():

Ši funkcija leidžia grafinio procesoriaus šešėlininkams sukurti sąrašą „DispatchRays“ () skambučių. Tai apima atskirus parametrus, tokius kaip siūlų skaičius, šešėlių lentelės nustatymai ir kiti šakninių parametrų nustatymai. Geriausias šios ypatybės aspektas yra tas, kad visą sąrašą galima įvykdyti be proceso niekada nereikalaujant tarpinio pirmyn ir atgal į procesorių.



Visiems scenarijams, kurie paruošia spinduliuotės sekimą GPU ir iškart jį pagimdo, ši funkcija turėtų būti nepaprastai naudinga. Nereikia nė pridurti, kad ši funkcija turėtų daug padėti taikant kelis adaptyvius spindulių sekimo scenarijus, tokius kaip šešėlinis skerdimas, rūšiavimas, klasifikavimas ir tobulinimas.

Augantys valstybės objektai per „AddToStateObject“ ():

Ši nauja optimizavimo funkcija bando sumažinti eikvojančias apdorojimo gijas. Nemažai programų ir procesų šiandien sukuria visiškai užpildytą spindulių sekimo vamzdyną, kuris sugaišta daug išteklių ir apkrauna sistemą. Šiuo metu D3D12 vykdymo laikas vis dar analizuoja visą sukuriamą būsenos objektą iš statybinių blokų.

Nors tai daroma norint patikrinti teisingumą, su „AddToStateObject“ () , naują būsenos objektą galima sukurti pridedant šešėlius prie esamo šešėlių būsenos objekto. Nereikia pridėti, kad procesoriaus pridėtinės išlaidos išliks proporcingos tik pridedamiems duomenims.

GeometryIndex () spindulių sekimo šešėliuose:

Ši funkcija leidžia šešėliams atskirti apatinio lygio pagreičio struktūrų geometrijas. Anksčiau geometrijas buvo galima atskirti keičiant duomenis kiekvienos geometrijos šešėlinių lentelių įrašuose, tačiau taikant naują metodą programa atleidžiama nuo naštos. Be to, jei visos geometrijos turi tą patį šešėlį, programa gali pasirinkti ją nustatyti „MultiplierForGeometryContributionToHitGroupIndex“ parametras į „TraceRay“ () 0.

Tai iš esmės užtikrins, kad geometrijos indeksas nebebūtų įtrauktas į fiksuotos funkcijos šešėlių lentelės indeksavimo skaičiavimą. Vis dėlto, jei reikia ar pageidaujate, šešėliai gali naudoti GeometryIndex () indeksuoti į pačios programos duomenų struktūras.

Be minėtų funkcijų, „DirectX Raytracing“ (DXR) pakopa 1.1 taip pat apima RAY_FLAG_SKIP_TRIANGLES ir RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES vėliavos. Nors šios žymos yra prieinamos atskiriems spindulių sekimo skambučiams, jas taip pat galima visame pasaulyje deklaruoti naudojant spindulių sekimo vamzdyno konfigūraciją.

Visiškai aišku, kad „Microsoft“ bando optimizuoti „DirectX 12“ daug grafikos reikalaujantiems žaidimams. Be to, kai spindulių sekimas žada būti viena iš svarbiausių pažangių žaidimų ir žaidėjų savybių, bendrovė užtikrina, kad sistema, procesorius ir GPU yra optimaliai naudojami su minimaliais atleidimais.

Žymos tiesioginis nvidia spindulių sekimas RTX