CN107122184A - 一种虚拟现实软件开放式开发系统及方法 - Google Patents
一种虚拟现实软件开放式开发系统及方法 Download PDFInfo
- Publication number
- CN107122184A CN107122184A CN201710263722.XA CN201710263722A CN107122184A CN 107122184 A CN107122184 A CN 107122184A CN 201710263722 A CN201710263722 A CN 201710263722A CN 107122184 A CN107122184 A CN 107122184A
- Authority
- CN
- China
- Prior art keywords
- function
- software
- data
- virtual reality
- development
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
- G06F8/355—Round-trip engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/64—Retargetable
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种虚拟现实软件开放式开发系统及方法。本发明的将应用软件的具体功能从可执行程序中分离出来,放到开放式的功能描述数据中,形成一个“组合工具”式的软件开发和应用架构。使用一个统一的编译执行程序,搭配不同的功能描述数据,产生不同的软件功能。任何用户可在任何时间、任何地点通过编辑功能描述数据,对软件功能进行修改而无需重新编译,从而实现“千人千面”式的软件个性化开发。功能描述数据数据具有非常好的开放性,便于随时进行共享、引用、继承、组合,因此更加有利于协同开发,实现随时、随地、人人的3A的开发模式。
Description
技术领域
本发明属于计算机软件领域,涉及一种虚拟现实软件开放式开发系统及方法。
现有技术
虚拟现实(Virtual Reality)是一种计算机软件模拟技术,以计算机软件模拟真实世界的视觉和物理现象及其内在机理。
现有的虚拟现实开发平台,如UNITY、UNREAL等,其开发及应用流程如附图1所示,包括3D模型导入、帖图渲染、编写程序代码、编译生成可执行程序、安装、使用、问题反馈、修改等环节。最终提交给用户的主要是执行程序(EXE文件)、函数库,以及配套的3D模型数据及其贴图。
从软件结构上来说,所有被开发的功能算法、数据结构等全部都打包封装在EXE文件中,对应用程序的用户是不可见的。因此,在上述开发流程中,用户只参与软件的使用和问题反馈两个环节,其它全部由专业的软件开发者完成。这种开发者与使用者分离的软件开发与应用模式,具有开发与应用关系清晰、软件功能一致性好的优点。
而在虚拟现实应用领域,行业用户的需求往往是非常个性化的。例如工业产品的虚拟仿真培训系统,每一款都需要进行个性化定制。而现有的开发模式下,用户无法对软件进行自主开发或修改,哪怕是一个简单的功能需求发生变化,都需要找到专业的开发者来完成,并生成不同的执行程序(软件版本)返回给用户,导致对软件个性化需求的响应速度慢、定制成本高、版本管理困难,阻碍了虚拟现实技术在各行业的推广。
发明内容
针对现有虚拟现实软件开发方法存在的问题,我们提出并实现一种虚拟现实软件开放式开发系统及其方法,旨在实现用户可随时随地自行修改甚至开发虚拟现实软件的功能。其技术方案如下。
本发明的一种虚拟现实软件开放式开发系统包括:
编译执行程序,对虚拟现实应用软件的功能描述数据进行解读,并根据其给出的逻辑和指令,调用3D模型、以及函数库中的相关函数,完成对软件功能的执行;
功能描述数据,以约定的协议,存贮某一虚拟现实应用软件的所有功能描述,即所有功能所对应的算法、数据结构、调用函数的描述;
功能编辑器,用于编辑和生成所述的功能描述数据;
3D模型库,包含3D模型和3D场景;
函数库。
本发明的虚拟现实软件开放式开发系统的开发方法包括如下步骤:
1)场景构建:导入3D模型,并进行贴图渲染;
2)功能开发:使用功能编辑器,将所要开发的虚拟现实软件功能的算法和数据结构编辑编写为功能描述数据,在编写过程中,随时调用编译执行程序,对功能描述数据进行解释和执行,使用户可实时查看开发效果,以便调试;功能描述数据编写完成后,保存,
3)交付安装:开发结束后,交付给用户的是一个与具体应用软件功能无关的编译执行程序,与具体应用软件局部相关的函数库,与应用软件完全相关的功能描述数据、3D场景。
4)软件使用:用户启动编译执行程序后,编译执行程序按需读取部分或全部功能描述数据,对其中的功能描述进行解读和编译,之后,按照解读结果所给出的逻辑,调用3D模型,并从函数库中调用功能描述数据中指定的函数,并执行其所描述的软件功能;
5)软件修改:当软件功能需要修改时,直接使用功能编辑器修改功能描述数据并加以保存;启动编译执行程序后,重新载入修改后的功能描述数据,软件的功能即相应发生改变,从而实现软件功能开发的开放性,即任何人都可以随时对软件进行修改。
所述的与具体应用软件局部相关的函数库可以随时扩展,扩展方法为:1)用户采用通用的计算机程序开发出功能函数,然后在现有的计算机编译环境中编译生成(或添加到)函数库;2)为该函数命名其对应的功能描述关键词,并添加到功能描述数据词库中,并建立映射关系。
本发明的核心在于将应用软件软件的具体功能从可执行(EXE)程序中分离出来,放到开放式的功能描述数据中,形成一个“组合工具”式的软件开发和应用架构。即使用一个统一的编译执行程序,搭配不同的功能描述数据,产生不同的软件功能。其技术效果表现在:
1)任何用户可在任何时间、任何地点通过编辑功能描述数据,对软件功能进行修改而无需重新编译,从而解决软件个性化开发与应用的“最后一公里”问题,实现“千人千面”式的软件个性化开发。
2)因为采用了统一的可执行程序,因此软件的分发管理也变得更加简单。用户只需要安装一个程序,通过下载不同的功能描述数据包,即可运行不同的软件。而经过用户自行修改的个性化功能数据包,则由用户自行管理即可。
3)与可执行程序(EXE文件)不同,功能描述数据数据具有非常好的开放性,便于随时进行共享、引用、继承、组合,因此更加有利于协同开发,实现随时、随地、人人的3A(anytime、anywhere、anybody)的开发模式。
附图说明
图1为现有虚拟现实软件开发及应用流程;
图2本发明涉及的虚拟现实开发及应用架构;
图3本发明涉及的虚拟现实软件开发及应用流程。
具体实施方式
本发明的核心思想,是将虚拟现实软件中用于对功能进行表达的算法、数据结构等,以外部数据的方式,从EXE程序中分离出来,而非像现有的应用程序一样,封装在EXE程序中。其开发及应用架构如图2所示。
除了常规的3D模型库、函数库之外,其中的关键构件及其实现方案是:
1)功能描述数据:可以是一组数据文件(如各类文本或二进制文件),也可以是数据库中的数据包。它以约定的协议,存贮了某个虚拟现实应用软件的所有功能描述,即所有功能所对应的算法、数据结构、调用函数的描述,其作用类似于通常软件开发架构中的源代码。功能描述数据是由功能编辑器来进行编写开发的。
2)编译执行程序:是一个统一的、与具体的应用软件无关的可执行(EXE)程序,负责按约定的协议,对某一个应用软件的功能描述数据进行解读,并根据其给出的逻辑和指令,调用3D模型,以及函数库中的相关函数,完成对软件功能的执行。与通常的软件开发及编译工具所不同的是,本发明涉及的编译执行程序相当于“编译器+执行程序”,并且是在某一应用程序运行时才对相应的功能描述数据文件进行编译和执行。
3)功能编辑器:用于编辑和生成功能描述数据。当功能描述数据是文本文件时,软件功能编辑器就相当于一个专用的文本编辑器,理论上甚至可以直接使用常规的文本编辑器。在开发过程中,功能编辑器同步调用编译执行程序,以便随时查看开发效果,用于开发调试。
基于这一架构,本发明提出的虚拟现实开发与应用流程如图3所示。
1)场景构建:开发者需要导入3D模型,并进行贴图渲染。
2)功能开发:开发者使用功能编辑器,将所要开发的虚拟现实软件功能的算法和数据结构编辑编写为功能描述数据,编写过程与通常的计算机程序编写方式相似。在编写过程中,随时调用编译执行程序,对功能描述数据进行解释和执行,使用户可实时查看开发效果,以便调试。功能描述数据编写完成后,只需要保存即可,而不需要进行编译生成可执行文件。
3)交付安装:开发结束后,交付给用户的是一个与具体应用软件无关的、统一的编译执行程序(EXE文件),与具体应用软件局部相关的函数库(可能有应用软件专用的函数库),与应用软件完全相关的功能描述数据、3D场景。
4)软件使用:用户启动编译执行程序后,它立即按需读取(节省运算开销)部分或全部功能描述数据,对其中的功能描述进行解读和编译,解读的内容包括运算逻辑(算法)、变量、函数等。之后,按照解读结果所给出的逻辑,调用3D模型,并从函数库中调用功能描述数据中指定的函数,并执行其所描述的软件功能。例如,在一个虚拟现实场景中有一个虚拟的电灯3D模型,当我们用鼠标左键点击它时,电灯打开。这个功能可描述为:if mouse_left_click(light)then switch(light)。在这句描述中,if…then…是逻辑(算法),mouse_left_click和switch是函数库中相关函数对应的关键词,而light则是电灯的识别名和状态变量(初始值可设为0,表示关闭)。编译执行程序首先对这个描述中的逻辑进行解读,而后调用mous_left_click指向的函数,监控鼠标行为。当探测到鼠标点击light所代表的对象(电灯)时,立即调用并执行switch指向的开灯函数,使该函数中的参数light所指向的对象(电灯)的3D模型呈现打开(高亮)的效果,同时将light状态值切换为1,表示打开的状态。
5)软件修改:由于应用软件开发的结果是以功能描述数据存放的,不需要事先编译生成可执行程序(EXE文件)。因此,当软件功能需要修改时,即使是应用软件的用户也可直接使用功能编辑器修改功能描述数据并加以保存。启动编译执行程序后,重新载入修改后的功能描述数据,软件的功能即相应发生改变,从而实现软件功能开发的开放性,即任何人都可以随时对软件进行修改。
在本发明中,无论是什么虚拟现实软件,其运行都是通过编译执行程序进行的。也就是说,各种不同的虚拟现实软件采用的是一个统一的可执行程序,是功能描述数据的不同造成了不同软件的功能差异。
根据不同的开发需求,功能描述数据可以采用不同的格式,如文本、电子表、数据库等,彼此之间通过格式转换器相互转化。例如,当我们需要通过网络进行协同开发时,可将功能描述数据以数据库的方式进行存贮和管理,而在网络断开或单机版开发时,功能描述文件则可能就是本地终端上的文本文件。
3D模型库可以随时扩展,其实现方法为:1)用户采用第三方建模工具完成3D模型并进行渲染。2)将3D模型以通用格式(如.fbx)存放在指定的文件夹或数据库中,并填写模型描述表。3)根据模型描述表,由系统自动修改3D模型库的索引目录。
函数库有两种基本的创建方式,1)基于OPENGL或C3D等图形底层自行开发。2)直接采用现有的第三方虚拟现实引擎函数库,实现跨引擎开发。同时,函数库也可以随时扩展,其步骤是:1)用户采用通用的计算机程序开发出功能函数,然后在现有的计算机编译环境中编译生成(或添加到)函数库。2)为该函数命名其对应的功能描述关键词,并添加到功能描述数据词库中,并建立映射(指向)关系。
Claims (3)
1.一种虚拟现实软件开放式开发系统,其特征在于包括:
编译执行程序,对虚拟现实应用软件的功能描述数据进行解读,并根据其给出的逻辑和指令,调用3D模型、以及函数库中的相关函数,完成对软件功能的执行;
功能描述数据,以约定的协议,存贮某一虚拟现实应用软件的所有功能描述,即所有功能所对应的算法、数据结构、调用函数的描述;
功能编辑器,用于编辑和生成所述的功能描述数据;
3D模型库,包含3D模型和3D场景;
函数库。
2.一种一种虚拟现实软件开放式开发系统的开发方法,其特征在于包括如下步骤:
1)场景构建:导入3D模型,并进行贴图渲染;
2)功能开发:使用功能编辑器,将所要开发的虚拟现实软件功能的算法和数据结构编辑编写为功能描述数据,在编写过程中,随时调用编译执行程序,对功能描述数据进行解释和执行,使用户可实时查看开发效果,以便调试;功能描述数据编写完成后,保存,
3)交付安装:开发结束后,交付给用户的是一个与具体应用软件功能无关的编译执行程序,与具体应用软件局部相关的函数库,与应用软件完全相关的功能描述数据、3D场景。
4)软件使用:用户启动编译执行程序后,编译执行程序按需读取部分或全部功能描述数据,对其中的功能描述进行解读和编译,之后,按照解读结果所给出的逻辑,调用3D模型,并从函数库中调用功能描述数据中指定的函数,并执行其所描述的软件功能;
5)软件修改:当软件功能需要修改时,直接使用功能编辑器修改功能描述数据并加以保存;启动编译执行程序后,重新载入修改后的功能描述数据,软件的功能即相应发生改变,从而实现软件功能开发的开放性,即任何人都可以随时对软件进行修改。
3.根据权利要求2所述的开发方法,其特征在于所述的与具体应用软件局部相关的函数库的扩展方法为:1)用户采用通用的计算机程序开发出功能函数,然后在现有的计算机编译环境中编译生成(或添加到)函数库;2)为该函数命名其对应的功能描述关键词,并添加到功能描述数据词库中,并建立映射关系。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710263722.XA CN107122184A (zh) | 2017-04-21 | 2017-04-21 | 一种虚拟现实软件开放式开发系统及方法 |
PCT/CN2017/095793 WO2018192142A1 (zh) | 2017-04-21 | 2017-08-03 | 一种虚拟现实软件开放式开发系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710263722.XA CN107122184A (zh) | 2017-04-21 | 2017-04-21 | 一种虚拟现实软件开放式开发系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107122184A true CN107122184A (zh) | 2017-09-01 |
Family
ID=59726319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710263722.XA Pending CN107122184A (zh) | 2017-04-21 | 2017-04-21 | 一种虚拟现实软件开放式开发系统及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107122184A (zh) |
WO (1) | WO2018192142A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590355A (zh) * | 2017-10-27 | 2018-01-16 | 巧夺天宫(深圳)科技有限公司 | 基于建筑信息模型的建筑设计方法、设计系统及电子设备 |
CN112114860A (zh) * | 2020-09-28 | 2020-12-22 | 北京开云互动科技有限公司 | 一种虚拟现实内容产出与应用一体化平台 |
CN114089829A (zh) * | 2021-10-13 | 2022-02-25 | 深圳中青宝互动网络股份有限公司 | 一种虚拟现实的元宇宙系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833454A (zh) * | 2010-05-10 | 2010-09-15 | 上海微当网络科技有限公司 | 一种在线互动软件图形界面逻辑编辑处理方法 |
CN102508648A (zh) * | 2011-09-23 | 2012-06-20 | 北京像素软件科技股份有限公司 | 一种图形引擎实现方法 |
CN104866376A (zh) * | 2015-05-29 | 2015-08-26 | 单岩 | 一种基于可编辑文本驱动的虚拟样机及其方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520951B (zh) * | 2011-12-13 | 2014-06-18 | 天津大学 | 基于Flash的三维游戏场景管理系统 |
CN103513992B (zh) * | 2013-10-23 | 2016-04-20 | 电子科技大学 | 一种通用的教育娱乐机器人应用软件研制平台 |
-
2017
- 2017-04-21 CN CN201710263722.XA patent/CN107122184A/zh active Pending
- 2017-08-03 WO PCT/CN2017/095793 patent/WO2018192142A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833454A (zh) * | 2010-05-10 | 2010-09-15 | 上海微当网络科技有限公司 | 一种在线互动软件图形界面逻辑编辑处理方法 |
CN102508648A (zh) * | 2011-09-23 | 2012-06-20 | 北京像素软件科技股份有限公司 | 一种图形引擎实现方法 |
CN104866376A (zh) * | 2015-05-29 | 2015-08-26 | 单岩 | 一种基于可编辑文本驱动的虚拟样机及其方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590355A (zh) * | 2017-10-27 | 2018-01-16 | 巧夺天宫(深圳)科技有限公司 | 基于建筑信息模型的建筑设计方法、设计系统及电子设备 |
CN112114860A (zh) * | 2020-09-28 | 2020-12-22 | 北京开云互动科技有限公司 | 一种虚拟现实内容产出与应用一体化平台 |
CN112114860B (zh) * | 2020-09-28 | 2022-10-21 | 北京开云互动科技有限公司 | 一种虚拟现实内容产出与应用一体化设备 |
CN114089829A (zh) * | 2021-10-13 | 2022-02-25 | 深圳中青宝互动网络股份有限公司 | 一种虚拟现实的元宇宙系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2018192142A1 (zh) | 2018-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rouson et al. | Scientific software design: the object-oriented way | |
JP6563381B2 (ja) | 再計算ユーザインタフェースにおける変換の編さん | |
Pidd et al. | Simulation software: not the same yesterday, today or forever | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
CN107122184A (zh) | 一种虚拟现实软件开放式开发系统及方法 | |
Putranto et al. | A Comparative Study of Java and Kotlin for Android Mobile Application Development | |
Hay-Schmidt et al. | Towards a unified language architecture for reversible object-oriented programming | |
Pohl et al. | vMAGIC—automatic code generation for VHDL | |
CN100468437C (zh) | .Net程序保护的方法和系统 | |
US11593540B1 (en) | Systems and methods for performing concurrency analysis in simulation environments | |
Hähnle et al. | HATS abstract behavioral specification: The architectural view | |
CN110018831B (zh) | 程序处理方法、装置及计算机可读存储介质 | |
Wang et al. | Component‐Based Formal Modeling of PLC Systems | |
US11829689B1 (en) | Systems and methods for creating variant regions in acausal simulation models | |
EP4196874A1 (en) | Representing asynchronous state machine in intermediate code | |
Bourbouh et al. | From Lustre to Simulink: Reverse compilation for embedded systems applications | |
Thomsen et al. | From safety critical Java programs to timed process models | |
WO2020211074A1 (zh) | 一种多方安全计算数据处理方法、装置及系统 | |
Chapman | Worst-case timing analysis via finding longest paths in SPARK Ada basic-path graphs | |
Palanque et al. | Interactive cooperative objects: an object-oriented formalism based on petri nets for user interface design | |
Selić | Design languages: a necessary new generation of computer languages | |
US11556357B1 (en) | Systems, media, and methods for identifying loops of or implementing loops for a unit of computation | |
Bossard | A Gentle Introduction to Functional Programming in English | |
CN109117124A (zh) | 一种多返回值的函数编程方法 | |
Szemethy et al. | Model transformations in the model-based development of real-time systems |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170901 |