A couple of days ago, version 0.2.3 of the official SDK (requires login) for the crowdfunded Oculus Rift was released with Linux support, and I thought now would be a good time to put together a belated unboxing/first impressions video! Watch or read on for more textual thoughts with a lot less "umm".
To the computer device itself appears as a normal display, with one half of its 1280x800 display allocated to each eye, and a raw USB HID device, making it fairly straightforward to work with (compared to devices with multiple separate screens and interfaces obscured behind drivers).
The eyepiece lenses provide a "pincushioning" effect, increasing pixel density at the FOV centre at the expense of pixel density at the periphery. This is a pretty good move - we see a lot more detail at the centre of our vision, and this approach allows for increasing detail where it matters independently of increasing resolution. Because of this approach, each eye's output needs to have compensating distortion (which is why all those screenshots look like they're fish-eye views). This distortion is well documented and exists as a GLSL fragment shader for easy implementation.
Additional eyepieces of varying height provide flexibility for people with different eyesight/glasses. The depth of the device can also be adjusted to move the eyepieces closer (watch out - you can poke yourself in the eye with the lenses if you're not careful) or farther from your face.
The Rift's FOV is impressive compared to previous head mounted displays (HMDs) I've played around with, boasting > 90 degrees horizontally and > 110 diagonally. This brings more of the image into your peripheral vision, giving you a better sense of immersion and (obviously) letting you see and respond to more visual input at the edges of your vision.
Headtracking is snappy and responsive. The Rift has a combination of 3-axis gyros, accelerometers and magnetometers, though as I understand it, the magnetometers aren't currently being utilised in the Rift SDK (and may or may not be included in the consumer version of the Rift).
The vents around the top and bottom of the Rift let a surprising amount of light in, but it's not enough to cause glare on the lenses and after an hour or two of using it, it's not noticeable.
Another stand-out feature of the Rift is its weight - or lack thereof. It weighs a little under 400 grams, which allows it to rest comfortably on the face without feeling like it's trying to drag your nose and cheeks off, and longer usage won't result in significant neck strain compared to other HMDs I've played with. Not having to fight extra mass/inertia makes rapid head movements much more comfortable.
One thing the Rift is lacking is some nice way of quickly letting you see without having to take the device off and find somewhere to put it down. Some more bulky HMDs have the screens on a flip-up shield, which makes finding a mouse, reading a chat message or acknowledging somebody who's just walked into the room a lot less disruptive. Anybody with a cluttered desk is going to find this shortcoming of the Rift pretty awkward.
The 640x800 per eye screen resolution doesn't provide a lot of clarity for small, detailed objects, with "distant" items often blurring into less distinct blobs (when testing in TF2 on a Mac, I found it difficult to make out the team colours of people on the other side of 2Fort), and whilst it's not bad enough to prevent an enjoyable or interesting experience, it does highlight that modern, consumer grade HMDs are still finding their feet and exploring some of the innate and very specific hurdles associated with putting a picture so close to a person's face (if you're interested in reading up on the sorts of problems involved, Michael Abrash' Ramblings in Valve Time blog is a great place to start).
Of course, this industry-wide state also applies on a smaller scale directly to the Rift. The Oculus Rift dev kit isn't aimed at consumers. It's for developers to evaluate and use for testing implementations in their software so that when the consumer version of the Rift does arrive, developers will have had the opportunity to provide day zero support. Its features and capabilities aren't indicative of what the first consumer ready release versions of the Rift will have under the hood. As the Oculus team has been overcoming problems and making new discoveries, the expected specs of the final device have been fluctuating, but at the moment, we should expect that it will at least sport 1920x1080, and most likely bring some enhancements to head tracking accuracy and screen response times.
So far as APIs/libs go, there are a couple around.
The official SDK comes with a configuration script which installs libudev-dev, libext-dev, mesa-common-dev, freeglut3-dev and libxinerama-dev via apt-get (I already had all of the corresponding packages installed on my Fedora box, so I was able to skip that bit), and also adds a udev rule to give 0666 (read/write for everybody) permissions to the hidraw device that the headtracking output maps as (you can also just do this manually if you're excited about that).
In addition the SDK comes with the "Tuscany" C++ demo found on other platforms, in 32/64bit bins and source. I haven't yet had a thorough delve into the LibOVR source, but I'm assuming it's more or less the same as under Windows and Mac OS.
I haven't had a chance yet to ascertain whether Unity's Linux publishing options include Rift support, but I imagine if they don't, we'll see them soon enough.
Most of the community developed Linux friendly Rift libs are direct ports of the Oculus SDK (generally adopting its licencing as well), and I suspect that these will disappear now that the official SDK supports Linux. OpenHMD, however is a F/OSS (Boost licenced) API for interacting with immersive technologies like head mounted displays and headtracking devices. It currently only supports the Rift, but I suspect that'll grow over time and I imagine it's going to become the library of choice for F/OSS projects.
OpenHMD has already found some noteworthy implementations, with Rift support to Blender's built in game engine being worked on, and Thorworks announced full Windows, Mac and Linux Rift support for MassiveEngine at the end of last month.
Before wrapping up, it's probably also worth noting that I've had a few technical issues. The power adapter the Rift shipped with popped a cap a week or two after it arrived (the Oculus support team were helpful and organised a replacement to be shipped out), and I've started to notice some faint ghosting which looks/behaves similar to "burn-in" (see here for an extreme example - thankfully mine isn't that bad). I'm not that fazed by these problems, but they do highlight again that this is pre-release hardware.
All in all, my first impressions of the Rift are positive, though its impressiveness is really in the potential it represents for the consumer version. I'm working on a few bits and pieces at the moment, hopefully I'll have some exciting native Rift experiments to share soon. I can't wait to see what people in and out of the F/OSS community manage to do with the Rift and its successors!
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Direct Link
Direct Link
The eyepiece lenses provide a "pincushioning" effect, increasing pixel density at the FOV centre at the expense of pixel density at the periphery. This is a pretty good move - we see a lot more detail at the centre of our vision, and this approach allows for increasing detail where it matters independently of increasing resolution. Because of this approach, each eye's output needs to have compensating distortion (which is why all those screenshots look like they're fish-eye views). This distortion is well documented and exists as a GLSL fragment shader for easy implementation.
Additional eyepieces of varying height provide flexibility for people with different eyesight/glasses. The depth of the device can also be adjusted to move the eyepieces closer (watch out - you can poke yourself in the eye with the lenses if you're not careful) or farther from your face.
The Rift's FOV is impressive compared to previous head mounted displays (HMDs) I've played around with, boasting > 90 degrees horizontally and > 110 diagonally. This brings more of the image into your peripheral vision, giving you a better sense of immersion and (obviously) letting you see and respond to more visual input at the edges of your vision.
Headtracking is snappy and responsive. The Rift has a combination of 3-axis gyros, accelerometers and magnetometers, though as I understand it, the magnetometers aren't currently being utilised in the Rift SDK (and may or may not be included in the consumer version of the Rift).
The vents around the top and bottom of the Rift let a surprising amount of light in, but it's not enough to cause glare on the lenses and after an hour or two of using it, it's not noticeable.
Another stand-out feature of the Rift is its weight - or lack thereof. It weighs a little under 400 grams, which allows it to rest comfortably on the face without feeling like it's trying to drag your nose and cheeks off, and longer usage won't result in significant neck strain compared to other HMDs I've played with. Not having to fight extra mass/inertia makes rapid head movements much more comfortable.
One thing the Rift is lacking is some nice way of quickly letting you see without having to take the device off and find somewhere to put it down. Some more bulky HMDs have the screens on a flip-up shield, which makes finding a mouse, reading a chat message or acknowledging somebody who's just walked into the room a lot less disruptive. Anybody with a cluttered desk is going to find this shortcoming of the Rift pretty awkward.
The 640x800 per eye screen resolution doesn't provide a lot of clarity for small, detailed objects, with "distant" items often blurring into less distinct blobs (when testing in TF2 on a Mac, I found it difficult to make out the team colours of people on the other side of 2Fort), and whilst it's not bad enough to prevent an enjoyable or interesting experience, it does highlight that modern, consumer grade HMDs are still finding their feet and exploring some of the innate and very specific hurdles associated with putting a picture so close to a person's face (if you're interested in reading up on the sorts of problems involved, Michael Abrash' Ramblings in Valve Time blog is a great place to start).
Of course, this industry-wide state also applies on a smaller scale directly to the Rift. The Oculus Rift dev kit isn't aimed at consumers. It's for developers to evaluate and use for testing implementations in their software so that when the consumer version of the Rift does arrive, developers will have had the opportunity to provide day zero support. Its features and capabilities aren't indicative of what the first consumer ready release versions of the Rift will have under the hood. As the Oculus team has been overcoming problems and making new discoveries, the expected specs of the final device have been fluctuating, but at the moment, we should expect that it will at least sport 1920x1080, and most likely bring some enhancements to head tracking accuracy and screen response times.
So far as APIs/libs go, there are a couple around.
The official SDK comes with a configuration script which installs libudev-dev, libext-dev, mesa-common-dev, freeglut3-dev and libxinerama-dev via apt-get (I already had all of the corresponding packages installed on my Fedora box, so I was able to skip that bit), and also adds a udev rule to give 0666 (read/write for everybody) permissions to the hidraw device that the headtracking output maps as (you can also just do this manually if you're excited about that).
In addition the SDK comes with the "Tuscany" C++ demo found on other platforms, in 32/64bit bins and source. I haven't yet had a thorough delve into the LibOVR source, but I'm assuming it's more or less the same as under Windows and Mac OS.
I haven't had a chance yet to ascertain whether Unity's Linux publishing options include Rift support, but I imagine if they don't, we'll see them soon enough.
Most of the community developed Linux friendly Rift libs are direct ports of the Oculus SDK (generally adopting its licencing as well), and I suspect that these will disappear now that the official SDK supports Linux. OpenHMD, however is a F/OSS (Boost licenced) API for interacting with immersive technologies like head mounted displays and headtracking devices. It currently only supports the Rift, but I suspect that'll grow over time and I imagine it's going to become the library of choice for F/OSS projects.
OpenHMD has already found some noteworthy implementations, with Rift support to Blender's built in game engine being worked on, and Thorworks announced full Windows, Mac and Linux Rift support for MassiveEngine at the end of last month.
Before wrapping up, it's probably also worth noting that I've had a few technical issues. The power adapter the Rift shipped with popped a cap a week or two after it arrived (the Oculus support team were helpful and organised a replacement to be shipped out), and I've started to notice some faint ghosting which looks/behaves similar to "burn-in" (see here for an extreme example - thankfully mine isn't that bad). I'm not that fazed by these problems, but they do highlight again that this is pre-release hardware.
All in all, my first impressions of the Rift are positive, though its impressiveness is really in the potential it represents for the consumer version. I'm working on a few bits and pieces at the moment, hopefully I'll have some exciting native Rift experiments to share soon. I can't wait to see what people in and out of the F/OSS community manage to do with the Rift and its successors!
Some you may have missed, popular articles from the last month:
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
17 comments
nice review, It really seems to lock you into agame / removes the outside world so to speak, I could not imagine playing something like Amnesia with it on. A logical next step would be a headset for sound and your all plugged in :)
0 Likes
nice review, It really seems to lock you into agame / removes the outside world so to speak, I could not imagine playing something like Amnesia with it on. A logical next step would be a headset for sound and your all plugged in :)Yeah, I wouldn't touch Amnesia with it :D
I can wear that big orange SteelSeries Siberia v2 headset whilst also wearing the Rift, but it becomes a bit of a tangle when you want to take stuff off. It's also possible that headphones could interfere with the (currently unused) magnetometers. It's not something I've looked into at all, but I did spot some people in the #OpenHMD IRC channel discussing it.
I'd imagine that a decent proper surround sound setup would probably be more immersive than headphones.
0 Likes
But how well does the surround sound setup work with you moving your head around?
Also: How does the Oculus Rift feel/work for people with glasses? Do you have a gap somewhere in your vision when you put the Rift one? Does it press the glasses tightly (painfully?) against your face? Do you have to fear your lenses getting scratched?
Also: How does the Oculus Rift feel/work for people with glasses? Do you have a gap somewhere in your vision when you put the Rift one? Does it press the glasses tightly (painfully?) against your face? Do you have to fear your lenses getting scratched?
0 Likes
But how well does the surround sound setup work with you moving your head around?A good point :D
Edit: Though the game knows the orientation of the player - it wouldn't be an insurmountable hurdle.
Also: How does the Oculus Rift feel/work for people with glasses? Do you have a gap somewhere in your vision when you put the Rift one? Does it press the glasses tightly (painfully?) against your face? Do you have to fear your lenses getting scratched?
As I mentioned in the video, there are shorter eyepieces which are made to allow extra space behind glasses. Mim has tried mine with glasses. She said she didn't feel like it squished her head at all, and there was enough space for her lenses.
That's definitely something you need to be conscious of when putting it on though - as I mention in the video, even without glasses, if you're not paying attention, you can poke yourself in the eye with lenses.
0 Likes
nice review, It really seems to lock you into agame / removes the outside world so to speak, I could not imagine playing something like Amnesia with it on. A logical next step would be a headset for sound and your all plugged in :)Yeah, I wouldn't touch Amnesia with it :D
Might do for a nice laxative ^_^
0 Likes
Any chance you could go in to more details about how you got it running properly? (Whether it was just plug and play or if you had to do more than just install the openhmd stack) I can't seem to get mine to do more than duplicate the main screen (and it's doing that badly).
Struggling to find many other sources of running the Rift on Linux.
Struggling to find many other sources of running the Rift on Linux.
0 Likes
Any chance you could go in to more details about how you got it running properly? (Whether it was just plug and play or if you had to do more than just install the openhmd stack) I can't seem to get mine to do more than duplicate the main screen (and it's doing that badly).Plugging it in was enough.
Struggling to find many other sources of running the Rift on Linux.
There are a couple of issues to be aware of. First up, since it's 1920x1080, you're better off mapping the Rift as its own monitor and positioning it over the top of one of your existing screens if you want to also see it (rather than cloning a higher res display and letting the device downsample). That'll give you a clearer picture. You can see from the vid that I've got the Rift mapped to the top left of my rightmost monitor.
Second is that when you plug it in, the hidraw device created in /dev belongs to the root user and isn't accessible. This is why the official SDK comes with that udev rule that gives owner, group and world read and write access (you could also chmod 666 it if you were so inclined). If you don't do this, only the root user is able to read headtracking information.
So far as actually installing stuff goes, I haven't. All the demos and examples I showed off in the video are able to work out which /dev/hidraw* device to read from. Window positioning is something I've been doing manually, but that's not too hard to figure out either if you want to automate it in something.
If you're running stuff using OpenHMD, libovr_nsb and the official SDK, you'll notice that sometimes the headtracking hidraw device becomes inaccessible. Just unplugging and plugging in the USB cable is enough to sort that out.I haven't really had time to chase up why that's happening though.
If you need a hand, drop me a line and if I'm around, I'd be happy to help out (or maybe next time I'll do a code walkthrough of one or two demos and do a step-by-step for setting them up).
0 Likes
It's also possible that headphones could interfere with the (currently unused) magnetometers.Actually the magnetometer is used in the official SDK, not sure for OpenHMD though.
0 Likes
As I mentioned in the video, there are shorter eyepieces which are made to allow extra space behind glasses.Actually the other eyepieces are not intended to be used with glasses, much the contrary in fact, they are intended to be used _without_ glasses for people with poor eyesight (moderately or very nearsighted).
0 Likes
What's "moderately or very nearsighted" in dioptre?
I guess there's no way to get them specific to your eyesight? Because just a generic "nearsighted" eyepiece is pretty much bullshit. Hell, even throw-away bulk contact lenses come in 100 flavours and everyone knows they're still suboptimal.
I guess there's no way to get them specific to your eyesight? Because just a generic "nearsighted" eyepiece is pretty much bullshit. Hell, even throw-away bulk contact lenses come in 100 flavours and everyone knows they're still suboptimal.
0 Likes
No idea what their values are in dioptres, you'd need to test that yourself as many others did.
These lenses are certainly not optimal but it's still a good fit for many people it seems, judging from the feedback on several forums. The ideal would be diopter adjustement like in some other HMDs though, maybe it'll be available for the consumer version. It's only a development kit after all...
I don't think anything is available yet for specific eye conditions, but there are several efforts at using other lenses :
- Unofficial Eye Cup Mods : http://projects.ict.usc.edu/mxr/diy/eye-cups-for-oculus-rift/
- Custom Oculus Rift Eyecups : http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=17070
- Rift custom lens cups experiment : http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=16968
- Increase FOV and eye relief with 2" diameter lenses : http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=17120
These lenses are certainly not optimal but it's still a good fit for many people it seems, judging from the feedback on several forums. The ideal would be diopter adjustement like in some other HMDs though, maybe it'll be available for the consumer version. It's only a development kit after all...
I don't think anything is available yet for specific eye conditions, but there are several efforts at using other lenses :
- Unofficial Eye Cup Mods : http://projects.ict.usc.edu/mxr/diy/eye-cups-for-oculus-rift/
- Custom Oculus Rift Eyecups : http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=17070
- Rift custom lens cups experiment : http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=16968
- Increase FOV and eye relief with 2" diameter lenses : http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=17120
0 Likes
That must be new then. I spotted a bunch of people talking about how they weren't used in the official SDK prior to 0.2.3's release.It's also possible that headphones could interfere with the (currently unused) magnetometers.Actually the magnetometer is used in the official SDK, not sure for OpenHMD though.
Happy to sit corrected there - looks like I'd misread the documentation.As I mentioned in the video, there are shorter eyepieces which are made to allow extra space behind glasses.Actually the other eyepieces are not intended to be used with glasses, much the contrary in fact, they are intended to be used _without_ glasses for people with poor eyesight (moderately or very nearsighted).
At any rate, Mim was able to use the default deep lenses with her glasses, which she tells me are -3 and -3.5 diptres left and right respectively. She's also got significant astigmatism (so I imagine that using the Rift without glasses would not be an option for her).
0 Likes
Linus support from the go is great.
Iwonder if my wife would approve of having something looking like a blind termite sprawled in front of his computer all night. But yes, playing immersive games like Amnesia would be a no go for me.
I hope that they update Google maps streetview with this.
Iwonder if my wife would approve of having something looking like a blind termite sprawled in front of his computer all night. But yes, playing immersive games like Amnesia would be a no go for me.
I hope that they update Google maps streetview with this.
0 Likes
I hope that they update Google maps streetview with this.It seems that you're not the only one.
0 Likes
Nice review man! I wonder what the consumer price for this will be, and more importantly when it'll be out and about for purchase :)
0 Likes
Nice review man! I wonder what the consumer price for this will be, and more importantly when it'll be out and about for purchase :)Neither of those are clear at the moment, but fingers crossed that the consumer price won't be too far from the devkit price and that it'll be soon! :D
0 Likes
Only interested in this if the make the resolution a lot higher. 1920x1080 per eye would be the minimum before I would buy one.
0 Likes
Currently working on Winter's Wake, a first person text adventure thing and its engine Icicle. Also making a little bee themed base builder called Hive Time :)
I do more stuff than could ever fit into a bio.
See more from me