5分钟了解什么是OpenXR
1 | 为什么需要 OpenXR?
2 | OpenXR 架构和组成
3 | OpenXR 现状和未来
01 为什么需要OpenXR?
VR、AR内容开发的一大痛点是缺乏统一的标准,不像PC或移动端,可以做到一次开发多设备使用。如移动端应用基于Android SDK开发后,就可以运行于绝大部分Android手机。
相比之下,AR/VR行业其标准尚处初步发展阶段,各家设备互不兼容,例如基于Oculus SDK开发的应用只能运行于Oculus的设备。这对内容开发者来说,对接不同的设备就要基于不同的SDK对接移植,且不同的设备交互方式不尽统一,移植工作比较繁琐。
为了专门对接不同的AR/VR设备,Khronos组织开发了一套名为OpenXR的框架,该框架对AR/VR设备的能力进行抽象,对外提供一套统一的开发API,不同的开发引擎对该API进行二次封装,形成开发SDK,提供给AR/VR应用开发者使用。
这样的好处是开发者只需关注引擎本身的使用,无需关注设备间差异,复杂的设备和平台兼容将由底层的通用开发框架(OpenXR)来负责。
OpenXR 发展历程
图1 OpenXR演进
OpenXR推出后便引来多家头部AR/VR设备公司的支持,首批有高通、HTC、Oculus、微软、NVIDIA、Epic、Unity、Valve、AMD、Intel、Magic Leap等。
2017年首批加入OpenXR的公司
2021年底加入OpenXR的公司
值得一提的是,2021年11月高通推出了使用OpenXR的Snapdragon Spaces XR开发平台。作为主流的计算处理平台,高通对OpenXR的适配,极大地促进了OpenXR的推广。
02 OpenXR 架构和组成
OpenXR所处的层次
OpenXR处于各开发引擎之下,各厂商的硬件设备之上,起着承上启下的作用,具体情况如下图所示。
图2 OpenXR所处的层次
OpenXR的组成
OpenXR由以下几个部分组成:
① OpenXR Loader(载入器)
② OpenXR API Layers(接口层)
③ OpenXR Runtimes(运行库)
图3 OpenXR结构图
如上OpenXR结构图所示,第三方应用通过载入器使用OpenXR的功能,载入器负责与接口层、运行库交互。运行库负责与AR/VR设备交互并驱动设备提供的功能。载入器根据功能需要,在第三方应用跟运行库之间调配接口层。
接口层用于验证、跟踪、调试被第三方应用调用的接口,也可以添加和修改接口的功能。当SDK接口(命令)被调用时,数据走向如下图所示。
图4 OpenXR数据走向
03 OpenXR 现状和未来
OpenXR的现状与问题
1 开发进展慢
OpenXR自身进展缓慢,2019年7月OpenXR 1.0规范正式发布,2020年7月公布首批Oculus和微软的设备通过一致性测试,2021年3月SteamVR才正式支持。同时,因为需要对接引擎和设备比较多,兼容性也是个问题。
此外,现在还有部分VR设备厂商没有加入OpenXR,也就没有OpenXR的硬件驱动,因此开发者也是无能为力的。
2 OpenXR的支持,巨头有想法
在苹果尚未入局之前,我们充分的理由猜测苹果未来的AR/VR不会去主动适配OpenXR。索尼虽然在OpenXR支持厂家的名单中,但是到目前为止还没有公布具体的支持计划。
3 基于OpenXR,目前开发者仍需要适配不同厂商
理想很丰满,现实很骨感,虽然大量厂商声称已支持OpenXR,但是还没有统一的官方认证机制。
现阶段不同设备的OpenXR适配工作,仍需要AR/VR开发者完成,不利于不同型号设备的OpenXR快速导入。
OpenXR的未来展望
OpenXR的最终目标是将VR/AR应用和头显之间的通信方式标准化。虽然目前OpenXR还存在一些问题,但未来OpenXR仍然会成为XR中间件标准。
一方面,未来VR硬件会逐步趋向稳定,有利于OpenXR统一行业标准。另一方面,VR应用开发引擎非常愿意看到XR中间件标准化,以利于开发流程的简化,比如Steam平台、Unity、UE4、Godot等开发应用引擎。
值得一提的是微软、Meta、高通等XR行业巨头对OpenXR的加持,加快了XR行业标准的统一,特别是微软收购暴雪已经拉开了顶级巨头们元宇宙之战的帷幕。
5分钟了解什么是OpenXR相关推荐
- mysql根据时间取前后几秒,几分钟,几小时,几天,几月,几年
1.当前时间 select current_timestamp; SELECT NOW(); 2.当前时间前几秒,几分钟,几小时,几天,几月,几年 select SUBDATE(now(),inter ...
- 五分钟搭建一个基于BERT的NER模型
BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...
- 10分钟内基于gpu的目标检测
10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...
- 使用 vue filters过滤器直接显示 几分钟前 几小时前 几天前
这个没什么好多的 直接上代码↓↓↓↓↓↓↓↓↓ filters:{dateFilter(ele){ //ele是之前记录的时间 var lr =new Date(ele); var now =ne ...
- 一分钟了解负载均衡的一切
一分钟了解负载均衡的一切 转自:http://developer.51cto.com/art/201609/517313.htm 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因 ...
- Java快速创建大量对象_3分钟 快速理解JVM创建对象的步骤!
原标题:3分钟 快速理解JVM创建对象的步骤! 我们平时创建一个对象只需要new.然而我们知道对象的创建到底经历了哪些呢?实际上只不过仅仅的3步就完成了.先来看看完整的创建过程,再来一步一步的分析. ...
- 何不用python_EXCEL数据太“脏”无从下手?何须用python,ETL一分钟搞定
我们日常在处理数据的过程中,总是会遇到各种千奇百怪的数据源,不是这里有重复值,就是那里的数据有缺失,这些"脏数据"不得不花费我们大量的时间去进行清理,让人十分苦恼.造成这些&quo ...
- datagrid表头与内容不对应_斜线表头竟然如此简单,花上3分钟学习,从此告别低颜值报表...
[温馨提示]亲爱的朋友,阅读之前请您点击[关注],您的支持将是我最大的动力! 在我们日常工作中,利用Excel制作表格时,经常会碰到以下情况: 表头需要两个或多个标题: 表头内容太多,一行显示影响表格 ...
- 如何在1分钟内CSDN收益1000万,走上人生巅峰?!
事情的起因源于前几日CSDN专栏作者群中有位同志自曝收益:426584.46元(不用数了42万+,未证实是否属实),瞬间刷屏. 那么作为一位普通的技术分享者,是否有机会利用开源项目短时间内赢取白富美. ...
最新文章
- html 重置画布坐标系,html5清空画布方法(三种)
- 解读ADC采样芯片(EV10AQ190A)的工作模式(单通道模式)
- VTK:网格之MatrixMathFilter
- java中用数组模拟的酒店管理系统
- OSPF的LSA类型~
- 如何使antd中table表格不换行
- 51 Nod 1161 Partial sums
- 基于51单片机+LCD1602显示
- 药企如何应对计算机系统验证?浪潮GMP管理保驾护航
- 联通ip电视html1连不上,刷华硕固件看联通IPTV和上网两不误
- iphone手机显示itunes store无法连接服务器,iPhone无法连接到iTunes Store解决方法大全...
- 海外社交媒体常用图片尺寸大全
- xml中加html源码,XML与HTML的结合(下)_xml
- linux安装gfortran出现错误,Fortran gfortran linux中出现“Segmentation Fault(core dumped)”错误...
- 目前流行的计算机配置有哪些,2019最流行电脑配置
- 怎样用html做学生成绩表,怎样用excel制作学生成绩单
- C语言-1(第一天学C语言)
- RT-thread应用讲解——OTA
- AI人工智能之科研论文搜索集锦
- 新手怎么开网店(网上开店注意事项及流程详解)
热门文章
- 计算机网络ip地址划分方法,ip地址怎么划分 ip地址划分方法【图文】
- 京东大数据,为什么这么牛?
- 机器学习作业之波士顿房价(boston)数据分析与绘图(注释我都写了这么多,我不信你还看不懂?)
- 微信二维码线下推广是否有效
- linux windows C++开发差异
- PDF提取页面方法,如何从PDF文件中提取页面
- emlog模板-蓝叶博客模板源码-清新大气模板,适合做博客和资源一体!亲测
- 《Android源码设计模式》之策略模式
- 汇编bne的问题 汇编中的标号1: 以及bne 1b解释
- ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: unde