CN109298852B - 简化虚拟现实应用程序开发的方法及可读存储介质 - Google Patents
简化虚拟现实应用程序开发的方法及可读存储介质 Download PDFInfo
- Publication number
- CN109298852B CN109298852B CN201810969290.9A CN201810969290A CN109298852B CN 109298852 B CN109298852 B CN 109298852B CN 201810969290 A CN201810969290 A CN 201810969290A CN 109298852 B CN109298852 B CN 109298852B
- Authority
- CN
- China
- Prior art keywords
- sdk
- virtual reality
- class
- implementation
- general
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
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 (9)
1.一 种 简 化 虚 拟 现 实 应 用 程 序 开 发 的 方 法 ,其 特 征 在 于 包括 如 下步骤 :
设 置 通 用 SDK, 所 述 通 用 SDK 中 包 括 抽 象 类 和 与 虚 拟 现 实 设备 厂商提 供 的 SDK 相 对 应 的 实 现 类 ; 其 中 , 所 述 抽 象 类 具 有 内 部封 装 的 接 口, 供 虚 拟 现 实 应 用 程 序 的 开 发 者 在 开 发 过 程 中 调用 , 实 现 形 式 参 数的传 递 ; 各 所 述 实 现 类 分 别 对 应 各 虚 拟 现 实设 备 厂 商 所 提 供 的 SDK 中的实 现 类 , 以 实 现 与 各 虚 拟 现 实 设 备厂 商 的 SDK 的 数 据 接 口 ;
当 开 发 虚 拟 现 实 应 用 程 序 时 , 调 用 所 述 通 用 SDK 中 的 抽 象类 , 读取所 述 通 用 SDK 中 的 配 置 文 件 , 使 所 述 实 现 类 实 现 所 述 抽象 类 中 定 义 的抽 象 方 法 。
2.如 权 利 要 求 1 所 述 的 方 法 , 其 特 征 在 于 :
所述 通 用 SDK 设 置 在 预 定 的 公 众 平 台 上 供 自 由 下 载 。
3.如 权 利 要 求 1 所 述 的 方 法 , 其 特 征 在 于 :
所 述 实 现 类 包 括 cardboard-impl、gear-impl、mi-impl、nibiru- impl。
4.如 权 利 要 求 1 所 述 的 方 法 , 其 特 征 在 于 :
所述 通 用 SDK 包 括 Unity SDK、 UE4 SDK、 Android SDK。
5.如 权 利 要 求 1 所 述 的 方 法 , 其 特 征 在 于 :
所 述 通 用 SDK 还 包 括 自 定 义 模 块 , 所 述 自 定 义 模 块 中 包 括自 定 义核心 功 能 、 常 用 模 块 功 能 以 及 定 制 化 的 功 能 API。
6.如 权 利 要 求 5 所 述 的 方 法 , 其 特 征 在 于 :
所 述 自 定 义 模 块 从 其 他 应 用 后 台 获 取 虚 拟 现 实 设 备 的 硬件 数 据 ,提供给 所 述 自 定 义 核 心 功 能 、 常 用 模 块 功 能 以 及 定 制化 的 功 能 API, 辅助 完 成 相 应 功 能 。
7.如 权 利 要 求 6 所 述 的 方 法 , 其 特 征 在 于 :
所 述 自 定 义 模 块 通 过 USB 接 口 直 接 读 取 或 者 通 过 Android 接口 定义语 言 的 方 式 , 从 其 他 应 用 后 台 获 取 所 述 硬 件 数 据 。
8.一 种 计 算 机 可 读 存 储 介 质 , 存 储 有 计 算 机 程 序 , 其 特 征在 于 所述计 算 机 程 序 被 处 理 器 执 行 时 , 使 得 所 述 处 理 器 执 行 如权 利 要 求 1 至 7中任意一项所述方法的步骤。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任意一项所述方法的步骤。
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 CN109298852A (zh) | 2019-02-01 |
CN109298852B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814848A (zh) * | 2019-02-21 | 2019-05-28 | 广州卓远虚拟现实科技有限公司 | 一种虚拟现实通用动感引擎 |
CN110471707B (zh) * | 2019-08-29 | 2022-09-13 | 广州创幻数码科技有限公司 | 一种兼容各种硬件的虚拟主播系统及实现方法 |
CN114327437A (zh) * | 2020-09-30 | 2022-04-12 | 华为技术有限公司 | 插件运行系统、插件运行方法以及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404385B (zh) * | 2014-05-30 | 2018-11-27 | 阿里巴巴集团控股有限公司 | 一种智能显示终端与体感设备实现数据交互的方法及装置 |
CN106657101A (zh) * | 2016-12-29 | 2017-05-10 | 欧普照明股份有限公司 | 远程控制不同协议类型的无线通信模块的sdk和方法 |
CN107479482B (zh) * | 2017-08-21 | 2023-02-28 | 上海博泰悦臻网络技术服务有限公司 | 一种应用于汽车电子的操作系统和实现方法 |
CN107741866A (zh) * | 2017-09-29 | 2018-02-27 | 山东浪潮通软信息科技有限公司 | 一种实现多厂商摄像机前端加载的实现方法 |
-
2018
- 2018-08-23 CN CN201810969290.9A patent/CN109298852B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109298852A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372796B2 (en) | Methods and systems for the provisioning and execution of a mobile software application | |
CN109298852B (zh) | 简化虚拟现实应用程序开发的方法及可读存储介质 | |
CN108228188B (zh) | 一种视图组件处理方法、电子设备及可读存储介质 | |
US8978023B2 (en) | Canonical mechanism for securely assembling features into a mobile application | |
US8694988B2 (en) | Runtime extensions | |
CN109614147B (zh) | 一种phy寄存器读写方法和装置 | |
CN110708202A (zh) | 插件节点的配置方法、装置、设备及存储介质 | |
WO2017107851A1 (zh) | 一种桌面应用组件发布、更新方法及装置 | |
CN110580174B (zh) | 应用组件生成方法、服务器及终端 | |
CN112307403A (zh) | 页面渲染方法、装置、存储介质以及终端 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN109766123B (zh) | 应用程序封装方法及装置 | |
WO2021239073A1 (zh) | 物联网操作系统构建方法、系统、云平台及物联网设备 | |
EP3797356A1 (en) | Code base sharing between standalone and web-based versions of an application via an emulated network communication channel | |
CN109062714A (zh) | 远程控制安卓设备的方法、装置及电子设备 | |
CN110032390B (zh) | 一种实现多机型共升级包的方法、存储介质及智能终端 | |
CN110825373A (zh) | 一种移动端动态化方法及装置 | |
CN112612550A (zh) | 一种文件配置方法及装置 | |
CN111198899A (zh) | 应用程序中实体渲染的开发系统及方法 | |
Charan et al. | Customizing AOSP for different embedded devices | |
CN116074622B (zh) | 多协议控制usb相机的实现方法、装置、设备及介质 | |
CN114064030A (zh) | 一种界面配置方法、系统、存储介质及电子设备 | |
CN117215572A (zh) | 渠道聚合软件工具包的生成方法、装置、设备及存储介质 | |
CN114138507A (zh) | Python程序服务化方法、装置及计算机可读存储介质 | |
Zores | Jelly Bean Device Porting Walkthrough |
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 | ||
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 |