Az Oculus bejelentett egy új technikát a VR-piacra szánt Oculus Rift headsethez, amely radikálisan csökkenti a virtuális valóság megvalósításához szükséges minimum gépigényt, mivel lehetővé teszi, hogy a szükséges, másodpercenkénti 90 képkockának ténylegesen csak a fele legyen elengedhetetlen, a többi pedig projektált formában is érkezhet. Hasonló koncepció például az aszinkron timewarp, ami bár ma is nagyon jó szolgálatot tesz, van egy nagy hibája. Nevezetesen arról van szó, hogy addig a pontig képes jó projektált eredményt biztosítani, amíg a felhasználónak csak a feje forog fixen a nyaka körül. Ugyanakkor amint elmozdul maga a nyak, megszűnik az a fix pont, ami biztosítja a megfelelő megjelenítést, és ezt az aszinkron timewarp képtelen lekezelni, ami a virtuális valóságon belül kellemetlen, apró rezdüléshez hasonló érzést eredményez. Ráadásul a nyak tényleges elmozdulása eléggé tipikusnak mondható a virtuális valóságon belül, hiszen számos játékot álló helyzetből való vezérlésre terveznek, így a fejforgás mellett elég erős a valós térbeli mozgás is.
Hirdetés
Az aszinkron spacewarp erre a problémára kínál megoldást. Az alapokat tekintve ugyanaz a működés, mint az aszinkron timewarp esetében, de az aszinkron spacewarp nemcsak egy fix ponthoz méri a fejpozíció változását, vagyis a nyak forgását, hanem konkrétan kiértékeli a valós térbeli elmozdulást is, azaz a nyak tényleges mozgását. Ilyen formában ez a technika teljesen eltünteti azokat az apró rezdüléseket, amiket az aszinkron timewarp okozhat. Ennek megfelelően ténylegesen elég az is, ha a program valós futtatási sebessége másodpercenként 45 valós képkocka, és ehhez jön még 45 projektált eredmény az aszinkron spacewarppal, amivel meg is van az Oculus Rift headsethez szükséges másodpercenkénti 90 képkocka.
Aszinkron spacewarp
A fentiek miatt az Oculus csökkentette a Rift headsethez szükséges minimum gépigényt, így processzorból már elég lesz az Intel Core i3-6100 vagy az AMD FX-4350 is, illetve ezeknél gyorsabb, míg VGA-ból az új minimum az NVIDIA GeForce GTX 960 vagy jobb.
Az aszinkron spacewarp az implementáció tekintetében nagyon hasonlít az aszinkron timewarphoz. A fejlesztők számára tehát ezzel nincs sok munka, így csak be kell építeni az Oculus PC SDK új verzióját az adott motorba, és az aszinkron spacewarp automatikusan üzemképessé válik. Maga a funkció tesztelési céllal természetesen kikapcsolható, de az Oculus a véglegesen kiadott játékok esetében megköveteli a használatát.
Az érkező Oculus runtime az egyes architektúrákat különszedi, így az NVIDIA esetében az NVAPI nevű szervizkönyvtáron keresztül működtethető. Ez a Maxwell generáción a magas prioritású kontextusok bevetésével történik, vagyis gyakorlatilag arról van szó, hogy a rendszer elindítja az aszinkron spacewarpot, amely egy kontextusváltást eredményez a grafikus vezérlőn, majd a lehető leggyorsabban meg kell oldani az ezzel kapcsolatos számítást, mivel vissza kell adni az erőforrást a következő képkocka számításához. A soros feldolgozási modell miatt azonban itt nagyon sok múlik a programon belüli optimalizáláson, így rendkívül fontos követni az NVIDIA erre vonatkozó ajánlásait, amelyek egyébként megegyeznek majd az aszinkron timewarphoz készült ajánlásokkal. Pascal architektúrával ez annyiban módosul, hogy a programon belüli optimalizálás nem lesz kritikus fontosságú, mert a hardver már képes gyorsan reagálni a kontextusváltásokra. Ezek tulajdonképpen a klasszikus preempcióra épülő számítási modellek a hardver lehetőségeihez mérten optimalizálva.
Az AMD implementációja ezúttal is eléggé eltérő, mivel eleve más lehetőségeken keresztül dolgoznak. A vállalat a saját szervizkönyvtára helyett a Mantle API-t használja a LiquidVR-on keresztül, így többek között szinte teljesen lecserélik a program által használt grafikus API input assembler lépcsőjét. Ez jóval több trükközésre ad lehetőséget, többek között biztosítja az aszinkron shaderek alkalmazását gyakorlatilag bármilyen grafikus API mellett. A vállalat ezúttal is kétféle módot készített. Az alap aszinkron shader mód az első generációs GCN architektúrával érhető el, és ilyen formában az aszinkron spacewarp számítása a képkockák számításával párhuzamosan történik meg. Ennél hatékonyabb mód a QRQ-val (Quick Response Queue) kiegészített aszinkron shader, amely a GCN2, GCN3 és GCN4 architektúrával működik. Ilyenkor az aszinkron spacewarp számítása nagyobb prioritással történik, de a grafikai számítások sem szünetelnek, így megmarad a párhuzamos munkavégzés is. A GCN4 járulékos extrája az utasítás-előbetöltés, amivel az aszinkron spacewarp kiszámításához szükséges idő még tovább redukálható.
A legolcsóbb VR-hoz használható PC [+]
Az Oculus a fentiek mellett bejelentette, hogy hamarosan elérhetővé válik a legolcsóbb, minősített, VR-hoz ajánlott konfiguráció, amit az ünnepi szezonra szánnak. Ezt a CyberpowerPC biztosítja, és a 499 dolláros termék belsejében egy AMD FX-4350-es processzor, illetve egy AMD Radeon RX 470 VGA található, valamint Windows 10-zel előtelepítve érkezik. Ehhez kapcsolódóan jön még egy speciális csomag is, ami 999 dollárért elérhetővé teszi magát az említett PC-t, illetve az Oculus Rift headsetet, vagyis idén messze ez lesz a legolcsóbb belépő a virtuális valóságba.
Azt egyébként érdemes megjegyezni, hogy az aszinkron spacewarp nem csodaszer, ahogy az aszinkron timewarp sem volt az. Ezek a technikák elsődlegesen azt biztosítják, hogy a virtuális valóságba lépő felhasználók ne legyenek fizikai értelemben rosszul, ami nyilván egy igen alapvető igény, ha valaki egy VR headset megvásárlása mellett dönt. Kicsit hasonló a helyzet a hagyományos megjelenítők esetében értelmezett 30 vagy 60 képkocka/másodperces igényhez. Sokaknak bőven elég az előbbi, és ahhoz vásárolnak olcsóbb hardvert, míg a piac egy kis része az utóbbit igényli, és ezért hajlandók sokkal többet fizetni. A VR-piacon is más lesz az élmény akkor, ha az Oculus Rift headsetet például egy 5000 dolláros PC-re köti a felhasználó, de a fő cél nem a gazdagok kiszolgálása, hanem a technológia elérhetővé tétele a lehető legtöbb felhasználónak, akik hajlandók kompromisszumra is, legalábbis olyan kompromisszumra, amitől nem fognak hányni, vagy nem fognak émelyegni egy rövidke virtuális valóságban töltött idő után. Az aszinkron spacewarp tulajdonképpen ezt biztosítja.