Fans of the Rift might still be reeling somewhat from the recent Facebook acquisition news, but that doesn't mean the VR enthusiasts at Oculus have been sitting on the laurels. Today they announced the release of a new version of the software development kit, 0.3.1.
This update, though good to see, isn't the most exciting for the average Rifter, as it's designed with developers in mind – which at this stage of the headset's development, is somewhat understandable. New features include: an adjusted and simplified API for sensor interfaces, distortion tweaks improving the way it's rendered with the Rift now handling it instead of the GPU and sensor prediction has also been improved.
This update also adds official support for the Oculus Rift Devkit 2.0.
Unfortunately for Mac and Linux users, this isn't an update that is available for your particular OS of choice. Oculus explained the reasoning behind this as simply wanting to get the API and other improvements out to the community as fast as possible. However, it's not yet finished and we should expect another update in the next month or two, since a few big features – like DK2 positional tracking – have yet to be implemented.
The full list of changes as per Oculus' release, are as follows:
- Reorganized all HMD and sensor interfaces to be exposed through a simplified C API. The new API makes it easy to use LibOVR from other languages.
- We now support two approaches to rendering distortion: SDK Distortion Rendering and Client Distortion Rendering.
- SDK Distortion Rendering will be the recommended approach going forward as it gives us the most opportunity for future optimizations and benefiting from evolving hardware. In this mode, the application renders stereo views into one or more render targets, and then the Oculus SDK takes care of distortion rendering, frame timing, buffer swap, and GPU synchronization.
- Client Distortion Rendering now uses a mesh for rendering distortion instead of a coefficient-driven pixel shader. The distortion function is encoded into the UVs of the distortion mesh, thereby moving much of the complexity inside the SDK.
- Distortion quality has been significantly improved by modelling the distortion function using spline curves rather than polynomials. The distortion is also tailored to individual users based on profile settings specified in the Oculus Configuration Utility. Pulled “in” and pulled “out” physical settings of DK1 require different distortion for maximum quality.
- Introduced explicit support for frame timing in the SDK, which enables more accurate sensor prediction. Frame timing is tied to Vsync and is supported through either ovrHmd_BeginFrame/ovrHmd_EndFrame or ovrHmd_BeginFrameTiming/ovrHmd_EndFrameTiming function sets depending on the rendering approach.
- Sensor prediction is now based on absolute time that increments continuously through program execution, as compared to delta time relative to now. Absolute time reduces errors based on execution timing variability.
- Added initial support for the Oculus DK2 headset.
- Introduced a new technique called Timewarp to reduce motion-to-photon latency. This technique re-projects the scene to a more recently measured orientation during the distortion rendering phase.
- The OculusWorldDemo sample now features an interactive settings menu brought up by pressing the Tab key. Users can select a menu item by pressing Enter and then modify it with the Up and Down arrow keys.
- Reorganized the OculusRoomTiny sample to more visibly illustrate SDK use through one source file. OculusRoomTiny sample now supports switching between SDK and Client Distortion Rendering approaches by changing the SDK_RENDER define.
KitGuru Says: Good to see development is still pushing ahead with the SDK. This year's going to be an exciting one for fans of the Rift, especially if they can get their hands on the new version.