
- '16 szeptember 01, 14:57
- 4 hozzászólás
- 3582 olvasás
- Ti küldtétek
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.
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.
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
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
Á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!
Áttekintés
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.
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é.
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á.
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.
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.
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.
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.
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.
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.
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.
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ő.
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.
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.
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
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.
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
pengelevente
№ #613 @ 2016-09-01 15:51Nem 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:36Nem vagy bejelentkezve.HÚÚÚ! Ez nagyon jó és alapos szösszenet. Személy szerint köszönöm. ;-)
alexymus
№ #615 @ 2016-09-01 22:02Nem 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:53Nem vagy bejelentkezve.Hű... ez igen! Köszi a cikket!