This project comes from Bitoniau via Hack a Day.

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.