Unity开发OpenXR | (一)OpenXR是什么?一文带你全面了解OpenXR的相关知识,上车收藏不迷路_unity openxr-程序员宅基地

技术标签: ar  VR行业标准  VR/AR/MR ️  OpenXR 开发  vr  OpenXR  

请添加图片描述

请添加图片描述

OpenXR

OpenXR ” 旨在标准化各种 VR / AR 平台上的设备和应用程序之间的规范。

它由 Khronos Group 制定,Khronos Group 是一个由 VR/AR 相关公司组成的组织,下面会进行详细介绍。
微软、HTC等多家公司都参与了,Valve(SteamVR)也在2021年2月支持。

OpenXR出现的背景

VR 和 AR 最近经历了热潮,随之而来的是大量硬件和软件公司开始在该领域展开努力。虽然种类繁多,但越来越多的设备(每个设备都有自己不兼容的 API)正在增加碎片化。

在进行VR开发的时候,开发者们要根据不同的VR设备厂商来使用不同的SDK进行应用开发。如果没有跨平台的标准,VR应用程序,游戏和引擎必须移植到每个供应商的API。这意味着每个VR设备只能运行已经移植到其SDK的应用程序,结果是高昂的开发成本和令人困惑的客户 限制了市场的增长。

API 碎片化导致应用程序开发人员不得不花费大量时间、金钱和资源与各种硬件集成。即使是大团队也被迫选择他们支持的平台和设备,而对于小团队来说问题更严重。

在硬件方面,公司必须说服应用程序开发商和游戏引擎供应商支持他们的新设备。这就提出了一个“先有鸡还是先有蛋”的问题:软件开发人员通常不愿意支持在市场上占有一席之地的硬件,而要达到如此大的占有率取决于获得与该硬件兼容的高质量内容和开发人员工具.

除了开发人员之外,API 碎片化给消费者带来了问题,他们需要检查自己喜欢的硬件是否与他们希望使用的应用程序兼容,并且不确定今天的软件是否与明天的硬件兼容。

因此,目前的情况看起来像这样,应用程序开发人员利用中间件,但仍然需要做大量工作才能将他们的内容带到多个平台。简而言之,碎片化减缓了 VR/AR 设备的采用,给开发人员带来了不必要的工作,并限制了新的和创新设备获得普及的能力。
在这里插入图片描述

OpenXR 是 Khronos公司 设定的VR行业标准,希望让所有的VR厂商们可以基于此标准进行应用开发等上层逻辑处理。
VRTK是基于最开始的Oculus、Vive等厂商做的一个开发套件,目的是让开发者们可以更方便快捷的进行应用开发(OpenXR行业标准出现之前)。
Khronos公司现在要做的是建立一个OpenXR行业标准,然后再使用新的套件进行通用的应用开发。

标准化有何好处

OpenXR 工作组相信我们可以通过标准化来帮助解决这些问题。标准将允许应用程序开发人员将更多时间花在创造令人惊叹的体验上,而将更少的时间花在让体验在无数硬件组合上发挥作用上。它还将使设备供应商能够在其平台上提供更多内容,并将使其投资面向未来。

OpenXR 标准分为两部分。首先是应用程序接口,应用程序开发人员和中间件提供者写入该接口,用于定义和组合通用的跨平台功能。这使应用程序开发人员能够编写一次可在任何地方运行的代码,专注于对其应用程序进行创新,并且不必为各种不同的设备支持多个接口。

接下来,设备层允许 VR/AR 运行时与各种设备进行交互。如果硬件制造商想要添加对新设备的支持,他们会实现符合设备层规范的代码,并且他们的硬件将立即与为应用层编写的应用程序兼容。这是一个强大的架构,使每个人都能够专注于对他们来说最重要的事情。

OpenXR 标准旨在实现供应商之间丰富多样的实现差异化。来自不同供应商的运行时可能在性能和功能上有所不同,但是让这些运行时实现支持相同的标准接口会为最终用户带来更多的选择。

跨平台的VR标准通过使应用程序能够在任何VR系统上运行一次,以及访问集成在VR系统中供应用程序使用的VR设备,从而消除了行业分割。

在这里插入图片描述


Khronos 百度百科

Khronos Group 团队成立于 2000 年 1 月
由包括 3Dlabs, ATI, Discreet, Evans & Sutherland, Intel, Nvidia, SGI 和 Sun Microsystems 在内的多家国际知名多媒体行业领导者创立
致力于发展开放标准的应用程序接口 API ,以实现在多种平台和终端设备上的富媒体创作、加速和回放。

Khronos官网地址


Khronos相关标准

OpenGL
OpenGL 是行业领域中最为广泛接纳的 2D/3D 图形 API, 其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。OpenGL是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL 帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。

OpenKODE
OpenKODE 是免授权费的、跨平台的为加速富媒体和图形应用程序而联合一组本地应用程序接口 APIs 构成的全面媒体堆栈规范标准。 OpenKODE 是媒体应用移植性 API,致力于持续地提供先进的媒体性能,从而提高本机媒体应用源移植性和降低移动平台不相容性。OpenKODE 1.0 通过联合OpenGL ES 和 OpenVG Khronos APIs 以提供艺术级的矢量 2D 和 3D加速,并形成了新的OpenKODE 核心API,提供抽象的操作系统资源,从而最小化在 Linux、Brew、Symbian、Windows Mobile、WIPI 和以实时操作系统(RTOS)为基础游戏和应用程序移植时的资源变更。 OpenKODE 的后续版本将会增加 OpenSL ES 和 OpenMAX 媒体应用程序接口APIs,用以提供完全整合图形算法处理的音频/视频加速。

OpenGL ES
OpenGL ES 是免授权费的,跨平台的,功能完善的2D和3D图形应用程序接口API,它针对多种嵌入式系统专门设计 - 包括控制台、移动电话、手持设备、家电设备和汽车。它由精心定义的桌面OpenGL子集组成,创造了软件与图形加速间灵活强大的底层交互接口。OpenGL ES 包含浮点运算和定点运算系统描述以及 EGL针对便携设备的本地视窗系统规范。OpenGL ES 1.X 面向功能固定的硬件所设计并提供加速支持、图形质量及性能标准。OpenGL ES 2.X 则提供包括遮盖器技术在内的全可编程3D图形算法。OpenGL ES-SC 专为有高安全性需求的特殊市场精心打造。

OpenML
OpenML 是开源的、免授权费的、跨平台的编程环境,其专为捕捉、传输、处理、显示和同步数字媒体所设计 - 包括2D/3D图形和音频/视频流。OpenML 1.0 定义了专业水准取样级别流同步;用于加速视频处理的OpenGL扩展;MLdc专业显示控制应用程序接口API及ML 针对应用程序和处理硬件间非同步媒体流的架构。

OpenVG
OpenVG 是针对诸如Flash和SVG的矢量图形算法库提供底层硬件加速界面的免授权费、跨平台应用程序接口API。OpenVG 现仍处于发展阶段,其初始目标主要面向需要高质量矢量图形算法加速技术的便携手持设备,用以在小屏幕设备上实现动人心弦的用户界面和文本显示效果,并支持硬件加速以在极低的处理器功率级别下实现流畅的交互性能。

OpenMAX
OpenMAX 是无授权费的,跨平台的应用程序接口API,通过使媒体加速组件能够在开发、集成和编程环节中实现跨多操作系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。OpenMAX API将会与处理器一同提供,以使库和编解码器开发者能够高速有效地利用新器件的完整加速潜能 - 无需担心其底层的硬件结构。

OpenSL ES
OpenSL ES 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。它为嵌入式移动多媒体设备上的本地应用程序开发者提供标准化, 高性能,低响应时间的音频功能实现方法,并实现软/硬件音频性能的直接跨平台部署,降低执行难度,促进高级音频市场的发展。

COLLADA
COLLADA 是面向交互式 3D 应用程序的基于 XML 的数字资产交换方案,使 3D 创作应用程序可以自由地交换数字资产而不损失信息 - 使多种DCC和3D处理软件包可以组合成强大的工具链管道。独特的交互模式提供了广泛全面的视觉编译。COLLADA FX支持使用 OpenGL ES 着色语言创作和封装着色器,以使一流的 3D 创作工具可以有效协作创建 OpenGL / OpenGL ES 应用程序和资产。

OpenGL SC
开放标准的 OpenGL SC 高度安全 Profile 被定义为满足高安全敏感性的特殊市场,如航空工业,军事,医学和汽车业应用程序,包含D0178-B认证。它简化了高度安全认证,保证可靠性,与实时系统需求相符,并便于高度安全应用程序的继承移植。


OpenXR概念

OpenXR 是一种免版税的开放标准,可提供对增强现实 (AR) 和虚拟现实 (VR)(统称为 XR)平台和设备的高性能访问。

“OpenXR 旨在简化 AR/VR 软件开发,使应用程序能够覆盖更广泛的硬件平台,而无需移植或重写其代码,随后允许支持 OpenXR 的平台供应商访问更多应用程序。随着 OpenXR 1.0 规范的发布,AR/VR 开发人员现在可以创建真正的跨平台 XR 体验。”
——布伦特·E·因斯科 (英特尔首席 XR 架构师和 OpenXR 工作组主席)

如果没有跨平台标准,VR 和 AR 应用程序和引擎必须使用每个平台的专有 API。新的输入设备需要定制的驱动程序集成。
在这里插入图片描述

OpenXR 提供跨平台、高性能的直接访问跨多个平台的各种 XR 设备运行时。
OpenXR 使应用程序和引擎(包括 WebXR)能够在任何公开 OpenXR API 的系统上运行。
在这里插入图片描述

OpenXR体系结构
在这里插入图片描述

公开支持 OpenXR 的公司如下:
在这里插入图片描述


行业行情

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关于OpenXR更多信息的官网介绍:https://www.khronos.org/openxr/


总结

  • 总而言之,OpenXR 是VR领域的一个重要里程碑。这个API将允许游戏和其他应用程序在各种硬件平台上轻松运行,而无需专有的SDK。
  • OpenXR 的实现是非常底层的,普通的开发者们无需仔细研究底层,只需要拿到工具类进行开发调用即可。
  • 开发者们可以基于OpenXR上层继续进行便捷的应用开发,但这同样需要一个类似VRTK的开发套件来进行。
  • VR/AR厂商们可以将自己原有的SDK向 OpenXR改造靠拢,以实现一个多平台互通的桥梁。
  • 关于OpenXR上层的开发套件目前还没找到很合适的,如果有好用的开发套件也欢迎评论区提出呀~
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangay1998/article/details/122950164

智能推荐

hive使用适用场景_大数据入门:Hive应用场景-程序员宅基地

文章浏览阅读5.8k次。在大数据的发展当中,大数据技术生态的组件,也在不断地拓展开来,而其中的Hive组件,作为Hadoop的数据仓库工具,可以实现对Hadoop集群当中的大规模数据进行相应的数据处理。今天我们的大数据入门分享,就主要来讲讲,Hive应用场景。关于Hive,首先需要明确的一点就是,Hive并非数据库,Hive所提供的数据存储、查询和分析功能,本质上来说,并非传统数据库所提供的存储、查询、分析功能。Hive..._hive应用场景

zblog采集-织梦全自动采集插件-织梦免费采集插件_zblog 网页采集插件-程序员宅基地

文章浏览阅读496次。Zblog是由Zblog开发团队开发的一款小巧而强大的基于Asp和PHP平台的开源程序,但是插件市场上的Zblog采集插件,没有一款能打的,要么就是没有SEO文章内容处理,要么就是功能单一。很少有适合SEO站长的Zblog采集。人们都知道Zblog采集接口都是对Zblog采集不熟悉的人做的,很多人采取模拟登陆的方法进行发布文章,也有很多人直接操作数据库发布文章,然而这些都或多或少的产生各种问题,发布速度慢、文章内容未经严格过滤,导致安全性问题、不能发Tag、不能自动创建分类等。但是使用Zblog采._zblog 网页采集插件

Flink学习四:提交Flink运行job_flink定时运行job-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏2次。restUI页面提交1.1 添加上传jar包1.2 提交任务job1.3 查看提交的任务2. 命令行提交./flink-1.9.3/bin/flink run -c com.qu.wc.StreamWordCount -p 2 FlinkTutorial-1.0-SNAPSHOT.jar3. 命令行查看正在运行的job./flink-1.9.3/bin/flink list4. 命令行查看所有job./flink-1.9.3/bin/flink list --all._flink定时运行job

STM32-LED闪烁项目总结_嵌入式stm32闪烁led实验总结-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏6次。这个项目是基于STM32的LED闪烁项目,主要目的是让学习者熟悉STM32的基本操作和编程方法。在这个项目中,我们将使用STM32作为控制器,通过对GPIO口的控制实现LED灯的闪烁。这个STM32 LED闪烁的项目是一个非常简单的入门项目,但它可以帮助学习者熟悉STM32的编程方法和GPIO口的使用。在这个项目中,我们通过对GPIO口的控制实现了LED灯的闪烁。LED闪烁是STM32入门课程的基础操作之一,它旨在教学生如何使用STM32开发板控制LED灯的闪烁。_嵌入式stm32闪烁led实验总结

Debezium安装部署和将服务托管到systemctl-程序员宅基地

文章浏览阅读63次。本文介绍了安装和部署Debezium的详细步骤,并演示了如何将Debezium服务托管到systemctl以进行方便的管理。本文将详细介绍如何安装和部署Debezium,并将其服务托管到systemctl。解压缩后,将得到一个名为"debezium"的目录,其中包含Debezium的二进制文件和其他必要的资源。注意替换"ExecStart"中的"/path/to/debezium"为实际的Debezium目录路径。接下来,需要下载Debezium的压缩包,并将其解压到所需的目录。

Android 控制屏幕唤醒常亮或熄灭_android实现拿起手机亮屏-程序员宅基地

文章浏览阅读4.4k次。需求:在诗词曲文项目中,诗词整篇朗读的时候,文章没有读完会因为屏幕熄灭停止朗读。要求:在文章没有朗读完毕之前屏幕常亮,读完以后屏幕常亮关闭;1.权限配置:设置电源管理的权限。

随便推点

目标检测简介-程序员宅基地

文章浏览阅读2.3k次。目标检测简介、评估标准、经典算法_目标检测

记SQL server安装后无法连接127.0.0.1解决方法_sqlserver 127 0 01 无法连接-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏9次。实训时需要安装SQL server2008 R所以我上网上找了一个.exe 的安装包链接:https://pan.baidu.com/s/1_FkhB8XJy3Js_rFADhdtmA提取码:ztki注:解压后1.04G安装时Microsoft需下载.NET,更新安装后会自动安装如下:点击第一个傻瓜式安装,唯一注意的是在修改路径的时候如下不可修改:到安装实例的时候就可以修改啦数据..._sqlserver 127 0 01 无法连接

js 获取对象的所有key值,用来遍历_js 遍历对象的key-程序员宅基地

文章浏览阅读7.4k次。1. Object.keys(item); 获取到了key之后就可以遍历的时候直接使用这个进行遍历所有的key跟valuevar infoItem={ name:'xiaowu', age:'18',}//的出来的keys就是[name,age]var keys=Object.keys(infoItem);2. 通常用于以下实力中 <div *ngFor="let item of keys"> <div>{{item}}.._js 遍历对象的key

粒子群算法(PSO)求解路径规划_粒子群算法路径规划-程序员宅基地

文章浏览阅读2.2w次,点赞51次,收藏310次。粒子群算法求解路径规划路径规划问题描述    给定环境信息,如果该环境内有障碍物,寻求起始点到目标点的最短路径, 并且路径不能与障碍物相交,如图 1.1.1 所示。1.2 粒子群算法求解1.2.1 求解思路    粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解, 通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。    在路径规划中,我们将每一条路径规划为一个粒子,每个粒子群群有 n 个粒 子,即有 n 条路径,同时,每个粒子又有 m 个染色体,即中间过渡点的_粒子群算法路径规划

量化评价:稳健的业绩评价指标_rar 海龟-程序员宅基地

文章浏览阅读353次。所谓稳健的评估指标,是指在评估的过程中数据的轻微变化并不会显著的影响一个统计指标。而不稳健的评估指标则相反,在对交易系统进行回测时,参数值的轻微变化会带来不稳健指标的大幅变化。对于不稳健的评估指标,任何对数据有影响的因素都会对测试结果产生过大的影响,这很容易导致数据过拟合。_rar 海龟

IAP在ARM Cortex-M3微控制器实现原理_value line devices connectivity line devices-程序员宅基地

文章浏览阅读607次,点赞2次,收藏7次。–基于STM32F103ZET6的UART通讯实现一、什么是IAP,为什么要IAPIAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了,如果在设备使用过程中需要进行应用代码的更换、升级等操作的话,则可能需要将设备返回原厂并拆解出来再使用J-Link重新烧录代码,这就增加了很多不必要的麻烦。站在用户的角度来说,就是能让用户自己来更换设备里边的代码程序而厂家这边只需要提供给_value line devices connectivity line devices