Xbox
Ray Tracing je určite funkcia, na ktorú hráči, najmä pri špičkových grafických kartách od NVIDIA a AMD, netrpezlivo čakajú. Poprední tvorcovia grafických procesorov, ktorých súčasťou čoskoro bude aj spoločnosť Intel, aktívne budujú svoj hardvér na podporu funkcie, ktorá realisticky vykresľuje svetelné a tieňové efekty na základe fyzikálnych zákonov v reálnom svete a prináša hyperrealistický a pohlcujúci vizuál.
Spoločnosť Microsoft medzitým zaisťuje, aby bol ekosystém Windows OS vhodný ako ideálna platforma na hranie špičkových hier. Platforma spoločnosti DirectX, ktorá je už dlho popredným štandardom pre stolné hry, sa vylepšuje, aby natívne podporovala a dokonca vylepšovala ‘Ray-Tracing v reálnom čase’. DirectX Raytracing (DXR) Tier 1.1 je v skutočnosti najnovší štandard, ktorý podporuje množinu nových funkcií. Niektoré zo zaujímavých funkcií, ktoré môže sledovanie lúčov v reálnom čase podporovať v blízkej funkcii, sú sledovanie lúčov inline, Volania DispatchRays () cez ExecuteIndirect () , Rastúce objekty stavu pomocou AddToStateObject () , GeometryIndex () v shaderoch sledujúcich lúče , a viac. Pozrime sa na niektoré z nových funkcií, ktoré DirectX 12 pre Windows 10 bude podporovať pre sledovanie lúčov.
Inline sledovanie lúčov:
Alternatívna forma sledovania lúčov, vložené sledovanie lúčov, nepoužíva žiadne samostatné dynamické shadery alebo tabuľky shaderov. Rozhranie API pre túto funkciu skrýva prístup k štruktúre zrýchlenia (napr. Prechod dátovej štruktúry, kríženie trojuholníka). To v podstate ponecháva na hardvér / ovládač. Je zaujímavé, že všetok potrebný kód aplikácie na spracovanie vyčíslených prístupov kandidáta a výsledku dotazu (napr. Zásah vs chýbanie) môže byť samostatný v shaderi riadiacom RayQuery .
Inline sledovanie lúčov ponúka vývojárom možnosť presadiť viac procesov sledovania lúčov, na rozdiel od úplného odovzdania plánovania práce do systému. Netreba dodávať, že táto optimalizácia procesov je celkom užitočná pre vývojárov, ktorí zápasia s viacerými tieňmi. Okrem toho majú vývojári úplnú slobodu dynamicky prepínať do inline formy pre jednoduché rekurzívne lúče.
Prichádza k DirectX 12 - DirectX Raytracing (DXR) Tier 1.1 https://t.co/DRwWSaZtL8
- DirectX 12 (@ DirectX12) 6. novembra 2019
Hovory DispatchRays () cez ExecuteIndirect ():
Táto funkcia umožňuje shaderom na GPU vygenerovať zoznam DispatchRays () hovory. Patria sem jednotlivé parametre, ako sú počty vlákien, nastavenia tabuľky shaderov a ďalšie nastavenia koreňových parametrov. Najlepším aspektom tejto vlastnosti je, že je možné vykonať celý zoznam bez toho, aby proces niekedy vyžadoval prechodnú cestu späť k CPU.
Všetky scenáre, ktoré pripravia raytracingové práce na GPU a potom ich okamžite vytvoria, by mali mať z tejto funkcie obrovský úžitok. Nie je potrebné dodávať, že táto funkcia by mala veľmi pomôcť pri niekoľkých scenároch adaptívneho sledovania lúčov, ako je utratenie založené na shaderoch, triedenie, klasifikácia a vylepšenie.
Dynamika lúčov DirectX neustále rastie!
DXR Tier 1.1 a Turingova funkcia tieňovania ôk sú pridané do DX12. Všetky sú podporované ako prvé a iba na grafických kartách GeForce. pic.twitter.com/WgwysQnAR5
— NVIDIA GeForce (@NVIDIAGeForce) 29. októbra 2019
Rastúce štátne objekty pomocou AddToStateObject ():
Táto nová optimalizačná funkcia sa pokúša znížiť zbytočné vlákna spracovania. Pomerne veľa aplikácií a procesov dnes vytvára plne osídlené potrubie na sledovanie lúčov, ktoré zbytočne míňa zdroje a zaťažuje systém. V súčasnosti runtime D3D12 stále analyzuje objekt v úplnom stave, ktorý sa vytvára zo stavebných blokov.
Aj keď sa to robí na overenie správnosti, s AddToStateObject () , nový stavový objekt je možné vytvoriť pridaním shaderov k existujúcemu objektu shaderu. Nie je potrebné dodávať, že réžia CPU zostane proporcionálna iba k pridávaným údajom.
Pravidlá sa zmenili.
S nadšením vidíme DirectX Raytracing prichádzajúci do Call of Duty: #Moderna vojna pic.twitter.com/5jgoprReak
— NVIDIA GeForce (@NVIDIAGeForce) 30. mája 2019
GeometryIndex () v shaderoch sledovania lúčov:
Táto vlastnosť umožňuje shaderom rozlíšiť geometrie v rámci štruktúr zrýchlenia spodnej úrovne. Predtým sa dali geometrie rozlíšiť tak, že sa v záznamoch tabuľky shaderov pre každú geometriu menili údaje, ale s novou metódou sa aplikácia zbaví záťaže. Ak navyše všetky geometrie zdieľajú rovnaký shader, aplikácia sa môže rozhodnúť nastaviť MultiplierForGeometryContributionToHitGroupIndex parameter do TraceRay () 0.
Tým sa v podstate zabezpečí, že index geometrie už nebude zohľadňovať výpočet indexovania tabuľky shaderu s pevnou funkciou. V prípade potreby alebo želania môžu byť tieňovače použité GeometryIndex () indexovať do vlastných dátových štruktúr aplikácie.
DirectX Raytracing je teraz k dispozícii vo Windows 10 https://t.co/kmKwfUQqZz pic.twitter.com/Po8RVkdiXq
- PC Gamer (@pcgamer) 3. októbra 2018
Okrem vyššie spomenutých funkcií obsahuje aj DirectX Raytracing (DXR) Tier 1.1 RAY_FLAG_SKIP_TRIANGLES a RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES vlajky. Aj keď sú tieto príznaky dostupné pre jednotlivé volania raytracingu, môžu byť tiež globálne deklarované prostredníctvom konfigurácie potrubia raytracingu.
Je dosť zrejmé, že Microsoft sa snaží optimalizovať DirectX 12 pre hry náročné na grafiku. Navyše, s ray tracingom sľubujúcim, že bude jednou z najdôležitejších funkcií pre špičkové hry a hráčov, spoločnosť zaisťuje, aby systém, CPU a GPU sú optimálne využité s minimálnym prepúšťaním.
Značky directx nvidia raytracing RTX