from geometry to pixels

Viewing 3D stereo photos in an Oculus Rift

Just for fun I tried out viewing 3D photos in an Oculus Rift. For that I took some pictures with a DSLR and a Loreo 3D lens. The first problem here is that the Rift has a very wide field of view (which is great for virtual worlds and immersion) but the 3D lens has an equivalent of only 44mm focal length which means only 22 degrees vertical FoV / 16 degrees horizontal FoV on a crop sensor DSLR. As a reminder, the Rift has a horizontal FoV of 90 degrees…

So a must have are two wide angle lens adapter to screw in-front of the two filter mounts of the 3D lens. With those I got a equivalent of 18mm focal length which results in a horizontal FoV of 33 degrees and 45 vertically.

I rendered the two photos onto a plane floating in space that I could move around. This way I can figure out which distance is still comfortable to look at and the tracking of the head movements reduce motion sickness (whenever you look at static images or videos with a Rift, try not to move your head!). The reduced FoV of the photos are the reason why I can only use a small portion of the Rifts resolution: Each photo is approximately 360*460 images in size in the final rendering – that’s only 0.33 megapixels for both eyes on a 1 megapixel display!

There are a couple of ways to increase the image quality:

  • Get stereo images with a wider FoV: While I’m not aware of wide angle stereo lenses / cameras, taking two images with a wide angle lens is an option for static scenes. To get 90 degrees horizontally on a crop sensor a 12mm lens is needed, on a 35mm camera (‘full-frame’) 18mm will be enough.
  • Reduce vignetting and distortion in the 3D photos: I didn’t calibrate the 3D lens and undistorted the image. The vignetting can’t be reduced completely as at the edges it gets totally black (only with the wide angle adapters).
  • Increase the resolution of the Rift: That of course will always help ;-)

And here are some sample shots already distorted for the Rift including chromatic aberration correction (view in fullscreen inside a Rift):


An old roman aqueduct.


Statue in-front of the a cathedral.


Statues at a pond.


Freezing time.


Freezing time at a low viewpoint.


Same scene as above positioned a bit higher.


View into the city.



9 thoughts on “Viewing 3D stereo photos in an Oculus Rift
  • nathan O says:

    I can actually see these in 3d with the cross eyed method.
    great way for people not familiar with what stereoscopic 3d looks like

  • will says:

    Cross eye method works for me too. When will there be cameras with a wide enough viewing angle? This is surely a great way to experience photos and could be a great attraction for the rift.

  • Hi Robert,

    Great post! I am just getting my feet wet with Oculus. Would you be willing to share a few pointers on how you accomplished this? Or maybe a github link? I would be using some panorama photos from my iPhone 5.



    • Robert says:

      Thanks. I started by reading the documents and filled the gaps by reading the example code (Tuscany) and build my apps in C++ directly with the SDK. Panoramas also work fine, they are not 3D and feel more like watching the inside of a pained dome but it still is fun given a wide enough FoV (not sure what the iPhone can offer there).

      • Daniel says:

        Have you code links to how you achieved this? I’m trying to do a similar effect in Unity for a project.
        You said you wrote in pure C++; what distance were you from the target object when you took the picture, and how did you account for the 31mm lens inside the rift? I know the Oculus SDK will do the barrel distortion for you, I just want to know what scale the image should be in order to present a naturalistic rendering


        • Robert says:

          I was roughly 2-3 meters away from the closest objects when I took the images.
          The C++ code won’t help if you want to do something similar in Unity. Just create a quad that is located in front of the viewer and texture map it with the two images depending on which eye you are rendering.

          • Daniel says:

            Thanks for the reply. I’ve done the same thing in Unity; two quads at the same location in different layers, then culling the L-R cameras depending on which eye the camera belongs to. I can’t seem to get a good stereoscopic effect though. I’m going to try going down into the C++ SDK and making a small Obj-C application to check if I get similar results as my hunch is that I’m doing something silly in Unity.

  • Michelle says:

    Hi Robert,

    Thanks for this info! I know this is from a few years ago, but how were you able to open your images in the Oculus Rift environment? I am having a hard time figuring out how to view my own stereoscopic images and panos through the Oculus.

    Thanks in advance!

    • Robert says:

      Hi Michelle,

      I wrote my own program for this. There might be programs now which can load stereo images for you in the Rift, however I don’t have a good overview, sorry.


Leave a Reply

Your email address will not be published. Required fields are marked *