anteaterho / Cinder-OculusRift

All aboard the VR train!

Home Page:http://giant.gfycat.com/CooperativeTameArgentinehornedfrog.gif

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cinder-OculusRift

This is yet another Oculus Rift block for Cinder, and a collaboration between Paul Houx & myself. Thanks Paul for all the initial work!

Samples

  • Basic Sample: Features the standard use case scenario, with all the most common functionalities. BasicSample

  • Spherical Stereo: Maps a sample Arnold 360 texture to a sphere, in stereo. Useful for both live-action & pre-rendered CG content. SphericalStereo

  • Instanced Stereo: Similar to the Basic Sample, only it uses instanced stereo rendering as described here.

Usage

First, initialize the rift manager in prepareSettings.

hmd::RiftManager::initialize();

Create an Oculus Rift instance:

hmd::OculusRiftRef	mRift;
...
mRift = hmd::OculusRift::create();

The OculusRift class has two cameras: a convenience host camera controlling the overall head position & orientation, and an active eye camera which is updated by the SDK according to the tracked position & orientation. Their transformations are composed and can be queried via the hmd::OculusRift interface.

In the draw() loop, call bind to render the scene to the rift's framebuffers. Iterate over each eye, drawing your scene as follows:

hmd::ScopedRiftBuffer bind{ mRift };
...
for( auto eye : mRift.getEyes() ) {
		mRift.enableEye( eye );
		drawScene();
}

To avoid judder, make sure you hit 90fps for the CV1 and 75fps for the DK2!

About

All aboard the VR train!

http://giant.gfycat.com/CooperativeTameArgentinehornedfrog.gif

License:Other


Languages

Language:C++ 80.4%Language:C 19.6%