Házi virtuális valóság kezdőknek

Házi virtuális valóság kezdőknek

Ismét egy tőletek érkezett írással jelentkezünk! Ezúttal CMDR. Kuplung kalauzol el bennünket a házi virtuális valóságok világába.

Bevezető

Ez a kis oktatóanyag azt a célt szolgálja, hogy egy mostanában népszerű lehetőséget kihasználva, az olvasó képes legyen egy okostelefonnal működő olcsó VR headset-et házilag összerakni.

Megpróbáltam mindent lejegyezni, amire az egyszerű virtuális valósághoz szükség lehet.

Az itt leírtak, bár az Elite : Dangerous-ra fókuszálnak, a későbbiekben más 3D-s, fejkövetést támogató játéknál is használhatók.

A leírásban feltételezek bizonyos informatikai alapismereteket, ezért csak a nem triviális dolgokra térek ki. Egyedi problémákkal szívesen foglalkozok privát üzenetekben.

Fontos kiemelni, hogy szerintem a jelenlegi barkács-megoldások által nyújtott élmény nem vethető össze a profi headset-ekkel (Oculus Rift, HTC Vive). Ennek fő oka a jelenlegi telefonok kijelzőinek gyengesége, amit nem VR-hez terveztek : sem a felbontásuk, sem a frissítési gyakoriságuk nem teszi lehetővé a teljes VR élményt.

Ezen felül a telefont hordozó headset-ek jóval nehezebbek (orrnehezek), és jobban melegednek is, ezért sokkal kényelmetlenebbek is.

Szoftver oldalról problémás lehet még a streamelés minősége, amit nagyban befolyásol a PC és a telefon teljesítményén felül a használt WiFi router által biztosított adatfolyam bitrátája is.

foot

Mire lesz szükséged?

Hardver oldalról a következőkre :
-Elite : Dangerous-t és nVidia Gamestream-et futtatni képes PC
Gamestream-hez minimum GeForce GTX600-as szériába tartozó videókártya
AMD-s videókártyák nem támogatottak. AMD-s játékosoknak alternatív megoldás lehet a Trinus VR.

-Minél gyorsabb, legalább IEEE 802.11a/g/n képes WiFi router
A cél legalább 20 Mbit/s adatfolyam elérése. Ez alatt tapasztalataim szerint akadni fog a kép, vagy a tömörítés miatt blokkosodik, élvezhetetlenné válik.

-Legalább FullHD kijelzős okostelefon, minimum Android 4.1-el
-Egy Google Cardboard, de ajánlott egy műanyag VR keret beszerzése
Több internetes áruház is árul ilyeneket, pl. ShineCon VR az AliExpress-en (max. 20 USD)

Az alap Google Cardboard nagyon rossz élményt nyújt az alacsony látószög miatt.

foot

Mire lesz még szükséged?

Szoftver oldalról a következőkre :
Elite : Dangerous
nVidia Gamestream, ami az Elite képét átstreameli a telefonra
Moonlight, a Gamestream telefonon futó párja, ami megjeleníti a streamelt képet
Opentrack, ami a telefon szenzoradatait fogadja, és alakítja át az Elite felé
Freepie IMU, ami a telefon szenzoradatait kiolvassa és átküldi a PC-n futó Opentrack-nek

foot

Honnan szerzed be a szükséges szoftvereket?

Moonlight :
Google Play-ből telepíthető :
https://play.google.com/store/apps/details?id=com.limelight

Opentrack :
Letölthető innen:
https://github.com/opentrack/opentrack/releases

Freepie IMU:
Az Opentrack csomag része, kicsomagolás után megtalálható a install\clientfiles\freepie-udp alkönyvtárban

nVidia Gamestream:
Az nVidia.com honlapjáról, a Geforce Experience része.
http://www.geforce.com/geforce-experience

foot

Áttekintés

A következő fóliákon először bemutatom, hogy az egyes hardver- és szoftverelemek hogyan dolgoznak össze egymással.
Azután pedig lépésről lépésre végignézzük az egyes elemeket, hogy melyiket hogy kell beállítani.

Csapjunk is bele!

foot

Áttekintés

Áttekintés

foot

Előkészületek

A leírás készítésekor én egy Sony Xperia Z3 készüléket használtam, és az ennek megfelelő paramétereket fogom megadni. Ettől az egyes telefonok beállításai eltérhetnek.

Ami nálam gond volt:
– Repülős mód („Airplane mode”) bekapcsolása
Muszáj bekapcsolni, különben a telefon folyamatosan keres WiFi jelet, akkor is ha van érvényes adatkapcsolat. Ez nálam 30 másodpercenként jelentkező, 1-2 másodpercig tartó akadozást jelentett.

– A szenzoradatok feldolgozása, értelmezése
Az Opentrack által kapott adatok nem minden esetben helyesek,
néha még szoftververziónként is különböző beállítások szükségesek.

Az itt lévő ábrát használom referenciának a 3 tengely megjelölésénél, valamint megpróbáltam berajzolni, hogy az én telefonom hogy helyezkedik el a headset belsejében.

Tengelyek

foot

Freepie IMU beállítása

1. Másoljuk át a telefonra az Opentrack könyvtárából a com.freepie.android.imu.apk file-t

2.Telepítsük az APK-t.

3.Ha ez nem sikerül, akkor a telefonon engedélyezni kell a külső alkalmazások telepítését.

4.A PC-n kérdezzük le annak helyi IP címét, pl. a parancsorban az ipconfig parancsot kiadva.

5.Az telefonon alkalmazást elindítva, a következőket kell beállítani:
-Target IP : a PC helyi IP címe, mint ahogy a képen is látható
-Target port : 5555, ahogy a képen is látható
-A „send orientation” és „send raw data” lehetőségeket be kell pipálni
-A sebességet „Fastest – no delay”-re kell állítani

6.Ha minden rendben, akkor az „ON” gomb megnyomásával a telefon elkezdi sugározni a szenzorainak az adatait a PC felé.

foot

Opentrack beállítása 1/5

– Az Opentrack-ben először is a Tracker-t állítsuk át FreePIE UDP receiver-re.
– Ezután a tracker sorában álló 3 pöttyre kattintva állítsuk be a képnek megfelelően.
– Ezzel mondjuk meg az Opentrack-nek, hogy a telefon szenzorai által érzékelt, egyes tengelyeken történő elmozdulást hogyan fordítson át az Elite-nek.
– Figyelem! Ahogy a bevezetőben írtam, ezeket én véres verejtékkel, több napi próbálgatással és a fejlesztőkkel való levelezgetés során tudtam egy  Sony Z3 készülékkel életre lehelni. Azóta még egy egy LG G3-mal próbáltam, ugyanezekkel a beállításokkal, és hibátlanul működött, ezért bátorkodom közzétenni.
– De ennek ellenére, ha valakinek gondja van a tengelyek kezelésével, az kísérletezzen bátran. A hiba eléggé szembeszökő lesz, mert a játékban nem abba az irányba fog elfordulni a látott kép, mint ahogy az ember a telefon forgatásával elvárná.

foot

Opentrack beállítása 2/5

Következő lépésként állítsuk be a következőket:
– Protocol : Freetrack 2.0 (enhanced)

Ezt a fejkövetési protokollt támogatja az Elite alapból. Az ilyen formátumban érkező jelet a játék automatikusan át fogja venni, és a fejmozgás szimulálását elvégzi.
– Filter : Accela

A szenzoradatokat szűrni kell, különben a puszta levegővételünk általi minimális mozgás is fejmozgást generálna a játékban, és ez elég zavaró. Én a mellékelt képen látható beállításokat használom, emlékeim szerint ez az alap, nem változtattam rajta semmit.

foot

Opentrack beállítása 3/5

Ezután jön még egy kis finomhangolós rész.
Az Opentrack főképernyőjén a „Mapping” gombot megnyomva, állítsuk be az alábbi ábrán látható ábrát az összes tengelyen.
– Yaw
– Pitch
– Roll

A kezelés elég magától értetődő, a lényeg, hogy a bal alsó sarkot összekössük a jobb felső sarokkal egy sima egyenessel.

foot

Opentrack beállítása 4/5

Ami még fontos: az options-ben állítsunk be egy gombot a center-nek. Ez szolgál a headset által küldött aktuális fejtartás „alapnak” tekintésére. Vagyis ahogy éppen tartjuk a fejünket, amikor lenyomjuk ezt a gombot, a játékban az fogja jelenteni a középállást.

Sajnos az a keserű tapasztalat, hogy még egy viszonylag jobb telefonszenzor sem vetekszik a profi megoldásokkal, és elég sűrűn kell középre igazítani.

A képen én a „backspace”-t választottam, mert könnyű kitapogatni.

foot

Opentrack beállítása 5/5

Végezetül, az Options menü Output füle alatt állítsuk be a Translation compensation-t és az Output remap-et a képnek megfelelően.

Ha valakinek hozzám hasonlóan gondjai vannak a tengelyek kezelésével, esetleg nem úgy helyezi be a telefonját a headset-be, ahogy én tettem, akkor itt lehet játszani a lehetőségekkel.

Emlékeztetőül: én feltételezem, hogy mindenkit úgy rakja be a headset-be a telefont, hogy annak a teteje balra, a bal oldala pedig lefele néz.

 

foot

Az első teszt

Ha ez eddigieket megcsináltuk, akkor az elvégzendő feladatok felén már túl is vagyunk. Ugye nem is volt nehéz?
Persze hátra van még a legjobb rész, a tesztelés.
A telefont tegyük le az asztalra az élére állítva (vagy akár a headset-be helyezve).
A FreePIE-ban indítsuk el az adatküldést, az Opentrack-ben pedig nyomjuk meg a Start gombot.
Ha mindent jól csináltunk, akkor a telefont tekergetve a 3 tengely körül mindig megfelelő értékek (yaw/pitch/roll) változnak plusz/mínusz irányba a game data alatt.
Célszerű külön-külön elforgatni az asztalon a telefont egy-egy irányba, és onnan vissza. Így elég könnyen kiderül, hogy minden tengely lefordítása hibátlan-e.
Ha gond van, akkor az előzőek szerint kell eljárni, és a helyes fordítási értékeket megadni.

foot

nVidia Gamestream beállítása

Itt túl sok teendőnk nincsen.

Ha a GeForce Experience fel van telepítve, akkor azt elindítva a Preferences -> SHIELD menüpont alatt be kell kattintani az „Allow this PC to stream games to SHIELD devices”-t.

Itt, aki gondolja, felveheti az Elite Dangerous Launcher-t a Games közé. Ebben az esetben a telefonról közvetlenül indítható lesz a Launcher, ízlés kérdése. Én jobban szeretem a telefonról a Steam-et elindítani, és aztán ott kiválasztani az Elite-t.

Ennek két előnye van: a Steam-en én beállítottam, hogy mindig a Horizons induljon el, ezért ilyenkor már csak rá kell nyomni a Play-re. A másik előny pedig hogy Steam-ből gombnyomással ki lehet kapcsolni a streaminget, míg közvetlen indítás esetén csak Alt+F4-gyel lehet ezt megtenni, és ezt kicsit igénytelennek érzem.

foot

Moonlight beállítása 1/2

Ha ez eddigiekkel megvagyunk, akkor már csak annyi a teendő, hogy a Moonlight-ot rábírjuk arra, hogy együttműködjön a PC-n futó Gamestreaming szolgáltatással.

Ehhez indítsuk el a telefonon a Moonlight-ot, ami szerencsés esetben azonnal jelzi, hogy az adott hálózaton Gamestreaming képes PC-t talált.

Ha ez nem sikerül, akkor sem kell elkeseredni, csak a nagy szürke +-t kell megnyomni, és a FreePIE-os beállításoknál leírtaknak megfelelően a PC helyi IP címét megadni.

Ha ezek után sem tűnik fel a gép a jobb oldali képnek megfelelően, akkor valószínűleg tűzfal probléma van a gépen, aminek a feloldására most nem térek ki.

foot

Moonlight beállítása 1/2

Ha sikeres volt a kapcsolat, akkor még a bal sarokban lévő fogaskerekre bökve tudjuk finomhangolni a Moonlight-ot.

Ezek az én beállításaim.
Basic settings:
– Select resolution and FPS target : 1080p @ 60 fps
– Select target video rate : 20 Mbps
– Stretch video to full screen

A többi opció nem lényeges, leszámítva a Play audio on PC-t, amit én javaslok bekapcsolva hagyni, hacsak nem akarjuk, hogy a hang csak a telefonból jöjjön.

Fontosnak érzem megjegyezni, hogy a fentieknek nem számoltam utána, elképzelhető, hogy 20 Mpbs-sel nem is vihető át ilyen felbontású stream 60 fps-sel.

Sőt, kétségeim vannak, hogy egy telefon képes-e egyáltalán 60hz-en frissíteni. A fentiek kizárólag az én szubjektív tapasztalataimon alapulnak, ezekkel a beállításokkal tudtam elérni, hogy még ne szaggasson az átvitel és még a tömörítés miatti jellegzetes blokkosodás se legyen feltűnő.

foot

A második teszt

Ha az eddigiekkel megvagyunk, akkor nincs más hátra mint egy újabb teszt.

Indítsuk el a telefonon a Moonlight app-ot, kattintsunk a PC-nk ikonjára.

Ha minden rendben megy, akkor kapunk egy listát a Geforce által felismert streamelhető alkalmazásokról, és köztük lesz a Steam is, illetve, ha hozzáadtuk a Games.. –hez, akkor az Elite Dangerous launchere.

Innentől kezdve triviális a dolog : az Elite-t kiválasztva, beindul a Gamestreaming, és a PC-n látható kép láthatóvá válik a telefonon is. 

Ne lepődjünk meg, de a Steam egy speciális, úgynevezett Big Screen Mode-ban indul el, amiből a jobb felső sarokban lévő kikapcsoló ikonra kattintva, a Stop streaming gombot kiválasztva tudunk kilépni.

foot

Elite Dangerous beállítasa

Utolsó lépés, az Elite-en belüli beállítások.

A legfontosabb, hogy az Options-> Video menüben állítsuk be a 3D megjelenítést, side by side módban.

Ami még fontos lehet, hogy a Headlook mode nálam így van beállítva, ez a fel-le nézés tengelyeknél okozhat problémát.

foot

Az utolsó teszt

Ha minden rendben volt, akkor mostanra összeállt a rendszer és nincs más dolgunk, csak szépen elindítgatni az egyes elemeket, és kipróbálni a 20 dolláros házi VR-t.

Célszerű előbb a FreePIE-t indítani, aztán az Opentrack-et, aztán ha minden rendben, akkor a telefonról a Moonlight-ból a játékot.

A végeredmény valami ilyesmi kell, hogy legyen:

https://www.youtube.com/watch?v=oWMT0DVvjcs

foot

További lehetőségek

ReShade : filterező program, amivel a kiadott képet lehet módosítani. A headsetbe épített lencsék torzított képet adnak, így simán torzítatlan képet küldve a telefonra hibás perspektívát kapunk. Ezzel a programmal kiküszöbölhető a probléma, sajnos elég jelentős látószögvesztés árán.

Trinus VR : komplett telefonos VR megoldás, a Moonlight és a Gamestreaming helyett. Ez utóbbi miatt AMD kártyákon is működik. Gyakorlatban sajnos nekem rossz tapasztalataim voltak vele, a teljesítménye sokkal rosszabb mint a Moonlight-os megoldásnak.

TriDEF : Az Elite saját beépített 3D side by side támogatással bír, de ez nem minden játékban van így. Az ilyen játékok is játszhatóvá tehetők a TriDEF alkalmazással, meglepően jó eredménnyel.

foot

Az írás egy lelkes amatőr tollából készült, ezért javító szándékú visszajelzéseket szívesen fogadok.
Sok sikert és repüljetek óvatosan, Parancsnokok!

CMDR. Kuplung

 

Információ a szerzőről

Duvi

Én vagyok a csapat átlagéletkorának a megrontója, mind a 48 évemmel :) Egy öreg nyomdász, akinek kimaradt az életéből az első Elite, pedig már volt gépem akkoriban. Szeretem a sci-fit és a Pc-s játékokat. Első gépem egy Intel DX4-es Pc volt......

Erről beszélnek a többiek

  • pengelevente

    № #613 @ 2016-09-01 15:51
    Nem vagy bejelentkezve.

    Nagyon jó cikk, itt lesz értelme a legalább QHD telefonnak, pl.: LG G3. Nekem sajna 720-as telefonom van, kipróbáltam de élvezhetetlen lenne azon a felbontáson.

  • SzinTibi

    № #614 @ 2016-09-01 16:36
    Nem vagy bejelentkezve.

    HÚÚÚ! Ez nagyon jó és alapos szösszenet. Személy szerint köszönöm. ;-)

  • alexymus

    № #615 @ 2016-09-01 22:02
    Nem vagy bejelentkezve.

    Szuper leírás! Köszi! Nekem az opentrack rc11-es verziója nem jól kezelte a yaw tengely jobb oldalát. Az rc10 portable-t letöltöttem és azzal tökéletesen ment.

  • Szilas

    № #616 @ 2016-09-03 18:53
    Nem vagy bejelentkezve.

    Hű... ez igen! Köszi a cikket!

Nem vagy bejelentkezve :-(

Csak bejelentkezve tudsz hozzászólni a témához.

Jelentkezzen be, kapitány!