7个VR开发中容易混淆的概念:SteamVR、OpenVR、OpenXR……

2024-01-24 20:58

本文主要是介绍7个VR开发中容易混淆的概念:SteamVR、OpenVR、OpenXR……,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在进行Unity VR应用程序开发过程中,有几个容易混淆的概念, 本文将尝试做一次区分,如果有任何疑问,读者可在文末留言共同讨论。这几个概念包括OpenVR 、OpenVR Desktop、OpenVR XR Plugin、SteamVR、SteamVR Plugin、OpenXR以及OpenXR Plugin,以下:

OpenVR

OpenVR是Valve公司开发的一套包含一系列SDK和API的工具集,旨在从驱动层级为硬件厂商提供软硬件开发支持。硬件设备制造商可以为设备开发OpenVR 驱动程序,以使设备能够运行在SteamVR平台上。

虽然OpenVR是HTC Vive默认使用的驱动程序,但它的开发目的是为了得到更多厂商的支持,例如,开发者也可以为Oculus Rift或Windows MR 设备开发基于OpenVR的软件应用。

OpenVR

需要注意的是,OpenVR虽然也提供了一套开发标准,但是相较于OpenXR,其覆盖范围相对较小,另外,Valve 从SteamVR客户端1.16开始,已经对OpenXR标准进行了全面的支持。

作为Unity开发者来说,并不需要太多关心OpenVR及其SDK,因为这更多的是面向VR硬件平台和游戏引擎开发商来进行使用的。

OpenVR Desktop

Unity需要各VR硬件平台提供与对应底层驱动程序通信的工具包来完成VR应用程序的渲染等工作,OpenVR Desktop则是OpenVR提供给Unity使用的一系列组件,用于访问OpenVR的SDK。该工具包可以通过Package Mananger进行安装,但仅存在于Unity2019.4 LTS 及其以前版本,在Unity 2020中被废弃,转而使用 OpenVR XR Plugin 代替,如下图所示:

OpenVRDesktop
Open VR Desktop

要使用OpenVR Desktop,在将工具包安装完毕以后,需要在Build Settings中开启VR支持并选择OpenVR SDK。在Build Settings中开启VR支持的方式,仅适用于Unity 2019及其以前的版本,而在Unity 2020及其以后的版本中,此方法也将被废弃,转而使用XR Plug-in Management进行管理。

OpenVR XR Plugin

OpenVR XR Plugin 与 OpenVR Desktop 的作用和地位相同,推出的目的是为了配合Unity 2020在XR Plug-in Management中管理VR平台提供的工具包。

​​​​​OpenVR XR Plugin

OpenVR XR Plugin 目前需要手动从本地磁盘进行安装,开发者可访问网址:https://github.com/ValveSoftware/unity-xr-plugin/releases,下载该工具包的.tgz格式文件,然后在Package Manager中选择"Add package from tarball…"命令进行安装。

在PackageManager中安装OpenVR XR Plugin

另外,如果开发者使用SteamVR Plugin 2.7.x 进行VR应用程序开发,则在插件中已经包含了OpenVR XR Plugin工具包,可使用以上方式进行安装而不用从网络重复下载,如下图所示:

SteamVR插件中的OpenVR XR Plugin工具包

安装完毕后,可以在XR Plug-in Manager中启用并进行相关设置,如下图所示:

在XR Plug-in Management中管理OpenVR XR Plugin​​​

SteamVR

SteamVR是Valve基于OpenVR推出的一套VR体验解决方案,以软件客户端形式存在,面向终端用户,故也常被称为SteamVR客户端。

SteamVR客户端

当运行或测试SteamVR平台支持的应用程序时,SteamVR客户端会自动开启,为应用程序提供运行时环境。

除此之外,SteamVR客户端还提供VR控制器的配对、驱动更新、性能分析等功能。初次连接VR设备以后,需要通过SteamVR客户端进行设备校准,即所谓的房型设置。在客户端界面底部,列出了当前已经连接到系统中的设备,包括头显、手柄控制器、基站、其它可跟踪设备如Vive Trakcer等。

SteamVR可以通过Steam客户端进行安装,还可通过设备供应商提供的安装程序进行安装。以HTC VIVE为例,购买后可访问网址:[https://www.vive.com/cn/setup/][1],选择下载VIVE安装程序,该程序将引导用户进行设备连接,完成相应驱动程序和SteamVR的安装,对于初学者来说相对友好。两种渠道安装的SteamVR客户端均能保证VR应用程序的运行,选择其中一种即可,两者亦可同时存在。

对于终端用户,当前支持SteamVR的硬件包括但不仅限于以下设备:

  • Valve Index
  • HTC VIVE/Cosmos
  • Windows Mixed Reality
  • HP Reverb G2

SteamVR客户端作为桥梁,介于OpenVR底层驱动与用户之间工作——SteamVR获取到用户的输入,如控制器按键的按下、头显在空间中移动等,将这些数据信息传递给OpenVR进行处理,OpenVR将处理后的数据通过SteamVR呈现给用户。

SteamVR Plugin

SteamVR Plugin 是Valve公司提供给Unity开发者的开发工具,以.unitypackage文件的形式存在,在使用方面符合一般的Unity插件导入流程,开发者可使用该插件开发面向SteamVR平台的VR应用程序。SteamVR Plugin可由Unity Asset Store和Github下载安装,所不同的是,Asset Store中总是提供最新且稳定的SteamVR插件版本,而在Github中,可以下载该插件的所有过往版本及预览版。

Asset Store中的SteamVR Plugin

SteamVR Plugin 能够与SteamVR客户端进行交互,主要帮助开发者实现三项主要功能:为VR控制器加载呈现相对应的3D模型、处理控制器的输入、根据用户实际手部动作估算骨骼数据并通过这些数据在虚拟世界中呈现相对应的手部姿态。除此之外,SteamVR Plugin还提供了一套便捷的交互系统(Interaction System),帮助开发者快速开发出常见的VR交互功能,该交互系统脱胎于Valve开发的《The Lab》VR体验应用。

OpenXR

随着行业的发展,越来越多的VR/AR设备被推向市场。这对于开发者来说,面临的重要议题之一便是针对不同的VR/AR硬件平台进行应用程序的适配,这将带来一部分额外且不必要的工作量;对于硬件平台厂商来说,新上市的产品面临着内容严重不足、生态急需健全的问题。

OpenXR是一套由Khronos Group发起,联合多家行业头部公司一起制定的开放标准,旨在解决XR平台碎片化的问题,同时简化AR/VR软件的开发。对于开发者来说,基于此标准进行XR应用程序的开发,能够使应用程序覆盖更广泛的硬件平台,同时无需移植或重新编写代码;而对于支持OpenXR的硬件平台厂商来说,能够在产品发布时即可拥有可运行在其上的大量内容。

下图左侧为引入OpenXR标准之前的行业现状——VR/AR应用程序和引擎必须使用每个平台独有的SDK和API,新的设备同样需要特定的驱动程序。而在引入OpenXR标准以后,将统一由OpenXR提供的跨平台高性能的应用程序接口与众多XR硬件平台进行交互,如下图右侧所示。

引入OpenXR标准的前后对比

OpenXR 1.0 标准于2019年公布,各大XR平台开始逐步加入到支持OpenXR标准的行列,包括Oculus Quest/Rift、Windows Mixed Reality、Unity、Unreal Engine、SteamVR等目前主流的VR平台和游戏引擎。这就意味着,开发者将专注于应用程序的开发而不是各平台的交互适配问题。

参与制定OpenXR标准企业或组织(图片来源:https://www.khronos.org/openxr) 

由上图可见,OpenXR集合了行业众多头部公司和组织参与制定标准,覆盖了从VR到AR、从软件到硬件的广阔范围。

OpenXR Plugin

OpenXR Plugin是Unity开发的符合OpenXR标准的工具包,旨在让Unity开发者尽可能高效地将内容部署到更加广泛的XR目标平台上。开发者在Unity 2020中通过Package Manager搜索"openxr"即可找到该工具包并进行安装。

OpenXR Plugin

由于处于版本发布的早期,所以目前通过广泛测试的硬件平台有限,Unity声称目前无法测试或保证所有支持OpenXR的配置都能以最佳状态运行,该工具包也在不断完善中,后续会逐步增加支持的平台。以下是截至当前经过全方位测试并被官方支持的平台。

硬件平台构建目标图形接口渲染模式
Windows Mixed RealityWindowsDX11Single Pass Instanced
HoloLens 2UWPDX11Single Pass Instanced

 由于OpenXR 只支持基于动作的输入(action-based input),所以OpenXR Plugin可以直接使用Unity的Input System处理输入和交互。如果开发者的项目正在使用特定平台的工具包(如MRTK、Oculus ),Unity不建议启用OpenXR,因为许多厂商仍在为OpenXR添加支持。

总结

本文介绍了在VR开发中常见的几个容易混淆的概念,最后为了便于区别比较,我们将这些概念从维护方、面向对象、存在形式这三个维度对比汇总如下:

名称维护方面向对象存在形式
OpenVRValveVR硬件厂制造商以C++形式编写的SDK及API
OpenVR DesktopValveUnity编辑器/Unity开发者Unity 包(.tgz文件),通过Package Manger 安装,在Unity 2020及其以后版本中将被废弃
OpenVR XR PluginValveUnity编辑器/Unity 开发者Unity 包(.tgz文件),通过Package Manger 安装,在XR Plug-in Management中管理
SteamVRValve终端用户软件客户端
SteamVR PluginValveUnity 开发者Unity插件(.unitypackage文件),通过Unity Asset Store下载安装
OpenXRKhronosXR软硬件开发商行业标准
OpenXR PluginUnityUnity编辑器/Unity开发者Unity 包(.tgz文件),通过Package Manger 安装

 更多VR开发学习资料,欢迎关注公众号【XR技术研习社】,点击这里了解我的最新课程《SteamVR 2.x 交互开发指南》

 

 

这篇关于7个VR开发中容易混淆的概念:SteamVR、OpenVR、OpenXR……的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/640976

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

v0.dev快速开发

探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之效率。 何谓v0.dev? v0.dev者,现代化之开发者工具也,旨在简化并加速软件开发之过程。其集多种功能于一体,助开发者高效编写、测试及部署代码。无论汝为前端开发者、后端开发者

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex