Elkészült a végleges GameWorks VR csomag

Az NVIDIA még az elmúlt év őszén jelentette be a VR Direct csomagot, amelyet akkor még csak pár szóban jellemeztek, így sok adat a működésre vonatkozóan nem állt rendelkezésre. Később azonban kiderült miről van szó, és nemrég a csomag nevet is váltott, így a vállalat végül GameWorks VR-ként jellemzi. A cél és az eredetileg vázolt működés persze nem változott, így az egész rendszer elsődlegesen az Oculus SDK képességeit egészíti ki, de más VR fejlesztőkörnyezethez is bevethető. Az Oculus SDK-ra való figyelem is egyfajta koncepció, mivel ha a VR eszközök terjedni kezdenek, akkor PC-n egyértelműen az Oculus Rift lesz a piacvezető a felkínált szoftveres alap miatt, amelyet a többi konkurens egyelőre nehezen követ le.

A GameWorks VR pár nagyon fontos extrát kínál az alapvető VR fejlesztőkörnyezetekhez. Az egyik legfontosabb funkció a több, egészen pontosa két GPU-s leképzés a virtuális valósághoz, amely VR SLI névre hallgat. Ez nem újdonság, hiszen logikus koncepció, ha a két szem számára a két képkockát két külön grafikus vezérlő képzi le. Ez hagyományos értelemben nem is tekinthető SLI-nek, ráadásul a virtuális valóság jellege miatt a sztereó 3D-t nem lehet különböző, nagyrészt utófeldolgozásra alapozó projekciós trükkökkel biztosítani, így muszáj teljesen kiszámolni a két szem számára a szükséges képkockákat. Ezt egyértelműen két külön GPU teszi meg a leggyorsabban és a legkisebb késleltetéssel.

A másik legfontosabb funkció az asynchronous timewarp, amelyhez a vállalat context priority nevű funkciót használja. Elméleti szintre lebontva az NVIDIA timewarp feladatot magasabb prioritással futtatja, így a Fermi, Kepler és Maxwell architektúrára épülő GPU-k a beépített, rajzolási szintű preempcióval megpróbálják előnyben részesíteni a magasabb prioritású feladatokat, hogy a timewarpnak minél hamarabb legyen eredménye, azaz ne késse le a vertikális szinkronizációt. A GeForce-ok esetében fontos kiemelni, hogy az adott VR fejlesztőkörnyezetet rendkívül specifikusan kell tervezni, mert a hardverben alkalmazott rajzolási szintű preempció nem igazán alkalmas a virtuális valósághoz, ezen belül a timewarp megvalósításához. Ilyen működés mellett egy naiv timewarp implementáció nem fog javítani, mert viszonylag nagy az esélye, hogy a timewarp számítása elé egy hosszú ideig tartó rajzolási feladat szorul be, ami rossz esetben akár 3-6 ms-ig is futhat, és addig késlelteti a kontextusváltást. Ezt a GeForce-ok nem képesek semmilyen formában sem megszakítani, így csak elhelyezik a timewarpot a sorba. Emiatt olyan optimalizálási stratégiát kell kidolgozni, amely biztosítja, hogy a timewarp elé ne szoruljon semmilyen hosszú ideig tartó rajzolás. Ez egyáltalán nem könnyű feladat, de a megfelelő eredmény elérése érdekében muszáj törődni ezzel a problémával.

Preempció a GeForce-okon
Preempció a GeForce-okon

Az NVIDIA egyébként egy korábbi konferencián már elmondta, hogy a későbbi architektúrákban áttérnek majd a virtuális valóság szempontjából sokkal jobb eredményeket adó finomszemcsés preempcióra, amelyet az Intel (Gen9) és az AMD (GCN3) legújabb grafikus architektúrái is alkalmaznak.

A harmadik fontos funkció az MSR, azaz a Multi-Res Shading. Ebben a koncepcióban alapvetően olyan képkocka születne meg a szem számára, amelynek minősége a szem fókuszához igazodik, vagyis a képkocka közepe natív minőségű, míg a képkocka széle már nem jelenik meg teljes felbontáson. Az efféle koncepciókat úgymond a virtuális valóság veszteséges tömörítésének is gúnyolhatjuk, ahol a minőségvesztés ugyan jelen van, de nem annyira jelentős, hogy ne lehessen elfogadni, főleg úgy, hogy komoly lehet a teljesítménytöbblet.

Multi-Res Shading
Multi-Res Shading

Az NVIDIA megoldása több nézőpontra osztja a képkockát és azokat külön számolja a rendszer. A képkocka közepe lesz a fontos, ami teljes minőségben készül, míg a nyolc szélső nézőpont számítása például a natív felbontás felével vagy negyedével is történhet. Utóbbi nyilván tetszőlegesen paraméterezhető. Ezután a képet megfelelőn skálázni lehet. A vállalat korábban azt írta, hogy nagyjából 1,3-szoros vagy 2-szeres teljesítményelőnyt lehet elérni a pixel shader lépcsőn, míg valós mérésekre levetítve a Multi-Res Shading 50%-kal gyorsabb feldolgozást kínál az Unreal Engine 4 alatt. Mindenképpen meg kell jegyezni, hogy erre a koncepcióra még a vállalat termékskáláján belül is csak a GM200-as, GM204-es és GM206-os lapkákra épülő GeForce-ok képesek rá. Azt sajnos egyelőre nem tudni, hogy a Multi-Res Shading opcionálisan kikapcsolható-e, ha esetleg a felhasználók nem szeretnék elfogadni a vele járó minőségromlást. Ezzel kapcsolatban megkérdeztük az NVIDIA-t, de egyelőre nem érkezett válasz.

A GameWorks VR fontos funkcióinak tekinthetők még a Direct Mode és a Front Buffer Rendering technikák. Ezek például az Oculus SDK Direct To Rift koncepciójához képest a késleltetés további csökkentését szolgálják.

A GameWorks VR az NVAPI nevű szervizkönyvtárra épül, de egyelőre az 1.0-s verzió csak Windows 7, 8.1 és 10 operációs rendszerre érhető el, ezen belül is a DirectX 11-es API-ra. Később a DirectX 12, a Vulkan és az OpenGL API-k is kapnak támogatást.

Az NVIDIA a professzionális megoldásokhoz elérhetővé tette a DesignWorks VR csomagot is, amely a DesignWorks gyűjtőnév alatt elérhető, de régóta létező szoftverek virtuális valósághoz tervezett verzióját tartalmazza.

Azóta történt

Előzmények

Hirdetés