我试图了解Vive的VR平台堆栈,以及它的游戏开发方式。
我正在努力了解openVR,steamVR和Unity在图片中的确切位置。

到目前为止,我的理解是:

openVR - Hardware independent layer providing APIs for peripheral access.
         That is it can provide access to either Oculus or Vive hardware via
         a defined interface.

SteamVR - Provides access to hardware to games developed either in unity or
          unreal.
Unity3D - A game engine to develop games.

如果有人能纠正我,我将不胜感激。
或者,如果我的理解是正确的,那么为什么用unity 3D开发的游戏不能直接通过openVR访问硬件。

最佳答案

OpenVR 是一种API和运行时,它允许从多个供应商访问VR硬件,而无需应用程序具有其所针对的特定硬件知识(ref1), SteamVR 是我们用于用户实际使用的面向客户的名称并安装(有关详细信息,请查看此视频:Using Unity at Valve)

Also Check to see that can you use the Vive with OpenVR without Steam ??

最后,感谢Reddit post,让我们看看所有这些术语:

游戏在您的头戴式显示器(HMD)上的显示方式:

游戏会渲染图像,并将其发送到相应的运行时。然后,运行时将其呈现给HMD:

使用渲染图像:

[OVR/OpenVR] SDK-> [Oculus/SteamVR]运行时-> [Rift/Vive]

SDK :

SDK用于构建游戏。游戏可以实现OVR或OpenVR或同时实现两者。这意味着游戏可以在其相应的运行时中访问其 native 功能。 SDK不处理异步时间扭曲或重新投影,它们由运行时处理!

OVR:,由Oculus为Oculus Rift制作。当前版本(2016年5月14日)是1.3.1,可以访问Oculus运行时的所有功能。

Valve制作的 OpenVR ,通过SteamVR运行时支持Vive和Rift

SDK和Unity游戏的旁注: Unity 5.3当前在其 native 模式下对VR进行了优化。纯模式支持Rift,Gear和PSVR,但不支持SteamVR。使用Unity 5.3编译的游戏可以对Oculus SDK进行优化,而不能对OpenVR SDK进行优化。 OpenVR SDK具有自己的优化,可能会或可能不会导致类似的性能。但是,即将推出的Unity 5.4将原生支持SteamVR,性能应大致相同。请注意:这是特定于Unity的,其他引擎可能对某些或所有头戴式耳机具有类似或不同的优化。

运行时
Oculus Runtime 负责异步时间扭曲并处理设备检测,显示等。OculusHome需要运行它(运行时服务)才能启动

SteamVR运行时负责重新投影并支持Rift和Vive

软件分发平台

Oculus Home 需要运行才能使Rift正常工作。默认情况下,仅支持商店中的应用程序(2d桌面客户端设置中的复选框以启用其他来源)。它下载游戏并运行它们。它还可以处理Xbox按钮上的通用菜单

Steam/SteamVR 从技术上讲在启动OpenVR游戏时不需要运行,但强烈建议(从那里拉出房间的设置和配置)。还可以处理Xbox按钮上的叠加菜单,或者在Rift上运行时,通过按Oculus通用菜单中的选择/启动按钮启动

Finally worth reading

关于unity3d - OpenVR,SteamVR和Unity3D如何协同工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44350671/

10-11 19:05