A DirectX Raytracing (DXR) 1.1. Szintű új funkciók csak a vezető támogatásával működhetnek nagy hardvermódosítás nélkül

Hardver / A DirectX Raytracing (DXR) 1.1. Szintű új funkciók csak a vezető támogatásával működhetnek nagy hardvermódosítás nélkül 3 perc olvasás

Xbox



A Ray Tracing minden bizonnyal olyan funkció, amelyet a játékosok, különösen az NVIDIA és az AMD csúcskategóriás grafikus kártyáival, nagyon várnak. A GPU-k vezető gyártói, amelyekbe hamarosan beletartozik az Intel is, aktívan építik hardvereiket, hogy támogassák azt a funkciót, amely valósághűvé teszi a fény és árnyék effektusokat a valós fizikai törvények alapján, és hiperrealisztikus és magával ragadó látványt nyújt.

Eközben a Microsoft biztosítja, hogy a Windows operációs rendszer ökoszisztémája ideális platform legyen csúcskategóriás játékok lejátszásához. A vállalat DirectX platformját, amely már régóta vezető szabvány az asztali játékokban, natívan támogatják, sőt fokozzák a „Valós idejű sugárkövetést”. Valójában a DirectX Raytracing (DXR) Tier 1.1 a legújabb szabvány, amely számos új funkciót támogat. Néhány olyan izgalmas szolgáltatás, amelyet a valós idejű sugárkövetés támogathat a közeli szolgáltatásban, többek között a soron belüli sugárkövetés, DispatchRays () hívások az ExecuteIndirect () keresztül , Növekvő állapotobjektumok az AddToStateObject () segítségével , GeometryIndex () sugárkövető árnyékolókban , és több. Nézzünk meg néhány új funkciót, amelyeket a DirectX 12 for Windows 10 támogat a sugárkövetéshez.



Soros sugárkövetés:

A sugárkövetés alternatív formája, az inline sugárkövetés nem használ külön dinamikus árnyékolókat vagy árnyékoló táblázatokat. A szolgáltatás API elrejti a gyorsulási struktúrához való hozzáférést (pl. Az adatstruktúra áthaladása, doboz, háromszög kereszteződése). Ez lényegében a hardver / illesztőprogramra bízza. Érdekes, hogy mind a felsorolt ​​jelölt találatok, mind a lekérdezés (pl. Találat vagy hiány) eredményeinek kezeléséhez szükséges összes alkalmazáskód magában foglalhatja a RayQuery .



A beágyazott sugárkövetés lehetőséget nyújt a fejlesztőknek arra, hogy több sugárkövetési folyamatra törekedjenek, szemben azzal, hogy a munkaütemezést teljes egészében a rendszernek adják át. Felesleges hozzáfűznünk, hogy a folyamatok ez az optimalizálása nagyon hasznos azoknak a fejlesztőknek, akik több árnyékkal lökdösődnek. Sőt, a fejlesztőknek teljes szabadságuk van arra, hogy az egyszerű rekurzív sugarak érdekében dinamikusan váltsanak az inline formára.



DispatchRays () hívások az ExecuteIndirect () útján:

Ez a funkció lehetővé teszi, hogy a GPU árnyékolói létrehozzák a listát DispatchRays () hívások. Ezek magukban foglalják az egyes paramétereket, például a szálszámot, az árnyékolótáblázat beállításait és más gyökérparaméter-beállításokat. A szolgáltatás legjobb szempontja, hogy a teljes lista végrehajtható anélkül, hogy a folyamatnak bármikor szüksége lenne egy közbenső oda-vissza útra a CPU-hoz.



Minden olyan forgatókönyvnek, amely előkészíti a sugárkövetési munkát a GPU-n, majd azonnal előidézi, óriási hasznot kell hoznia a funkcióból. Felesleges hozzáadni, hogy ez a szolgáltatás sokat segíthet számos adaptív sugárkövetési szcenárióban, például árnyékolókon alapuló selejtezés, válogatás, osztályozás és finomítás.

Növekvő állami objektumok az AddToStateObject () segítségével:

Ez az új optimalizálási funkció megkísérli csökkenteni a pazarló feldolgozási szálakat. Napjainkban számos alkalmazás és folyamat létrehoz egy teljesen feltöltött sugárkövetési csővezetéket, amely rengeteg erőforrást pazarol és megterheli a rendszert. Jelenleg a D3D12 futásideje még elemzi a létrehozott teljes állapot objektumot építőelemekből.

Annak ellenére, hogy a helyesség ellenőrzésére szolgál, a AddToStateObject () , új állapotobjektum készíthető árnyékolók hozzáadásával egy meglévő árnyékoló állapotobjektumhoz. Felesleges hozzáfűzni, hogy a CPU általános költségei csak a hozzáadott adatokkal arányosak maradnak.

GeometryIndex () sugárkövető árnyékolókban:

Ez a funkció lehetővé teszi az árnyékolók számára, hogy megkülönböztessék a geometriákat az alsó szintű gyorsulási struktúrákon belül. Korábban a geometriákat meg lehetett különböztetni azáltal, hogy az egyes geometriákra vonatkozó árnyékolótábla-rekordokban az adatok változóak voltak, de az új módszerrel az alkalmazás mentesül a terhek alól. Sőt, ha minden geometriának ugyanaz az árnyékolója van, az alkalmazás választhatja a MultiplierForGeometryContributionToHitGroupIndex paraméter a TraceRay () 0.

Ez lényegében biztosítja, hogy a geometriai index már ne vegye figyelembe a fix függvényű árnyékoló tábla indexelési számítását. Ennek ellenére, ha szükséges vagy kívánatos, az árnyékolók használhatják GeometryIndex () indexelni az alkalmazás saját adatstruktúráiba.

A fent említett szolgáltatások mellett a DirectX Raytracing (DXR) Tier 1.1 is tartalmazza RAY_FLAG_SKIP_TRIANGLES és RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES zászlók. Míg ezek a jelzők elérhetőek az egyes sugárkövetési hívások számára, sugárkövetési folyamatkonfigurációval globálisan is deklarálhatók.

Teljesen világos, hogy a Microsoft megpróbálja optimalizálni a DirectX 12-et grafikailag intenzív játékokhoz. Sőt, mivel a sugárkövetés ígéretes, hogy a csúcskategóriás játékok és játékosok egyik legfontosabb jellemzője, a vállalat biztosítja, hogy a rendszer, a CPU és a A GPU-t optimálisan használják minimális elbocsátásokkal.

Címkék direktx nvidia sugárkövetés RTX