DirectX Raytracing (DXR) Tier 1.1 Nové funkce mohou pracovat pouze s podporou ovladačů bez těžké úpravy hardwaru

Hardware / DirectX Raytracing (DXR) Tier 1.1 Nové funkce mohou pracovat pouze s podporou ovladačů bez těžké úpravy hardwaru 3 minuty čtení

Xbox



Ray Tracing je určitě funkce, na kterou hráči, zejména u špičkových grafických karet od NVIDIA a AMD, netrpělivě čekají. Přední tvůrci GPU, jejichž součástí bude brzy také společnost Intel, aktivně budují svůj hardware, aby podporovali funkci, která realisticky vykresluje světelné a stínové efekty na základě fyzikálních zákonů reálného světa a přináší hyperrealistické a pohlcující vizuální prvky.

Společnost Microsoft mezitím zajišťuje, aby byl ekosystém Windows OS vhodný jako ideální platforma pro hraní špičkových her. Platforma společnosti DirectX, která je již dlouho předním standardem pro stolní hry, je vylepšována, aby nativně podporovala a dokonce vylepšovala ‚Ray-Tracing v reálném čase '. Ve skutečnosti je DirectX Raytracing (DXR) Tier 1.1 nejnovějším standardem, který podporuje řadu nových funkcí. Mezi vzrušující funkce, které může sledování paprsků v reálném čase podporovat v blízké funkci, patří trasování paprsků inline, DispatchRays () volání přes ExecuteIndirect () , Rostoucí objekty stavu pomocí AddToStateObject () , GeometryIndex () ve shaderech raytracingu , a více. Podívejme se na některé z nových funkcí, které DirectX 12 pro Windows 10 bude podporovat pro sledování paprsků.



Přímé sledování paprsku:

Alternativní forma trasování paprsků, inline trasování paprsků nepoužívá žádné samostatné dynamické shadery ani tabulky shaderů. API pro tuto funkci skrývá přístup ke struktuře zrychlení (např. Průchod datové struktury, pole, průsečík trojúhelníku). To v podstatě ponechává na hardware / ovladač. Zajímavé je, že veškerý potřebný kód aplikace pro zpracování jak výčtu kandidátských zásahů, tak výsledku dotazu (např. Zásah vs. úskok) může být obsažen v shaderu, RayQuery .



Inline ray tracing nabízí vývojářům možnost usilovat o více procesů ray tracingu, na rozdíl od předávání úplného plánování práce do systému. Není nutné dodávat, že tato optimalizace procesů je docela užitečná pro vývojáře, kteří se potýkají s více stíny. Kromě toho mají vývojáři úplnou svobodu dynamicky přepínat do inline formy pro jednoduché rekurzivní paprsky.



DispatchRays () volání přes ExecuteIndirect ():

Tato funkce umožňuje shaderům na GPU generovat seznam DispatchRays () hovory. Patří mezi ně jednotlivé parametry, jako jsou počty vláken, nastavení tabulky shaderu a další nastavení kořenových parametrů. Nejlepším aspektem této funkce je, že lze provést celý seznam, aniž by proces někdy vyžadoval přechodnou cestu zpět k CPU.



Všechny scénáře, které připravují raytracingovou práci na GPU a poté ji okamžitě vytvoří, by měly z této funkce nesmírně těžit. Není nutné dodávat, že tato funkce by měla hodně pomoci s několika scénáři adaptivního raytracingu, jako je vyřazování na základě shaderu, třídění, klasifikace a vylepšení.

Rostoucí státní objekty pomocí AddToStateObject ():

Tato nová funkce optimalizace se pokouší omezit zbytečná vlákna zpracování. Poměrně málo aplikací a procesů dnes vytváří plně osazený sledovací kanál paprsků, který plýtvá spoustou zdrojů a zatěžuje systém. V současné době běhový modul D3D12 stále analyzuje celý stavový objekt vytvářený ze stavebních bloků.

I když se provádí ověření správnosti, s AddToStateObject () , nový stavový objekt lze vytvořit přidáním shaderů k existujícímu objektu stavu shaderu. Není třeba přidávat, režie CPU zůstane úměrná pouze přidávaným datům.

GeometryIndex () ve shaderech pro sledování paprsků:

Tato funkce umožňuje shaderům rozlišovat geometrie v rámci struktur zrychlení spodní úrovně. Dříve bylo možné odlišit geometrie změnou dat v záznamech tabulky shaderu pro každou geometrii, ale s novou metodou je aplikace osvobozena od zátěže. Pokud navíc všechny geometrie sdílejí stejný shader, aplikace se může rozhodnout nastavit MultiplierForGeometryContributionToHitGroupIndex parametr do TraceRay () 0.

Tím se v podstatě zajistí, že index geometrie již nebude zohledňovat výpočet indexování tabulky shaderů s pevnou funkcí. V případě potřeby nebo přání je však možné shadery použít GeometryIndex () indexovat do vlastních datových struktur aplikace.

Kromě výše uvedených funkcí zahrnuje i DirectX Raytracing (DXR) Tier 1.1 RAY_FLAG_SKIP_TRIANGLES a RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES vlajky. I když jsou tyto příznaky k dispozici pro jednotlivá volání raytracingu, lze je také globálně deklarovat prostřednictvím konfigurace kanálu raytracing.

Je zcela jasné, že se Microsoft snaží optimalizovat DirectX 12 pro hry náročné na grafiku. Navíc, s ray tracingem slibujícím, že bude jednou z nejdůležitějších funkcí pro špičkové hry a hráče, společnost zajišťuje, že systém, CPU a GPU jsou optimálně využity s minimálním propouštěním.

Značky directx nvidia raytracing RTX