ShadowKat Studios
Blog
Projects
About

Elite: Dangerous VR with a Google Cardboard clone

I recently ended up with a Google Cardboard clone - namely, a Samsung GearVR headset. I’m not sure whether the electronics inside are broken or just too snobby to interact with my trusty Moto G3, but either way, it functions like a plain Google Cardboard clone to me. So anyway, as Minetest wouldn’t run happily in side-by-side 3D mode on my phone, I set my sights on heavier VR stuff - namely Elite: Dangerous, the most solid VR game I’ve seen.

Of course, my phone doesn’t run Elite: Dangerous. It hardly runs Minetest, it’s not built for 3D, nor does it have an x86 processor, so we’re going to need to stream it from my desktop.

Streaming

This part is easy enough. Recently, Valve published the Steam Link app, which is what I ended up using, though Moonlight is another, free-as-in-freedom option. Also, for the sake of image clarity, I’m borrowing a Moto G4, because it has a 1080p display over my G3’s 720p display.

Before I get to my desktop, here’s some background: I’ve never bought a computer display. I’ve managed to get some half-decent ones for free - two 48cm 1440x900 monitors and a 56cm 1680x1050 monitor. They’re nothing fancy, but when you do most of your work in a 9px monospaced font that’s a lot of text, and with my setup it’s quite nice. Also, 16:10 is better than 16:9. That said, I don’t own a 1080p display, which can cause issues.

One instance of it causing issues is with Elite: Dangerous.
It refuses to run at any resolution above your monitor’s native resolution. I ended up compromising for 1680x945, but you can probably do better if you’re not as cheap as me.

Elite: Dangerous settings.

After fixing the resolution I set it to use side-by-side rendering and fired it up. It worked nicely streamed to the phone, but perhaps predictably, no motion tracking, because there’s no magic going on here. So…

Motion tracking

There’s a couple of routes you can take for this: infra-red tracking with IR LEDs on the headset, marker tracking like ArUco, or motion tracking using the sensors on the phone.

Marker tracking with OpenTrack

I didn’t have any LEDs to play with so I initially tried marker tracking. I grabbed a copy of opentrack, taped the example marker (below) to the front of my phone bracket, and got to using my $5 webcam to provide input for looking around in E:D.

Example ArUco marker

While it worked well enough, the tracking was … imperfect. Due to the curve of the front of my headset, it ended up working diagonally, and it was losing track of the marker somewhat regularly.

It’s worth noting that I previously used said webcam to do face tracking with FaceTrackNoIR before I got the headset, and that worked passably, though it’s not as comfortable as actual VR. Probably needs more tweaking.

Motion tracking with OpenTrack and HeadTracker

I ended up having a good bit of success with a head tracker, using the sensors in the phone. I forwarded that to OpenTrack on my desktop and that talked to Elite: Dangerous and it ended up working pretty well.

opentrack for forwarding

Downsides

This setup isn’t perfect.

It’s a pretty good setup as it turns out. Not as good as it could be, but it’s a pretty good setup for free.

By Izaya
2018/07/20 21:57 +1100

Tags: tech hardware software elite games vr space

© ShadowKat Studios
The software used to generate this page is licensed under the Mozilla Public License version 2 and can be found here