Virtual reality (VR) developers working with the Oculus Rift head-mounted display (HMD) are contending with a busy period of software development kit (SDK) updates at the moment. Back in August 2015 the company released SDK 0.7, which removed support for titles developed with much older versions of the toolset. At the same time, it also announced intentions to continue removing support for older SDKs in future updates. This week the company has launched the latest version, Oculus PC SDK 0.8, bringing with it a host of new features.
The full changelog for 0.8 can be seen below. In the company’s own words, “The Oculus SDK 0.8 release changes SDK from an HMD-based model to a session-based model and adds several new features.” Highlights to the updated support include improve support for Microsoft’s latest operating system, Windows 10, and the addition of a new troubleshooting system, the Oculus Debug Tool. The company also notes that those using an NVIDIA GPU will need to upgrade to the 358.70 driver or later while AMD GPU users should upgrade to the Catalyst 15.10 Beta or later.
This is far from the latest SDK update that VR developers are expecting from Oculus VR this year. Back at its Oculus Connect 2 developer conference last month the company announced plans to launch the first full production version of the SDK, 1.0, in December 2015. It also confirmed that videogames developed with this version of the kit will be able to run on the consumer Oculus Rift when it launches in Q1 2016. Of course, this also suggests that SDK 0.9 will see a release sometime in November.
VRFocus will continue to follow Oculus VR’s work, reporting back with the latest updates from the company.
The following are new features for the Oculus SDK and runtime:
- Improved support for Windows 10.
- Added ovr_GetSessionStatus, which returns whether the headset is present and whether it has VR focus and can render to the headset.
- Added ovr_Detect to OVR_CAPI_Util.h , which enables you to detect the presence of a headset without initializing LibOVR. This can be useful when a game has VR and non-VR modes.
- Added HandStatusFlags to ovrTrackingState, which specifies whether the the Oculus Touch controllers are being tracked. Status includes orientation and position.
- Added SensorSampleTime to ovrLayerEyeFov, which specifies when the render pose was calculated. This is useful for measuring application tracking latency.
- Added ovr_GetTrackingCaps to get the tracking capabilities of the device.
- Usage of ovr_ConfigureTracking is no longer needed unless you want to disable tracking features. By default, ovr_Create enables the full tracking capabilities supported by any given device.
- Added ovrLayerHudMode, which enables the headset user to see information about a layer.
- Added ovrControllerType_None and ovrControllerType_XBox to ovrControllerType.
- The Oculus Debug Tool was added to simplify troubleshooting. For more information see Oculus Debug Tool.
- If you have an NVIDIA GPU, make sure to upgrade to the 358.70 driver or later. To get the driver, go to https://developer.nvidia.com/gameworks-vr-driver-support .
- If you have an AMD GPU, we recommend the Catalyst 15.10 Beta or later. To get the driver, go tohttp://support.amd.com/en-us/kb-articles/Pages/latest-catalyst-windows-beta.aspx .
This release represents a major revision of the API. Changes to the API include:
- Applications no longer need to call ovr_ConfigureTracking. ovr_Create automatically enables the full tracking capabilities supported by any given device.
- Replaced ovr_GetFrameTiming with ovr_GetPredictedDisplayTime.
- Added latencyMarker to ovrTrackingState. When set to ovrTrue, this indicates that it will be used in the rendering loop and will be used to calculate latency.
- To emphasize the session model, renamed ovrHmd to ovrSession and hmd to session.
- ovrLayerType_QuadInWorld and ovrLayerType_QuadHeadLocked were renamed to ovrLayerType_Quad and are now differentiated by the ovrLayerFlag_HeadLocked flag.
- Added ovrMaxLayerCount, which sets the maximum number of layers to 32.
- Removed ovrInit_ServerOptional. If you use this to detect whether the OVRService is available, periodically call ovr_Initialize or poll ovr_Detect instead.
- Removed ovrTrackingCap_Idle from ovrTrackingCaps.
The following are known issues:
- The Oculus service might crash when gathering Diagnostic Logs from the Oculus Config Util. If this happens, the service automatically restarts and the logs will not be lost.