一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种XR软件开发架构、应用方法和电子设备与流程

2021-11-10 05:03:00 来源:中国专利 TAG:

一种xr软件开发架构、应用方法和电子设备
技术领域
1.本公开实施例涉及软件开发技术领域,更具体地,涉及一种xr软件开发架构、应用方法和电子设备。


背景技术:

2.xr(extended realit,扩展现实)是混合现实(mixed reality,mr)、增强现实(augmented reality,ar)、虚拟现实(virtual reality,vr)的一种总结性术语,能够通过计算机技术和可穿戴设备产生的一个真实与虚拟组合的、可人机交互的环境。
3.openxr api是khronos制定的目的在于简化和兼容vr/ar软件开发的跨平台的标准,unityxr api则是unity引擎提供的一套vr/ar软件开发的跨平台的标准。unityxr与openxr目前存在的问题是,二者都有自己定义的标准,但不能通用,在目前的技术下两者存着各自api互不兼容的情况。对于xr开发者来说,只能选择其中之一,对开发造成了双倍的工作量,同时,对于xr sdk的提供着来说也需要对不同的unityxr和openxr做出两套不同sdk。
4.因此,导致无论是xr软件sdk提供者还是xr行业游戏开发者都需要双倍乃至更多的成本。


技术实现要素:

5.本公开实施例的一个目的是提供一种xr软件开发架构、应用方法和电子设备,能够解决现有xr开发平台中不能同时兼容两种api标准的问题。
6.根据本公开的第一方面,提供了一种xr软件开发架构,所述架构包括:应用软件开发层、第一桥接层、第二桥接层和设备层;所述应用软件开发层用于开发者进行应用软件的开发,所述应用软件开发层通过unity引擎连接至所述第一桥接层;所述第一桥接层用于连接所述软件开发层中的应用软件,以及,分别通过第一插件和第二插件连接至所述第二桥接层;所述第二桥接层用于连接所述设备层中的xr设备。
7.进一步地,所述第一插件为openxr引擎,所述第二插件为unityxr引擎。
8.进一步地,所述第一桥接层包括openxr开发者接口和unityxr开发者接口,所述openxr开发者接口连接所述第一插件,所述unityxr开发者接口连接所述第二插件。
9.进一步地,所述第二桥接层包括软件开发工具包和设备接口,所述软件开发工具包连接所述设备接口,所述设备接口连接所述设备层。
10.进一步地,所述设备接口包括openxr设备接口和unityxr设备接口,所述openxr设备接口和unityxr设备接口连接所述设备层内的对应xr设备,其中,所述openxr设备接口还与所述第一桥接层内的openxr开发者接口连接。
11.进一步地,所述软件开发工具包包括xr管理器、xr设备管理模块、显示模块、音频模块和输入模块,所述输入模块包括输入控制器和手势输入模块;所述xr管理器连接所述xr设备管理模块,所述xr设备管理模块连接所述显示模块、音频模块和输入模块,所述显示
模块、音频模块、输入控制器和手势输入模块连接设备接口。
12.进一步地,所述应用软件开发层还连接至所述第一插件和所述第二插件。
13.进一步地,所述软件开发层中的应用软件包括对应于不同接口标准的应用软件;所述设备层中的xr设备包括对应于不同接口标准的xr设备。
14.根据本公开的第二方面,还提供了一种第一方面所述的一种xr软件开发架构的应用方法,所述方法包括:获取所述应用软件开发层中应用软件的接口标准,根据所述应用软件的接口标准确定所述第一桥接层中的开发者接口;获取所述设备层中的xr设备的接口标准,根据所述xr设备的接口标准确定所述第二桥接层中的设备接口;获取与所述xr设备的接口标准相匹配的软件开发参数,根据所述软件开发参数调整所述软件开发工具包的数据。
15.根据本公开的第三方面,还提供了一种电子设备,包括存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序,以实现根据本公开第二方面所述的方法。
16.根据本公开的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序在被处理器执行时实现根据本公开的第一方面所述的方法。
17.本公开实施例的一个有益效果在于,本实施例提供的一种xr软件开发架构,能够在使用unity引擎的情况下能够兼容到openxr标准,且同一发布sdk能够兼容unityxr标准和openxr标准;另外能够保持unityxr标准和openxr标准独立性,也为未来openxr标准和unityxr标准的统一提供条件。
18.通过以下参照附图对本公开的示例性实施例的详细描述,本公开实施例的其它特征及其优点将会变得清楚。
附图说明
19.被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开实施例的原理。
20.图1是现有技术中采用openxrapi标准的开发架构图;
21.图2是现有技术中采用unityxrapi标准的开发架构图;
22.图3是本实施例提供的一种xr软件开发架构示意图;
23.图4是本实施例提供的一种xr软件开发架构具体结构示意图;
24.图5是本实施例提供的第一桥接层和第二桥阶层的内部结构示意图。
25.图6是本实施例提供的一种xr软件开发架构的应用方法的示意图;
26.图7是本实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
27.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
28.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明
及其应用或使用的任何限制。
29.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
30.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
31.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
32.图1为采用openxrapi标准的开发架构,openxr的优势是实现真正的跨平台支持,其中多个vr程序,例如,vr app1、vr app2、vr app3和vr app4分别通过引擎1、引擎2、引擎3、和引擎4连接到open xr应用接口,在通过多个平台来连接每一平台对应的vr设备。真正的做到一次开发,一次发布,在多平台使用。openxr通过loading机制,可以实现不同运行时的动态枚举和加载,使xr应用变得与手机应用一样,及时安装,随时使用。
33.图2是采用unityxr api标准的开发架构,unity xr是unity专为跨平台开发而打造的一套环境,在帮助用户轻松完成虚拟现实(vr)和混合现实(mr)应用的开发工作。将vr app1、vr app2、vr app3和vr app4接入unity,使用了常见平台的中间件插件来连接vr设备,有助于开发者轻松实现对不同vr平台的支持,能够实现一次编写,随处运行。
34.参考图1和图2可知,图1和图2分别为独立的2个架构,且当前的两种标准互不兼容,导致无论是xr软件sdk(software development kit,软件开发工具包)提供者还是xr行业游戏开发者,需要对不同的unityxr和openxr做出两套对应的程序,造成开发成本的大大增加。
35.基于上述问题,本实施例提供一种xr软件开发架构,参考图3,该架构包括:应用软件开发层101、第一桥接层102、第二桥接层105和设备层106;应用软件开发层101用于开发者进行应用软件的开发,应用软件开发层通过unity引擎连接至第一桥接层102;第一桥接层102用于连接软件开发层中的应用软件,以及,分别通过第一插件103和第二插件104连接至第二桥接层;第二桥接层用于连接所述设备层中的xr设备。
36.软件开发层101中的应用软件包括对应于不同接口标准的应用软件,其中,参考图4,应用软件开发层中包含的应用软件包括vr app1、ar app2、vr app3、ar app4等游戏开发者开发的游戏应用。unity引擎是实时3d互动内容创作和运营平台,借助unity能够给对动画进行渲染等功能,可用于创作、运营和变现任何实时互动的2d和3d内容,支持平台包括手机、平板电脑、pc、游戏主机、增强现实和虚拟现实设备。本实施例中应用软件开发层通过unity引擎连接至第一桥接层,第一桥接层用于兼容unity引擎,以兼容软件开发层中的应用软件。
37.本实施例中,第一插件103为openxr引擎,第二插件104为unityxr引擎,openxr引擎和unityxr引擎均连接至第一桥接层和第二桥接层。
38.对于本实施例中的第一桥接层和第二桥接层的作用在:通过在两种标准的对外接口方向(也就是应用软件层方向)添加第一桥阶层以兼容unity引擎,通过在两种标准的对内接口方向(也就是xr设备方向)添加第二桥阶层,兼容不同api以及不同xr设备平台。
39.进一步地,参考图5,第一桥接层包括openxr开发者接口(openxr开发者api)1021和unityxr开发者接口(unityxr开发者api)1022,参考图4,openxr开发者接口连接第一插
件,形成openxr标准的传输链,unityxr开发者接口连接第二插件,形成unityxr标准的传输链。
40.进一步地,第二桥接层包括软件开发工具包(sdk)115和设备接口116,软件开发工具包连接所述设备接口,设备接口连接设备层。该设备接口包括openxr设备接口和unityxr设备接口,openxr设备接口(openxr设备api)1161和unityxr设备接口(unityxr设备api)1162连接所述设备层内的对应xr设备,以兼容不同的xr设备。参考图4,xr设备可以包括vr device1、vr device2、ar device3、vr device4、vr device5,其分别基于的xr设备运行平台是常见的平台,例如,图4中的平台1、平台2、平台3、平台4、平台5分别可以是steam vr、windows mixed reality、oculus、samsung gear vr、daydream等。
41.其中,设备层中的xr设备包括对应于不同接口标准的xr设备,也就是说上述vr device1、vr device2、ar device3、vr device4、vr device5所采用的接口标准可以是不同的标准,比如,vr device1采用openxr标准,vr device2采用unityxr标准。本实施例通过第二桥接层来实现不同标准平台之间的兼容。
42.其中,openxr设备接口还与第一桥接层内的openxr开发者接口连接,以实现openxr的独立性,也就是说在实现unityxr和openxr兼容的情况下,同时保持unityxr和openxr自身的独立性。
43.在一个可行的例子中,上述软件开发工具包包括xr管理器1051、xr设备管理模块1052、显示模块1053、音频模块1054和输入模块1055,所述输入模块1055包括输入控制器1056和手势输入模块1057;所述xr管理器连接所述xr设备管理模块,所述xr设备管理模块连接所述显示模块、音频模块和输入模块,所述显示模块、音频模块、输入控制器和手势输入模块连接设备接口。
44.xr管理器用于适配与xr设备对应的vr、ar、mr插件,应用程序开发者可以通过上述vr、ar、mr插件的信息来配置相关选项即可使应用软件支持相关厂家xr设备。xr设备管理模块用于管理显示模块、音频模块和输入模块的数据,显示模块、音频模块和输入模块分别与xr设备之间进行图像数据、音频信息以及输入控制数据的传输。其中,输入模块包括输入控制器和手势输入模块,输入控制器的数据可以是xr设备的体验者输入的控制数据,例如向前或向后的方向控制。手势输入模块用于根据xr设备的体验者的手势动作信息进行对应处理。
45.上述应用软件开发层还连接至所述第一插件和所述第二插件,参考图4,也就是说多个应用软件可以直接通过openxr引擎和unityxr引擎连接至第二桥接层,可以在实现unityxr和openxr兼容的情况下,同时保持unityxr和openxr自身的独立性。
46.以上为本实施例提供的一种xr软件开发架构,增加第一桥接层和第二桥接层,能够在使用unity引擎的情况下能够兼容到openxr标准,且同一发布sdk能够兼容unityxr标准和openxr标准;另外能够保持unityxr标准和openxr标准独立性,也为未来openxr标准和unityxr标准的统一提供条件。
47.参考图6,上述一种xr软件开发架构的应用方法,方法包括:
48.s601、获取应用软件开发层中应用软件的接口标准,根据应用软件的接口标准确定第一桥接层中的开发者接口;
49.s602、获取设备层中的xr设备的接口标准,根据xr设备的接口标准确定第二桥接
层中的设备接口;
50.s603、获取与xr设备的接口标准相匹配的软件开发参数,根据软件开发参数调整所述软件开发工具包的数据。上述步骤的先后顺序可以根据实际情况,进行调整,在此不做具体限定。
51.也就是说,根据开发者开发的应用软件的接口标准匹配第一桥接层中的openxr开发者接口或unityxr开发者接口,根据获取设备层中的xr设备的接口标准匹配第二桥接层中的openxr设备接口或unityxr设备接口,在开发者接口和设备接口匹配后,通过修改软件开发工具包sdk的数据来实现应用软件和xr设备之间的适配。
52.例如,以pico neo3设备作为xr设备实现多人对战游戏,对战游戏基于unity引擎开发,使用unity xr platform sdk,可以通过修改第二桥接层中sdk的内容,可以使用openxr和unityxr的对外api,也就是设备接口,实现正常运行兼容。
53.以上方法基于本实施例提供的一种xr软件开发架构,能够在使用unity引擎的情况下能够兼容到openxr标准,且同一发布sdk能够兼容unityxr标准和openxr标准;另外能够保持unityxr标准和openxr标准独立性,也为未来openxr标准和unityxr标准的统一提供条件。
54.图7是根据另一个实施例的电子设备的硬件结构示意图。本实施例提供一种电子设备,包括存储器和处理器,存储器用于存储计算机程序;处理器用于执行所述计算机程序,以实现上述实施例中所述的一种xr软件开发架构的应用方法。技术人员可以根据本公开实施例的方案设计计算机程序。该计算机程序如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
55.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
56.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是,但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
57.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
58.用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、
机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
59.这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
60.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
61.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
62.附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
63.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其
它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献