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相关推荐

  1. mysql根据时间取前后几秒,几分钟,几小时,几天,几月,几年

    1.当前时间 select current_timestamp; SELECT NOW(); 2.当前时间前几秒,几分钟,几小时,几天,几月,几年 select SUBDATE(now(),inter ...

  2. 五分钟搭建一个基于BERT的NER模型

    BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...

  3. 10分钟内基于gpu的目标检测

    10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...

  4. 使用 vue filters过滤器直接显示 几分钟前 几小时前 几天前

    这个没什么好多的   直接上代码↓↓↓↓↓↓↓↓↓ filters:{dateFilter(ele){ //ele是之前记录的时间 var lr =new Date(ele); var now =ne ...

  5. 一分钟了解负载均衡的一切

    一分钟了解负载均衡的一切 转自:http://developer.51cto.com/art/201609/517313.htm 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因 ...

  6. Java快速创建大量对象_3分钟 快速理解JVM创建对象的步骤!

    原标题:3分钟 快速理解JVM创建对象的步骤! 我们平时创建一个对象只需要new.然而我们知道对象的创建到底经历了哪些呢?实际上只不过仅仅的3步就完成了.先来看看完整的创建过程,再来一步一步的分析. ...

  7. 何不用python_EXCEL数据太“脏”无从下手?何须用python,ETL一分钟搞定

    我们日常在处理数据的过程中,总是会遇到各种千奇百怪的数据源,不是这里有重复值,就是那里的数据有缺失,这些"脏数据"不得不花费我们大量的时间去进行清理,让人十分苦恼.造成这些&quo ...

  8. datagrid表头与内容不对应_斜线表头竟然如此简单,花上3分钟学习,从此告别低颜值报表...

    [温馨提示]亲爱的朋友,阅读之前请您点击[关注],您的支持将是我最大的动力! 在我们日常工作中,利用Excel制作表格时,经常会碰到以下情况: 表头需要两个或多个标题: 表头内容太多,一行显示影响表格 ...

  9. 如何在1分钟内CSDN收益1000万,走上人生巅峰?!

    事情的起因源于前几日CSDN专栏作者群中有位同志自曝收益:426584.46元(不用数了42万+,未证实是否属实),瞬间刷屏. 那么作为一位普通的技术分享者,是否有机会利用开源项目短时间内赢取白富美. ...

最新文章

  1. html 重置画布坐标系,html5清空画布方法(三种)
  2. 解读ADC采样芯片(EV10AQ190A)的工作模式(单通道模式)
  3. VTK:网格之MatrixMathFilter
  4. java中用数组模拟的酒店管理系统
  5. OSPF的LSA类型~
  6. 如何使antd中table表格不换行
  7. 51 Nod 1161 Partial sums
  8. 基于51单片机+LCD1602显示
  9. 药企如何应对计算机系统验证?浪潮GMP管理保驾护航
  10. 联通ip电视html1连不上,刷华硕固件看联通IPTV和上网两不误
  11. iphone手机显示itunes store无法连接服务器,iPhone无法连接到iTunes Store解决方法大全...
  12. 海外社交媒体常用图片尺寸大全
  13. xml中加html源码,XML与HTML的结合(下)_xml
  14. linux安装gfortran出现错误,Fortran gfortran linux中出现“Segmentation Fault(core dumped)”错误...
  15. 目前流行的计算机配置有哪些,2019最流行电脑配置
  16. 怎样用html做学生成绩表,怎样用excel制作学生成绩单
  17. C语言-1(第一天学C语言)
  18. RT-thread应用讲解——OTA
  19. AI人工智能之科研论文搜索集锦
  20. 新手怎么开网店(网上开店注意事项及流程详解)

热门文章

  1. 计算机网络ip地址划分方法,ip地址怎么划分 ip地址划分方法【图文】
  2. 京东大数据,为什么这么牛?
  3. 机器学习作业之波士顿房价(boston)数据分析与绘图(注释我都写了这么多,我不信你还看不懂?)
  4. 微信二维码线下推广是否有效
  5. linux windows C++开发差异
  6. PDF提取页面方法,如何从PDF文件中提取页面
  7. emlog模板-蓝叶博客模板源码-清新大气模板,适合做博客和资源一体!亲测
  8. 《Android源码设计模式》之策略模式
  9. 汇编bne的问题 汇编中的标号1: 以及bne 1b解释
  10. ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: unde