CN109298852A - 简化虚拟现实应用程序开发的方法及可读存储介质 - Google Patents

简化虚拟现实应用程序开发的方法及可读存储介质 Download PDF

Info

Publication number
CN109298852A
CN109298852A CN201810969290.9A CN201810969290A CN109298852A CN 109298852 A CN109298852 A CN 109298852A CN 201810969290 A CN201810969290 A CN 201810969290A CN 109298852 A CN109298852 A CN 109298852A
Authority
CN
China
Prior art keywords
sdk
virtual reality
class
general
reality applications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810969290.9A
Other languages
English (en)
Other versions
CN109298852B (zh
Inventor
刘良国
张佳宁
张道宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Lyrobotix Co Ltd
Original Assignee
Beijing Lyrobotix Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Lyrobotix Co Ltd filed Critical Beijing Lyrobotix Co Ltd
Priority to CN201810969290.9A priority Critical patent/CN109298852B/zh
Publication of CN109298852A publication Critical patent/CN109298852A/zh
Application granted granted Critical
Publication of CN109298852B publication Critical patent/CN109298852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality

Abstract

本发明公开了一种简化虚拟现实应用程序开发的方法,包括如下步骤:设置通用SDK,该通用SDK中包括与虚拟现实设备厂商提供的SDK相对应的实现类;当开发虚拟现实应用程序时,调用通用SDK中的抽象类,读取通用SDK中的配置文件,使实现类实现抽象类中定义的抽象方法。本发明通过设置通用SDK,为虚拟现实应用程序的开发者提供了很大便利,使他们不需要自己去重复开发各个实现类,简化了开发者的开发步骤。

Description

简化虚拟现实应用程序开发的方法及可读存储介质
技术领域
本发明涉及一种简化虚拟现实应用程序开发的方法,同时也涉及相应的计算机可读介质,属于虚拟现实技术领域。
背景技术
虚拟现实(Virtual Reality,简称为VR)是指以计算机技术为核心,利用高科技手段生成的虚拟环境。用户借助特殊的输入/输出设备,通过视觉、听觉和触觉等获得与真实世界相同的感受。目前,市面上的虚拟现实设备厂商有很多,例如美国谷歌公司、韩国三星公司、中国的小米公司、腾讯公司等。这些厂商为了扩大市场份额,都希望虚拟现实应用程序的开发者能利用其提供的SDK(Software Development Kit,软件开发工具包)快速开发出虚拟现实应用。
典型的SDK包括帮助程序员开发用于软件包、软件框架、计算机系统、操作系统或类似开发平台的应用程序的许多工具、库、文档和样本代码。API定义了应该由程序遵循以与另一程序通信的一组规则。所述规则规定了应如何按顺序为两个应用程序定义例程、数据结构等以使彼此通信。API是允许软件程序彼此交互的接口,而SDK是可用于开发针对特定平台的软件应用程序的一组工具。在一些示例中,SDK可以包括API。
目前,业界流行将一些厂商发布的SDK开源托管在Gi thub等网站上,以实现开发包共享。但是,虚拟现实应用程序的开发者在开发过程中,需要针对各个虚拟现实设备厂商的SDK分别开展相应的适配工作,由此产生巨大的工作量,造成人力资源的极大浪费。这些开发者迫切希望在开发虚拟现实应用程序的过程中,更多考虑程序本身的设计内容,而不需要浪费精力考虑不同厂商的SDK适配问题。另外,对于用户的一些比较个性化的定制需求,或者某些平台优秀功能的移植,开发者同样希望根据开发文档直接调用相关接口即可实现相应功能。
发明内容
针对现有技术的不足,本发明所要解决的技术问题在于提供一种简化虚拟现实应用程序开发的方法。
本发明还提供一种计算机可读存储介质和一种计算机设备,用于实现上述简化虚拟现实应用程序开发的方法。
为实现上述发明目的,本发明采用下述的技术方案:
根据本发明实施例的第一方面,提供一种简化虚拟现实应用程序开发的方法,包括如下步骤:
设置通用SDK,所述通用SDK中包括与虚拟现实设备厂商提供的SDK相对应的实现类;
当开发虚拟现实应用程序时,调用所述通用SDK中的抽象类,读取所述通用SDK中的配置文件,使所述实现类实现所述抽象类中定义的抽象方法。
其中较优地,所述通用SDK设置在预定的公众平台上供自由下载。
其中较优地,所述抽象类具有内部封装的接口,供虚拟现实应用程序的开发者在开发过程中调用。
其中较优地,所述实现类包括但不限于cardboard-impl、gear-impl、mi-impl、nibiru-impl。
其中较优地,所述通用SDK包括但不限于Unity SDK、UE4SDK、Android SDK。
其中较优地,所述通用SDK还包括自定义模块,所述自定义模块中包括自定义核心功能、常用模块功能以及定制化的功能API。
其中较优地,所述自定义模块从其他应用后台获取虚拟现实设备的硬件数据,提供给所述自定义核心功能、常用模块功能以及定制化的功能API,辅助完成相应功能。
其中较优地,所述自定义模块通过USB接口直接读取或者通过Android接口定义语言的方式,从其他应用后台获取所述硬件数据。
根据本发明实施例的第二方面,提供一种计算机可读存储介质,存储有包括上述通用SDK在内的计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述方法的步骤。
根据本发明实施例的第三方面,提供一种计算机设备,包括存储器和处理器,所述存储器存储有包括上述通用SDK在内的计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述方法的步骤。
与现有技术相比较,本发明通过设置通用SDK,使虚拟现实应用程序的开发者不需要自己去重复开发各个实现类,简化了开发者的开发步骤,为虚拟现实应用程序的开发推广提供了很大便利。
附图说明
图1为本发明所提供的虚拟现实设备功能扩展方法的实施例1的流程图;
图2为本发明所提供的虚拟现实设备功能扩展方法的实施例2的流程图;
图3为本发明所提供的虚拟现实设备功能扩展方法的实施过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。
针对现有技术的迫切需求,本发明首先提供一种通用SDK。该通用SDK作为一个可下载的计算机软件,放在预定的公众平台,例如Github等代码托管平台、厂商官网、行业论坛、APP等,供虚拟现实应用程序的开发者自由下载。
在图1所示的实施例1中,首先在通用SDK中定义至少一个抽象类(abs)。该抽象类具有内部封装的接口,供虚拟现实应用程序的开发者在开发过程中调用,实现形式参数的传递。
接下来,在通用SDK中设置多个实现类。这些实现类分别对应各个虚拟现实设备厂商所提供的SDK中的实现类,例如在图3所示的实施例中,包括但不限于cardboard-impl、gear-impl、mi-impl、nibiru-impl等。这些实现类可以根据实际需要进行扩展和聚合,就像现有的安卓应用市场那样。
如图1所示,这些实现类继承抽象类(abs),实现抽象类(abs)中定义的抽象方法,实现与各个虚拟现实设备厂商的SDK的数据接口。虚拟现实应用程序的开发者在开发VR应用,例如VR游戏时,如果希望开发的VR游戏可适配于不同虚拟现实设备厂商的设备,可以直接调用该通用SDK,读取通用SDK里面的配置文件,找到针对不同虚拟现实设备厂商的设备的相应实现类,例如对应于Google公司的头显cardboard的cardboard-impl实现类,对应于三星公司的头显gear的gear-impl实现类,对应于小米公司的头显Mi VR的mi-impl实现类等(具体参见图3所示),开发者根据所开发的应用欲适配的虚拟现实设备厂商的设备类型,调取这些实现类,实例化对应的实例,即可使开发的VR游戏适配于不同虚拟现实设备厂商的设备。
在本发明的一个实施例中,可以在通用SDK中先定义至少两个封装接口,例如登录接口和支付接口等。然后,设置插件管理类对各个实现类(xxx-impl)进行管理。为了方便SDK实现层的调用,可以对每个实现类定义一个单例的插件包装类;接下来定义一个事件监听器,用于在SDK抽象层和SDK实现层之间传递数据。在该事件监听器中,可以定义两个接口:一个是onResult,用于接收SDK实现层传递的状态信息,例如SDK初始化成功、SDK初始化失败等信息;另一个是onLoginResult。在登录成功之后,SDK实现层可以调用该接口,将封装好的登录结果(LoginResult)返回给SDK抽象层。最后,将上述的插件包装类、插件管理类、事件监听器等整合到一起,定义一个总的单例类作为通用SDK的抽象类(abs)。
上述通用SDK可以在现有的各种虚拟现实应用开发环境中实现,例如目前流行的Unity SDK、UE4SDK、Android SDK等。在这些开发环境中的实例化过程是本领域技术人员普遍掌握的常规技术手段,在此就不赘述了。
在图2所示的实施例2中,通用SDK还可以包括一种自定义模块。在该自定义模块中,包括自定义核心功能以及常用模块功能以及一些定制化的功能API。其中,自定义核心功能包括定位模块、图形处理模块等,首先定义自定义功能管理类,该类中聚合了各个子功能,例如定位功能实现的类、图像处理相关的类等。图像处理模块包括但不限于白平衡、畸变矫正、增加锐度处理等。常用模块功能包括虚拟现实应用中常用的功能,例如登录、注册、支付、统计、日志、应用升级等。
对于定制化的功能API,以插件的形式提供,可以实现即插即用。同时,在自定义模块中可以对市场上普及率比较高、用户口碑好的厂商SDK进行封装,供开发者直接调用。
上述自定义模块可以根据实际情况,通过USB接口直接读取或者通过Android接口定义语言(aidl)的方式,从其他应用后台获取硬件数据,辅助完成相应功能。例如,可以外接一个三维空间定位系统,从该三维空间定位系统中获取IMU数据和六自由度空间数据,将这些数据配合自定义模块,提供定位数据给自定义核心功能、常用模块功能以及定制化的功能API。
自定义模块一方面可以将以上功能直接提供给虚拟现实设备厂商,例如cardboard、gear、小米等;另一方面也可以将以上功能向虚拟现实应用程序的开发者提供。对于云端或者PC应用,该自定义模块和远端设备(PC/云端)通过套接字(socket)通信方式实现数据交互。例如,将IMU数据传递给PC,经过PC的GPU处理后的数据再传回Android客户端,在Android客户端直接显示,从而可以满足串流需求等。
与现有技术相比较,本发明通过设置通用SDK或者自定义模块,使虚拟现实应用程序的开发者不需要自己去重复开发各个实现类,简化了开发者的开发步骤,为虚拟现实应用程序的开发推广提供了很大便利。
基于上述简化虚拟现实应用程序开发的方法,本发明还提供一种计算机可读存储介质和一种计算机设备。在一个实施例中,本发明的计算机可读存储介质,存储有包括上述通用SDK在内的计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上所述简化虚拟现实应用程序开发的方法步骤。在另一个实施例中,本发明的计算机设备,包括存储器和处理器,所述存储器存储有包括上述通用SDK在内的计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上所述简化虚拟现实应用程序开发的方法步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一个非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM、动态RAM、同步DRAM、双数据率SDRAM、增强型SDRAM、同步链路DRAM、存储器总线(Rambus)直接RAM、直接存储器总线动态RAM、以及存储器总线动态RAM等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上面对本发明所提供的简化虚拟现实应用程序开发的方法及可读存储介质进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

Claims (10)

1.一种简化虚拟现实应用程序开发的方法,其特征在于包括如下步骤:
设置通用SDK,所述通用SDK中包括与虚拟现实设备厂商提供的SDK相对应的实现类;
当开发虚拟现实应用程序时,调用所述通用SDK中的抽象类,读取所述通用SDK中的配置文件,使所述实现类实现所述抽象类中定义的抽象方法。
2.如权利要求1所述的方法,其特征在于:
所述通用SDK设置在预定的公众平台上供自由下载。
3.如权利要求1所述的方法,其特征在于:
所述抽象类具有内部封装的接口,供虚拟现实应用程序的开发者在开发过程中调用。
4.如权利要求1所述的方法,其特征在于:
所述实现类包括但不限于cardboard-impl、gear-impl、mi-impl、nibiru-impl。
5.如权利要求1所述的方法,其特征在于:
所述通用SDK包括但不限于Unity SDK、UE4SDK、Android SDK。
6.如权利要求1所述的方法,其特征在于:
所述通用SDK还包括自定义模块,所述自定义模块中包括自定义核心功能、常用模块功能以及定制化的功能API。
7.如权利要求6所述的方法,其特征在于:
所述自定义模块从其他应用后台获取虚拟现实设备的硬件数据,提供给所述自定义核心功能、常用模块功能以及定制化的功能API,辅助完成相应功能。
8.如权利要求7所述的方法,其特征在于:
所述自定义模块通过USB接口直接读取或者通过Android接口定义语言的方式,从其他应用后台获取所述硬件数据。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8中任意一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任意一项所述方法的步骤。
CN201810969290.9A 2018-08-23 2018-08-23 简化虚拟现实应用程序开发的方法及可读存储介质 Active CN109298852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810969290.9A CN109298852B (zh) 2018-08-23 2018-08-23 简化虚拟现实应用程序开发的方法及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810969290.9A CN109298852B (zh) 2018-08-23 2018-08-23 简化虚拟现实应用程序开发的方法及可读存储介质

Publications (2)

Publication Number Publication Date
CN109298852A true CN109298852A (zh) 2019-02-01
CN109298852B CN109298852B (zh) 2022-03-04

Family

ID=65165633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810969290.9A Active CN109298852B (zh) 2018-08-23 2018-08-23 简化虚拟现实应用程序开发的方法及可读存储介质

Country Status (1)

Country Link
CN (1) CN109298852B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814848A (zh) * 2019-02-21 2019-05-28 广州卓远虚拟现实科技有限公司 一种虚拟现实通用动感引擎
CN110471707A (zh) * 2019-08-29 2019-11-19 广州创幻数码科技有限公司 一种兼容各种硬件的虚拟主播系统及实现方法
WO2022068475A1 (zh) * 2020-09-30 2022-04-07 华为技术有限公司 插件运行系统、插件运行方法以及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105404385A (zh) * 2014-05-30 2016-03-16 阿里巴巴集团控股有限公司 一种智能显示终端与体感设备实现数据交互的方法及装置
CN106657101A (zh) * 2016-12-29 2017-05-10 欧普照明股份有限公司 远程控制不同协议类型的无线通信模块的sdk和方法
CN107479482A (zh) * 2017-08-21 2017-12-15 上海博泰悦臻网络技术服务有限公司 一种应用于汽车电子的操作系统和实现方法
CN107741866A (zh) * 2017-09-29 2018-02-27 山东浪潮通软信息科技有限公司 一种实现多厂商摄像机前端加载的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105404385A (zh) * 2014-05-30 2016-03-16 阿里巴巴集团控股有限公司 一种智能显示终端与体感设备实现数据交互的方法及装置
CN106657101A (zh) * 2016-12-29 2017-05-10 欧普照明股份有限公司 远程控制不同协议类型的无线通信模块的sdk和方法
CN107479482A (zh) * 2017-08-21 2017-12-15 上海博泰悦臻网络技术服务有限公司 一种应用于汽车电子的操作系统和实现方法
CN107741866A (zh) * 2017-09-29 2018-02-27 山东浪潮通软信息科技有限公司 一种实现多厂商摄像机前端加载的实现方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814848A (zh) * 2019-02-21 2019-05-28 广州卓远虚拟现实科技有限公司 一种虚拟现实通用动感引擎
CN110471707A (zh) * 2019-08-29 2019-11-19 广州创幻数码科技有限公司 一种兼容各种硬件的虚拟主播系统及实现方法
CN110471707B (zh) * 2019-08-29 2022-09-13 广州创幻数码科技有限公司 一种兼容各种硬件的虚拟主播系统及实现方法
WO2022068475A1 (zh) * 2020-09-30 2022-04-07 华为技术有限公司 插件运行系统、插件运行方法以及电子设备

Also Published As

Publication number Publication date
CN109298852B (zh) 2022-03-04

Similar Documents

Publication Publication Date Title
CN107450941B (zh) 自动打包方法、装置、存储介质和计算机设备
CN107391114B (zh) 页面可视化渲染方法及装置
KR102243793B1 (ko) 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
CN110413288B (zh) 应用部署方法、装置、服务器及存储介质
CN109976761A (zh) 软件开发工具包的生成方法、装置及终端设备
US20130283294A1 (en) Virtual Channel for Embedded Process Communication
US11200157B1 (en) Automated execution reporting for container builds
CN108446225A (zh) 模拟接口的创建装置、方法及计算机可读存储介质
CN109298852A (zh) 简化虚拟现实应用程序开发的方法及可读存储介质
US9602329B1 (en) Dynamic remote procedure call
CN105653933A (zh) 插件加载方法及装置
CN107391219B (zh) 函数编译方法和装置
CN108446149A (zh) 一种第三方动态库接口拦截方法及系统
CN112615759B (zh) 全链路压测组件、全链路压测方法及装置
CN108255936A (zh) 一种网页的编辑方法、系统及编辑器
CN111176628B (zh) 组件化架构下的前端接入方法、存储介质
CN116823537A (zh) 一种保险报案处理方法、装置、存储介质及电子设备
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
CN107977243A (zh) 一种第三方接口调用方法及装置
CN107368339A (zh) 容器入口程序运行方法、系统、设备及存储介质
CN110825373A (zh) 一种移动端动态化方法及装置
CN114090083B (zh) 一种可视化组件配置方法、装置、设备及存储介质
WO2022099913A1 (zh) 界面配置方法、装置、设备及介质
CN110968383B (zh) 一种消息框的显示方法及装置、终端、存储介质
CN113791766A (zh) 组合数据接口的方法、电子设备和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190201

Assignee: Beijing Intellectual Property Management Co.,Ltd.

Assignor: NOLO Co.,Ltd.

Contract record no.: X2023110000070

Denomination of invention: Simplified methods and readable storage media for virtual reality application development

Granted publication date: 20220304

License type: Common License

Record date: 20230531

EE01 Entry into force of recordation of patent licensing contract