DirectX staru izsekošanas (DXR) 1.1. Līmeņa jaunās funkcijas var darboties ar vienkāršu draiveru atbalstu bez lielas aparatūras pārveidošanas

Aparatūra / DirectX staru izsekošanas (DXR) 1.1. Līmeņa jaunās funkcijas var darboties ar vienkāršu draiveru atbalstu bez lielas aparatūras pārveidošanas 3 minūtes lasīts

Xbox



Ray Tracing noteikti ir funkcija, kuru spēlētāji, it īpaši ar augstas klases grafiskajām kartēm no NVIDIA un AMD, ļoti gaida. Vadošie GPU veidotāji, kuros drīz būs arī Intel, aktīvi būvē savu aparatūru, lai atbalstītu funkciju, kas reāli rada gaismas un ēnas efektus, pamatojoties uz reālās pasaules fizikas likumiem, un rada hiperreālistiskus un visaptverošus attēlus.

Tikmēr Microsoft nodrošina, ka Windows OS ekosistēma ir piemērota kā ideāla platforma augstas klases spēļu spēlēšanai. Uzņēmuma DirectX platforma, kas jau sen ir bijusi vadošais standarts darbvirsmas spēlēm, tiek pielāgota, lai dabiski atbalstītu un pat uzlabotu ‘Reāllaika staru izsekošanu’. Faktiski DirectX Raytracing (DXR) līmenis 1.1 ir jaunākais standarts, kas atbalsta jaunu funkciju kopumu. Dažas no aizraujošajām funkcijām, ko reāllaika staru izsekošana varētu atbalstīt tuvumā, ir staru izsekošana, DispatchRays () zvani, izmantojot ExecuteIndirect () , Valsts objektu audzēšana, izmantojot AddToStateObject () , GeometryIndex () staru izsekošanas ēnotājos , un vēl. Apskatīsim dažas no jaunajām funkcijām, kuras DirectX 12 operētājsistēmai Windows 10 atbalstīs staru izsekošanai.



Tiešā staru izsekošana:

Alternatīva staru izsekošanas forma, staru staru izsekošana, neizmanto atsevišķus dinamiskos ēnotājus vai ēnotāju tabulas. Funkcijas API slēpj piekļuvi paātrinājuma struktūrai (piemēram, datu struktūras šķērsošana, lodziņš, trīsstūra krustojums). Tas būtībā atstāj to aparatūras / draivera ziņā. Interesanti, ka visu nepieciešamo lietotnes kodu, lai apstrādātu gan uzskaitītos kandidātu trāpījumus, gan vaicājuma rezultātus (piemēram, trāpījums pret garām), var ietvert ēnotājā, kas vada RayQuery .



Tiešā staru izsekošana piedāvā izstrādātājiem iespēju virzīties uz vairāk staru izsekošanas procesiem, nevis darba plānošanu pilnībā nodot sistēmai. Lieki piebilst, ka šī procesu optimizācija ir diezgan noderīga izstrādātājiem, kuri jostling ar vairākām ēnām. Turklāt izstrādātājiem ir pilnīga brīvība dinamiski pāriet uz inline formu vienkāršiem rekursīviem stariem.



DispatchRays () zvani, izmantojot ExecuteIndirect ():

Šī funkcija ļauj GPU ēnotājiem izveidot sarakstu ar DispatchRays () zvani. Tie ietver atsevišķus parametrus, piemēram, pavedienu skaitu, ēnotāja tabulas iestatījumus un citus sakņu parametru iestatījumus. Labākais šīs funkcijas aspekts ir tas, ka visu sarakstu var izpildīt, procesam nekad nav nepieciešams starpposma turp un atpakaļ atpakaļ uz CPU.



Visiem scenārijiem, kas GPU sagatavo staru izsekošanas darbu un pēc tam to tūlīt nārsto, no šīs funkcijas būtu ārkārtīgi jāgūst labums. Lieki piebilst, ka šai funkcijai vajadzētu daudz palīdzēt ar vairākiem adaptīviem staru izsekošanas scenārijiem, piemēram, nokrāsošanu ar ēnojumu, šķirošanu, klasificēšanu un uzlabošanu.

Valsts objektu audzēšana, izmantojot AddToStateObject ():

Optimizācijas funkcija, šī jaunā, mēģina samazināt izšķērdīgus apstrādes pavedienus. Mūsdienās diezgan daudzas lietotnes un procesi rada pilnībā apdzīvotu staru izsekošanas cauruļvadu, kas tērē daudz resursu un apgrūtina sistēmu. Pašlaik D3D12 izpildlaiks joprojām parsē pilnu izveidojamo stāvokļa objektu no celtniecības blokiem.

Lai gan tas tiek darīts, lai pārbaudītu pareizību, ar AddToStateObject () , jaunu stāvokļa objektu var izveidot, pievienojot ēnotājus esošam ēnotāja stāvokļa objektam. Lieki piebilst, ka CPU pieskaitāmās izmaksas paliks proporcionālas tikai pievienotajiem datiem.

GeometryIndex () staru izsekošanas ēnotājos:

Šī funkcija ļauj ēnotājiem atšķirt ģeometriju apakšējā līmeņa paātrinājuma struktūrās. Agrāk ģeometrijas varēja atšķirt, mainot datus katras ģeometrijas ēnotāju tabulas ierakstos, taču ar jauno metodi lietotne tiek atbrīvota no sloga. Turklāt, ja visām ģeometrijām ir viens un tas pats ēnotājs, lietotne var izvēlēties iestatīt MultiplierForGeometryContributionToHitGroupIndex parametrs uz TraceRay () 0.

Tas būtībā nodrošinās, ka ģeometrijas indekss vairs neietekmē fiksētās funkcijas ēnotāja tabulas indeksēšanas aprēķinu. Tomēr, ja nepieciešams vai vēlaties, ēnotāji var izmantot GeometryIndex () indeksēt pašas lietotnes datu struktūrās.

Papildus iepriekšminētajām funkcijām DirectX Raytracing (DXR) Tier 1.1 ietver arī RAY_FLAG_SKIP_TRIANGLES un RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES karogi. Kaut arī šie karodziņi ir pieejami atsevišķiem staru izsekošanas zvaniem, tos var arī globāli deklarēt, izmantojot staru sekošanas cauruļvada konfigurāciju.

Ir pilnīgi skaidrs, ka Microsoft mēģina optimizēt DirectX 12 grafikas ietilpīgām spēlēm. Turklāt, tā kā staru izsekošana ir viena no vissvarīgākajām īpašībām augstas klases spēlēm un spēlētājiem, uzņēmums nodrošina, ka sistēma, centrālais procesors un GPU tiek optimāli izmantoti ar minimālu atlaišanu.

Tagi DirectX nvidia staru izsekošana RTX