Difference between revisions of "Developer Resource"
(→App Stores) |
(→App Stores) |
||
Line 23: | Line 23: | ||
*'''[[Steam]]/[[SteamVR]]''' technically does not need to run when launching [[OpenVR]] games, but highly recommended (room setup and config is pulled from there). Also handles overlay menu on the Xbox button, or when running on the Rift, it launches by pressing the select/start button in the Oculus Universal Menu. | *'''[[Steam]]/[[SteamVR]]''' technically does not need to run when launching [[OpenVR]] games, but highly recommended (room setup and config is pulled from there). Also handles overlay menu on the Xbox button, or when running on the Rift, it launches by pressing the select/start button in the Oculus Universal Menu. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Wrappers and Injectors== | ==Wrappers and Injectors== |
Revision as of 03:15, 19 May 2016

Contents
SDKs
SDKs or Software Development Kits are used to build VR games and experiences. A game/experience can either implement OVR or OpenVR or both. This means that the game/experience has access to native functionality in it's corresponding runtime. SDKs do not handle asynchronous timewarp or reprojection, those are handled by the runtime!
- OVR - Made by Oculus VR for the Oculus Rift. Current version (14th May 2016) is 1.3.1 and can access all features of the Oculus Runtime.
- OpenVR - Made by Valve and supports Vive and Rift via the SteamVR Runtime.
Sidenote to SDK's and Unity games: Unity 5.3 currently has optimizations for VR in their native mode. The native mode supports Rift, Gear VR and PSVR, but not SteamVR. A game compiled with Unity 5.3 can use those optimizations with the Oculus SDK but not the OpenVR SDK. The OpenVR SDK has it's own optimizations, which may or may not result in similar performance. However, the upcoming Unity 5.4 will support SteamVR natively and performance should be more or less identical. Please note: this is Unity specific and other engines might have similar or different optimizations for some or all headsets.
Runtimes
Runtimes are
- Oculus Runtime is responsible for asynchronous timewarp and handles device detection, display, etc. It (the runtime service) needs to be running for Oculus Home to launch.
- SteamVR Runtime is responsible for reprojection and supports Rift and Vive.
App Stores
App Stores are distribution platforms for software.
- Oculus Home needs to be running for the Rift to work. By default only supports apps from the Oculus Store (checkbox in the settings of the 2d desktop client to enable other sources). It downloads games and runs them. It also handles the Universal Menu on the Xbox button.
- Steam/SteamVR technically does not need to run when launching OpenVR games, but highly recommended (room setup and config is pulled from there). Also handles overlay menu on the Xbox button, or when running on the Rift, it launches by pressing the select/start button in the Oculus Universal Menu.
Wrappers and Injectors
Oculus Rift games/experiences, or better said games/experiences compiled with the OVR dlls do not render to the HMD directly. They render their images and send them to the runtime. The interface for that are the dlls. Wrappers replace the content of the dlls with functions that are named identically, but redirect the games rendered image to a different runtime. Equally, they provide the game with the rotation and position data of the headset.
- ReVive replaces the content of the dlls with functions that communicate with the SteamVR Runtime. The game thinks it's connected to a Rift, but it is not. The SteamVR runtime is rendering the game and supports reprojection, but not asynchronous timewarp (remember, this is a feature of the Oculus Runtime).
All Oculus games distributed through Oculus Home implement an entitlement check. This means the game is asking Oculus Home if the user is allowed to play it. ReVive does not hack this entitlement check and games need to be downloaded/purchased via Oculus Home. Games need to be started through Home once or the Oculus Service needs to be restarted. Example of the entitlement check failing in Lucky's Tale: Instead of the main menu, ReVive users see a worm on a log showing you it's tongue.
Sidenote: technically one could even write a wrapper that routes OpenVR calls to the Oculus runtime directly, bypassing SteamVR altogether. But since SteamVR can do it already, there is little need for that
- LibOVRWrapper installs dlls into Windows that old Rift games need in order to communicate with the new runtime. It effectively translates old games to the new runtime. [unsure: Do these old games now also use timewarp or do they need to specifically request it via an sdk call?]
- LibOVRWrapper + ReVive allows you to run old Rift games on Vive.
Resources
Oculus Sample Framework and Oculus Sample Framework for Unity 5[1] - Experimental sandbox for VR developers and designers.
3D models
- Yobi3D - 3D model search engine: offers a 3D viewer to see search results in 3D. Also works with Cardboard.