A few days ago I managed to get my filthy paws on a HD Prototype of the new Oculus Rift. I went along with my friend Philip Day to a secret underground bunker deep in the British wilderness. There we met our contact, a twitchy cyclops fox with a shifty mono-stare. We did the secret handshake, muttered a few secret sniffs and unpacked ‘the device’.
We were there to test Whirligig, Phil’s Oculus Unity player, do some resolution tests, and see how the HD Rift looked with all the new fancy techno-doodars.
The first thing that was tricky was that the output needs to be set to portrait orientation rather than landscape. Our guess was this is probably due to the screen being from a mobile device which hasn’t yet been re-purposed for the rift. It’s easy enough to rotate mirrored displays on the mac, but we couldn’t get windows to rotate mirrored displays independently. Extending the displays worked fine but it meant that specific tests weren’t as straight forward.
We watched a lot of stuff and we also had a Dev Kit 1 set up to compare directly. With the right comparison images, the differences were very apparent. Perhaps the biggest improvement is the brightness followed closely by the colour. The resolution is obviously better but it’s still nowhere near retinal resolution. The gaps between the pixels (screen-door effect) is dramatically reduced, which together with the higher resolution makes the whole image feel much smoother. The tests we did, didn’t really highlight much difference in persistence or latency but I’m also not totally sure what the spec is of the HD Prototype versus the spec of the Dev Kit 2. When you take all these changes into account the overall experience is waaay beyond the experience of the current Dev Kit 1. It’s definitely one of those situations where it’s going to be hard to go back to the previous once you’ve upgraded.
The Whirligig testing went pretty well. We used Vortex for testing do to it being 3D, having a high resolution and high frame-rate. There was a slight issue with distortion, but there is some information from Oculus that suggests the latest Unity support might be the cause of this. This will most likely not be an issue with the release version. There were some issues with the frame-rate that Phil reckons are purely codec issues that might be due to extending the displays. It didn’t play at 60fps for sure, but it seemed like 30fps was fine.
I tested some alternative resolutions and they confirmed that my working for fisheye resolutions was right or at least in the right ball-park.
The resolution for a 180 degree fisheye image that will fit closely to the native resolution of Oculus DK1 is 815 x 815 pixels. This is how this number is derived:
The resolution of Oculus DK1 is: 1280 x 800
This divided by 2 horizontally for both eyes is: 640 x 800
There is (supposedly) 90 degrees horizontal fov for each eye.
640 x 4 gives us 360 degree horizontal resolution for a equirectangular image or circum-resolution: 2560 pixels
This divided by pi gives us the diameter of the fisheye required: 814.873
But when you take into account all the resampling that will be applied to this image, it’s worth giving it a little extra to make sure. Taking into account Imersa standards, it’s probably a good idea to go with 1024 x 1024 for the fisheye masters. This allows a little extra room, wont push the playback software (Whirligig) more than is necessary, and is compliant with resolution standards.
The resolution for a 180 degree fisheye image that will fit closely to the native resolution of Oculus DK2 is 1222 x 1222 pixels. This is worked out using the same process as above:
DK2 res: 1920 x 1080
Per eye: 960 x 1080
circum-resolution: 960 x 4 = 3840
fisheye diameter: 3840 / pi = 1222.310
So once again, to fit this into the Imersa standards and allow for some sampling room 1536 x 1536 is probably a good resolution to use.
This held true with the tests as the 1024 x 1024 version of Vortex was obviously a lower resolution than the HD Rift could display. The edges were soft in a way that could only be attributed to the original image. When comparing to the 1536 x 1536 version, it was obviously higher res, and did not look soft. This suggests at least, that the resolution of the DHD Prototype must have been enough to resolve beyond a 1k fisheye but probably not over 1.5k.
One thing that affected my experience of the HD Prototype came from something unexpected. It seems that the physical size of the screen is smaller than the DK1, which was immediately noticeable as an odd sensation of a frame when looking directly forward in a completely bright scene. The frame disappears if you turn your eyes to look at it, which is also a little off putting. It is caused by the shape of the eye. When your eye is facing forward, it is actually further forward than when it is turned. This means that you can effectively see around the corner in your peripheral vision. But it is only noticeable when the whole image is bright because that is what highlights the edge of the screen. I also lost the ability to see this in busier scenes, perhaps due to less information being processed from the periphery in these situations. The smaller screen size means that they’re maximising the potential resolution but in turn means that any application that has been taking advantage of the outside area will have to redesign for this. VR Player places the timeline bar at the bottom of the interface, which is hidden in DK1, but this becomes visible in the HD Prototype. There is a setting to hide the timeline in VR Player, but other applications may have not considered this.
We couldn’t test out some UDK stuff as the builds force the resolution to 1280 x 800 and appear framed with exaggerated fov videos in the centre of the frame. I guess they’ll figure out the cross compatibility stuff at some point.
So yeah, the HD Prototype is indeed a glorious upgrade from DK1 and I can’t wait to start using it for my personal work. So high five to the cyclops fox… May your shifty eye never rest.