OpenVR、SteamVR 和 Unity3D 如何协同工作?

How does OpenVR, SteamVR and Unity3D work together?

我想了解 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 is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting (ref1), SteamVR is the customer facing name that we use for what users actually use and install (for details check this video: Using Unity at Valve)

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

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

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

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

渲染图像使用 :

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

SDK:

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

处理

总评: 由 Oculus 为 Oculus Rift 制作。当前版本(2016 年 5 月 14 日)为 1.3.1,可以访问 Oculus 运行time.

的所有功能

OpenVR 由 Valve 制作并通过 SteamVR 支持 Vive 和 Rift 运行time

SDK 和 Unity 游戏的旁注:Unity 5.3 目前在其原生模式下针对 VR 进行了优化。本机模式支持 Rift、Gear 和 PSVR,但不支持 SteamVR。使用 Unity 5.3 编译的游戏可以通过 Oculus SDK 使用这些优化,但不能通过 OpenVR SDK 使用。 OpenVR SDK 有它自己的优化,这可能会或可能不会导致类似的性能。然而,即将推出的 Unity 5.4 将原生支持 SteamVR,性能应该或多或少相同。请注意:这是 Unity 特有的,其他引擎可能对某些或所有头显进行类似或不同的优化。

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

SteamVR Runtime 负责重投影并支持 Rift 和 Vive

软件分发平台

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

Steam/SteamVR 在启动 OpenVR 游戏时技术上不需要 运行,但强烈推荐(从那里提取房间设置和配置)。还处理 Xbox 按钮上的叠加菜单,或者当 运行 在 Rift 上使用时,它通过按 Oculus 通用菜单中的 select/start 按钮启动

Finally worth reading.