I already approached the subject a while ago, when I got the Oculus Rift SDK compiled for the Raspberry Pi and successfully accessed the head-orientation.
This time, I wanted to render simple 3D geometry for the Rift using the Pi. Is this adorable little machine powerful enough to support the Rift?
As explained in the official Oculus SDK document, rendering for the Oculus Rift implies several things:
Stereo rendering: rendering the 3D scene twice, once for each eye, side by side
Distortion correction: distorting the rendered image in a such a way that viewing it through the Rift lenses makes it look correct
Chromatic aberration correction: this is a bonus step that aims at reducing color fringes introduced by the lenses
Accelerated 3D on the Raspberry Pi means using OpenGL ES, much like any mobile platform these days. The Pi supports OpenGL ES 2.0 which is enough for the shaders which implement the corrections described above. In fact, the SDK comes with “regular” Open GL shaders that work perfectly on Open GL ES 2.0. Smashing!
So after some learning and testing, I finally got “Rift-correct” rendering on the Pi. The scene is extremely simple as it’s just a rotating cube floating in front of the user (the head tracking is there too). And here is how it looks like. Note that I removed the lenses of the Rift in order to film its screen.
Each Friday is PiDay here at Adafruit! Be sure to check out our posts, tutorials and new Raspberry Pi related products. Adafruit has the largest and best selection of Raspberry Pi accessories and all the code & tutorials to get you up and running in no time!