Szövetkezik az AMD és az Oculus a jobb virtuális valóságért

Az AMD és az Oculus az idei GDC-n bejelentett egy új, LiquidVR nevű fejlesztőkörnyezetet. Ezt nagyrészt az AMD fejlesztette ki, de az Oculus szakemberei is segítettek, ugyanis még mindig van pár olyan probléma, amelyekre eddig nem sikerült tökéletesen reflektálni.

A LiquidVR SDK az Oculus saját fejlesztőkörnyezetének kiegészítése lesz. Négy alapvető eleme van, amelyek a jobb élményt célozzák meg. Az AMD és az Oculus a közös előzetesen ezeket fejtették ki, míg holnap az AMD egy részletes prezentációt is tart a fejlesztőknek, de csak zárt ajtók mögött.

Az Oculus korábban is beszélt arról, hogy az egyik legjobb koncepció a késleltetés csökkentésére az asynchronous timewarp. Ezt jelenleg az NVIDIA és az AMD modernebb grafikus architektúráin támogatják, de mindkét esetben sok limitációval kell számolni. Az NVIDIA grafikus vezérlőin például a kontextusok belsőleg priorizálhatók, és ennek a hatékonyabb felhasználást célozza a vállalta saját VR Direct SDK-ja is. Az AMD azonban egy komplexebb megoldással állt elő ugyanerre a problémára.


[+]

A GCN architektúra híres arról, hogy rendkívül jól kezeli a compute preempciót, és igen hatékonyan futtatja egymás mellett a különböző feladatokat, de szoftveres szinten jelenleg ez nem használható ki. A LiquidVR azonban az asynchronous timewarp koncepciójára építve bevezeti a hardveresen gyorsított timewarpot. Itt az alapkoncepció pont ugyanaz, mint az asynchronous timewarp esetében, csak a működés szempontjából a GCN-es GPU-kban található ACE egységek képességei kihasználhatóvá vállnak. Ennek megfelelően rendkívül gyors compute preempcióra van lehetőség, és a grafikus feladatok mellett teljesen függetlenül futhatnak a timewarphoz szükséges compute feladatok, köszönhetően annak, hogy a GCN egy stateless compute architektúra, vagyis a compute feladatok futtatásához nem kell beállítania magának egy hardveres állapotot. A hardveresen gyorsított timewarp használatával komplex jeleneteknél is rendkívül jó eredmények érhetők el.

A LiquidVR a fentiek mellett többféle aszinkron feladat-végrehajtást is támogat, mint például az aszinkron globális illumináció, ami szintén lényeges a komplexebb grafikai szintek kezelése szempontjából.

A LiquidVR másik érdekessége a több GPU-s leképzés a virtuális valósághoz. Ez szintén nem újdonság a maga nemében, 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. A LiquidVR újítása ebből a szempontból a rendkívül egyszerű beépíthetőség, ugyanis a videojáték-motoroknak elég csak egy szimpla, GPU-ra vonatkozó maszk és transzfer parancs, amivel már működik is a több GPU-s mód.


[+]

Végül az Oculus egyik legnagyobb problémája a fejmozgások követése volt mindig is. Ez a jelenlegi formában nem tökéletes, mivel a feldolgozandó kameranézet, amelyből meg kell oldani a sztereó 3D-s kép leképzését, már lehet, hogy nem aktuális. Utóbbi főleg abból ered, hogy az Oculus úgy működik, hogy a processzor az adott jelenethez lementi a fej aktuális pozícióját, amit majd a grafikus vezérlő elkérhet, ha elkezdi a jelenethez tartozó szemenkénti képkockák számítást. Ezután asynchronous timewarp mellett a következő jelenethez kapott mintát veszi alapul, vagyis bizonyos értelemben rossz adatokkal dolgozik.

Az AMD ebből a szempontból húzott egy merészet és LiquidVR-en belül lehetővé tesznek egy olyan programozási mechanizmust, amellyel a fejlesztők nagy pontossággal határozhatják meg a fej tényleges helyzetét. A korábbi modellel ellentétben a processzor egy hivatkozási adatot küld el a grafikus vezérlőnek, amiben mindig aktuális pozícióadatok vannak a fej helyzetéről.


[+]

Ennek a koncepciónak az az nagy előnye, hogy az Oculus a fej pozíciójának meghatározásánál nem számol azzal, hogy a leképzéssel akár 10 ezredmásodpercet is eltölt majd a rendszer. Ugyanakkor a felhasználó feje 10 ezredmásodperc alatt elmozdulhat, de a fej pozíciójáról a minta már be lett töltve a jelenet számításának megkezdésekor, míg az asynchronous timewarp, szimplán egy rosszul szinkronizált mintát vesz alapul. A LiquidVR lényegében azt csinálja, hogy nem dolgozik fix mintával, így a grafikus vezérlőnek elég akkor lekérnie a fej pozícióját, amikor megkezdi a képkockák számítását. Ezzel a virtuális valóságban felhasznált fejpozíció lényegében állandóan aktuális lesz a valós módon vagy timewarppal leképzett sztereó 3D-s képkockák esetén, így az élmény sokkal közelebb lesz a valósághoz.


[+]

Az AMD LiquidVR alfa verziója a kiválasztott szoftverfejlesztőknek már elérhető, közülük az AMD a Cryteket emelte ki, mint állandó partner, de más stúdiókkal is együtt dolgoznak. A legtöbb funkció viszont egyelőre csak az Oculus Riftet támogatja, illetve pontosabban az Oculus fejlesztőkörnyezetével kompatibilis. Ugyanakkor az AMD utalt rá, hogy más virtuális valóságra tervezett rendszert is támogatni fognak. Például a direct-to-display funkció máris elérhető a fejlesztőkörnyezetben, amely lényegében az Oculus Direct To Rift elérésének a LiquidVR-es változata, és ez nem csak az Oculus Riftet kezeli, illetve az Oculus szerint az AMD saját implementációja jobb eredményt ad a Direct To Riftnél, így ennek a támogatására biztatják a fejlesztőket. A LiquidVR technológiáihoz természetesen GCN architektúrára épülő Radeon grafikus vezérlő szükséges.

Azóta történt

Előzmények

Hirdetés