Jump to content

Developer Resource: Difference between revisions

Copsaur7 (talk | contribs)
RealEditor (talk | contribs)
destub
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{stub}}
{{TOCRIGHT}}
==How to Get Started==
{{see also|How to Get Started in VR Development}}
{{:How to Get Started in VR Development}}


==SDKs==
==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!'''
[[SDKs]] or [[Software Development Kits]] are used to build [[VR apps]]. An [[app]] can either implement [[OVR]] or [[OpenVR]] or both. This means that the app 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]].
*'''[[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]].
Line 17: Line 20:
*'''[[SteamVR Runtime]]''' is responsible for [[reprojection]] and supports [[Rift]] and [[Vive]].
*'''[[SteamVR Runtime]]''' is responsible for [[reprojection]] and supports [[Rift]] and [[Vive]].


If you launch a game on Steam that supports [[Rift]] natively (meaning, it has been compiled against the [[OVR SDK]]), you will get [[asynchronous timewarp]] and it will run exactly like the game from Oculus Home. It won't use the the [[SteamVR Runtime]], it will use the [[Oculus Runtime]]. Only downside is that launching the game is more difficult.  
If you launch a game on Steam that supports [[Rift]] natively (meaning, it has been compiled against the [[Oculus SDK]]), you will get [[asynchronous timewarp]] and it will run exactly like the game from Oculus Home. It won't use the the [[SteamVR Runtime]], it will use the [[Oculus Runtime]]. Only downside is that launching the game is more difficult.  


If you buy a game that is compiled against the [[OpenVR SDK]], then it can run on [[Vive]] and Rift. However, running on Rift uses both runtimes:
If you buy a game that is compiled against the [[OpenVR SDK]], then it can run on [[Vive]] and Rift. However, running on Rift uses both runtimes:
Line 31: Line 34:


*'''[[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.
===Example===
[[Project Cars]] on Steam supports both [[OpenVR]] and [[OVR]]. The Oculus Home version supports only OVR as of today.
#Project Cars on Home + Rift -> will run natively
#Project Cars on Steam + Vive -> will run natively
#Project Cars on Steam + Rift + launched as Rift app -> will run natively
#Project Cars on Home + Vive -> won't run
#Project Cars on Steam + Rift + launched as SteamVR app -> will run via SteamVR


==Wrappers and Injectors==
==Wrappers and Injectors==
[[Oculus Rift]] [[games]]/[[experiences]], or better said games/experiences compiled with the [[OVR]] [[dll]]s 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 [[rotational tracking|rotation]] and [[positional tracking|position]] data of the headset.
[[Oculus Rift]] [[apps]], or better said apps compiled with the [[OVR]] [[dll]]s 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 [[rotational tracking|rotation]] and [[positional tracking|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]]).
*[[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]]).
Line 47: Line 59:
==Resources==
==Resources==
[[Oculus Sample Framework]] and [[Oculus Sample Framework for Unity 5]]<ref>https://developer.oculus.com/blog/introducing-the-oculus-sample-framework-for-unity-5/</ref> - Experimental sandbox for VR developers and designers.
[[Oculus Sample Framework]] and [[Oculus Sample Framework for Unity 5]]<ref>https://developer.oculus.com/blog/introducing-the-oculus-sample-framework-for-unity-5/</ref> - Experimental sandbox for VR developers and designers.
{{see also|Resources Directory}}
{{:Resources Directory}}


==3D models==
==3D models==