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

智能推荐

怎么用python爬小说_Python3 爬虫 requests+BeautifulSoup4(BS4) 爬取小说网站数据-程序员宅基地

文章浏览阅读458次。刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。前提准备安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程爬虫思路刚开始写爬虫的小白都有一个疑问,进行到什么时候爬虫还会结束呢?答案是:爬虫是在模拟真人在操作,所以当页面中的next链接不存在的时候,就是爬虫结束的时候。1.用一个queue来..._期末作业爬虫仿图书网站bs4

Mysql下载安装配置_my.ini下载-程序员宅基地

文章浏览阅读677次。1、下载Mysql安装包2、Mysql配置文件3、Mysql配置环境变量4、Mysql启动前设置5、JDK环境变量配置_my.ini下载

伦理困境:人工智能浪潮与“AI威胁论”之争-程序员宅基地

文章浏览阅读2.8k次。近年来,人工智能领域得到了极大的重视与发展,扎克伯格在直播时说,“我对AI的发展特别乐观,那些反对AI的人,总是担心世界末日的到来,这非常不利于技术的推动。但技术的推动是为了让世界运转得更高效的,帮助人们的生活变得更美好的。”但与此同时,这也引发了社会对于AI与伦理问题的热议。被誉为“冒险家”的马斯克反复强调,“我们需要思考,什么样的监管制度才能约束AI可能给我们人类造成的伤害。”...

张飞硬件设计与开发视频-程序员宅基地

文章浏览阅读4.3k次。1~20部,30,要的留下联系方式转载于:https://www.cnblogs.com/Lieyuanbingshi/p/11268073.html_硬件设计与开发第二部

java编程题花园修路,java考试可柳能性较高的编程题.doc-程序员宅基地

文章浏览阅读98次。java考试可柳能性较高的编程题PAGEPAGE 162、编写程序将用户输入的一个0~100之间的分数,将其转化成1~5的5分计方法。90~100: 580~90: 470~80: 360~70: 2其他: 1import java.util.Scanner;public class ScoreClass {public static void main(String[] args) {Sca..._实现将用户输入一个0~100之间的分数,将其转化成1~5的5分计方法

【FPGA】Xilinx vivado生成.dcp文件的方法_vivado dcp文件-程序员宅基地

文章浏览阅读1k次,点赞7次,收藏13次。首先,需要新建工程,工程顶层文件就是生成后dcp文件的名称,然后在vivado-Tool-setting-project-setting-synthesis路径下,在More options中输入-mode out_of_context(综合时不产生IO buffer),最后对源代码跑综合,综合成功后,可以在工程文件夹中的.runs - .synth_1文件夹中找到生成的dcp文件。DCP文件是vivado软件生成的网表文件,主要起到加密的作用,在不需要提供源代码的情况下运行工程。_vivado dcp文件

随便推点

时光相册云函数打卡_时光相册 csdn-程序员宅基地

文章浏览阅读1.6k次。找到加密的密码找到时光相册官网点击登录打开网页的检查模式保存下手机号和密码 下个步骤会需要布置云函数例如阿里云函数打开函数计算 选择服务及函数创建函数名字随意配置128mb 超时30s即可如果不需要server酱提示 把代码倒数第三行的post请求这一行删除以下{手机号},{密码},{自己的server地址},均直接替换不需要保留{}括号import requestsimport jsonimport timedef start(): header = { _时光相册 csdn

VideoCapture读取不到视频,但cvCreateFileCapture可以,什么情况?_cvcreatefilecapture 与videocapture-程序员宅基地

文章浏览阅读6.5k次。代码很简单: // Test_Video.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "cv.h"#include <opencv2\opencv.hpp>using namespace cv;int _tmain(int argc, _TCHAR* argv[]){// CvCapture *ca..._cvcreatefilecapture 与videocapture

NGUI动态加载图片创建Texture_ngui 动态新建texture-程序员宅基地

文章浏览阅读4.8k次。using UnityEngine;using System.Collections;public class CreateTexture : MonoBehaviour { // Use this for initialization void Start () { UITexture uiTexture = NGUITools.AddWidget(gameObj_ngui 动态新建texture

MyBatis mapper.xml中SQL处理小于号与大于号_idea mapper.xml小于大于-程序员宅基地

文章浏览阅读1.9k次。这种问题在xml处理sql的程序中经常需要我们来进行特殊处理。 其实很简单,我们只需作如下替换即可避免上述的错误:<<=>>=&'"<<=>>=&'"例如常见的时间比较:错误写法 正确写法转:https://blog.csdn.net/zl18..._idea mapper.xml小于大于

GMP原理与调度_gmp 的整个过程,m 发生系统调用了 g 和 p 会怎么样,m 系统调用结束以后会怎么样,-程序员宅基地

文章浏览阅读133次。GMP是Go语言运行时(runtime)层面的实现,是go语言自己实现的一套调度系统,区别于操作系统调度OS线程。_gmp 的整个过程,m 发生系统调用了 g 和 p 会怎么样,m 系统调用结束以后会怎么样,

【原创】浅谈SmartFlash与Delphi交互研究_tsfflashplayer delphi10-程序员宅基地

文章浏览阅读285次。一直以为,做桌面程序,和Flash沾边关系不大。直到客户要求想用Flash WebGIS替代传统的OCX(VC++)的,才匆匆去研究Flash一番。1、SmartFlash主动与delphi交互是通过OnHandleFSCommand(ASender: TObject; const command, args: WideString)事件交互,比较简单。简单的示例:procedure TForm1_tsfflashplayer delphi10

推荐文章

热门文章

相关标签