一种基于形式化的复杂三维场景建模方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201710014945.2
(22)申请日 2017.01.09
(71)申请人 北京航空航天大学
地址 100191 北京市海淀区学院路37号
(72)发明人 吕舜 吕江花 吴继芳 付鹏 
汪溁鹤 汪帅 马世龙 
(74)专利代理机构 北京永创新实专利事务所
11121
代理人 祗志洁
(51)Int.Cl.
G06T  15/00(2011.01)
(54)发明名称
一种基于形式化的复杂三维场景建模方法
(57)摘要
本发明提供了一种基于形式化的复杂三维
场景建模描述方法,属于虚拟现实领域中场景建
模技术。本方法包括:基于BNF(巴科斯范式)设计
场景建模语法规则,将三维场景按照场景对象
场景对象模板和场景对象模板属性进行抽象;进
行建模操作形成抽象建模结果;根据映射规则将
抽象建模结果转化为以XML格式为标准的建模结
果,以实现目标三维场景抽象建模。本发明所设
计的场景建模语法规则更加严谨并且不存在二
义性,所使用的三维场景抽象方法具有较强属性
描述能力和良好的扩展性,可以应对各种类型的
场景对象,能为界面化建模提供良好的支持,完
成复杂三维场景抽象建模。权利要求书1页  说明书7页  附图2页CN 106709980 A 2017.05.24
C N  106709980
A
1.一种基于形式化的复杂三维场景建模方法,其特征在于,包括如下步骤:
步骤1,将三维场景按照场景对象、场景对象模板和场景对象模板属性进行抽象,基于BNF设计场景建模语法规则;BNF为巴科斯范式;
所述场景对象表示构成三维场景的基本单位,所述场景对象模板是将具有相同特征的场景对象的属性进行提取所形成的一种抽象属性集合;
步骤2,将场景建模语法规则文件与场景资源文件导入建模环境,并通过建模环境提供的操作对目标场景进行建模,形成抽象建模结果;
步骤3,根据映射规则将抽象建模结果转化为XML格式的建模结果。
2.根据权利要求1所述的复杂三维场景建模方法,其特征在于,所述的步骤1中,形成场景对象模板后,要保留每个场景对象特有的属性值,为每个模板匹配一个默认模板参数,如果场景对象某个属性的值与默认模板参数一致则不再保存。
3.根据权利要求1所述的复杂三维场景建模方法,其特征在于,所述的步骤1中,所述场景对象模板属性包括键值属性、序列属性和结构体属性。
4.根据权利要求1或3所述的复杂三维场景建模方法,其特征在于,所述的步骤2中,抽象建模结果是指场景建模脚本,脚本中包括变量定义区、场景对象模板定义区和场景构造脚本定义区;其中,场景对象模板定义区用于描述三维场景中涉及到的所有场景对象,该区域中的每一个模板通过唯一的标识区分,模板的内部包括键值属性语句、序列属性语句和结构体属性语句;场景构造脚本定义区将已经定义的场景对象模板进行实例化。
5.根据权利要求4所述的复杂三维场景建模方法,其特征在于,所述的步骤2中,建模环境包含一套场景建模脚本的编辑操作,涵盖场景建模脚本的所有编辑操作,包括变量定义区、场景对象模板定义区以及场景构造脚本定义区的增加、删除、修改、查询操作。
6.根据权利要求1所述的复杂三维场景建模方法,其特征在于,步骤3中所述的映射规则,基于如下9种操作符设计:
1)“(终结符)VAL ”,表示一个终结符对应的值;
2)“[非终结符]XML ”,表示一个非终结符的XML展开;
3)“[非终结符<;自然数>]XML ”,表示一个非终结符的特定XML展开;
4)“%{符号序列}”,表示遍历一个符号序列或集合中的每一个符号,其中%用于表示当前遍历的符号;
5)“|”,表示或连接符,用于连接两个操作符,表示选择第一个合法的操作符行为;
6)“=>”,表示条件连接符号,用于连接两个操作符,传递参数,参数参考第一个操作符的定义;
7)“.”,表示成员操作符,用于表示非终结符中的一个成员;
8)“→”,为展开符号,用于连接两个操作符,表示左操作符按照右操作符展开;
9)“${…}”,用于判断XML层次结构中是否存在名为…的节点,不存在则返回正确。
7.根据权利要求1所述的复杂三维场景建模方法,其特征在于,所述的步骤3中,将抽象建模结果转化为XML格式的过程中,将所有场景对象模板中的属性信息进行提取,过滤重复的内容并放置在一个XML文件中存储,将所有场景对象模板中属性值信息提取并存放在另一个XML文件中,属性信息和属性值信息通过属性名称进行关联。
权 利 要 求 书1/1页CN 106709980 A
一种基于形式化的复杂三维场景建模方法
技术领域
[0001]本发明属于场景建模和应用软体系结构设计相结合的领域,涉及虚拟现实中的场景建模方法的应用,具体涉及一种基于形式化的复杂三维场景抽象建模方法。
背景技术
[0002]随着虚拟现实、计算机网络、软件工程等技术的逐步发展,越来越多的软件选择更加直观、真实、交互友好的三维场景展示方式向用户提供信息,如:网络虚拟祭祀平台、虚拟试衣间平台、虚拟测试平台等。其中,场景建模作为虚拟现实相关应用程序开发中重要的环节,是必须要面对的问题。为了将这些三维场景展示出来,往往需要将目标三维场景信息通过文本的形式保存在文件中,再通过专门的商业引擎工具Unity3D、Unreal等对这些文件加以读取和解析,并最后形成三维场景。目前,随着业务需求的不断复杂化,目标三维场景的结构也变得愈加复杂,尤其体现在场景中对象结构的复杂化。因此要解决复杂三维场景的建模,实际上就是要解决复杂场景中对象的建模,虽然目前已经存在了一些场景建模方法,但它们普遍存在如下问题:①部分建模方法对复杂场景对象的属性和特征描述能力不足,具体表现在数据类型不足、构造新数据类型困难以及对数组、结构体等复杂类型描述困难等方面,因而在面对复杂场景描述时应用较为困难;②部分建模方法业务耦合性强,一方面没有总结出抽象的场景对象描述方法,另一方面经常局限于某一种具体的文本描述规则,因此导致其通用性不足;③大多数建模方法在设计时没有考虑到界面化建模支持,当目标场景的规模非常庞大时,直接人工编辑建模文本会降低工作效率,并提升因人为疏忽导致的文本编辑错误。
[0003]在对当前现存的三维场景建模方法进行分析后发现,这些方法普遍难以应对构成粒度低、属性种类繁杂的复杂3D场景的建模需求,同时存在属性描述能力不足、通用性较差以及界面化建模支持程度低的问题。因此,如何解决复杂三维场景的抽象建模,同时兼具良好的属性描述能力、通用性以及界面化建模支持就成了需要解决的问题。
发明内容
[0004]本发明为了克服现有方法存在的缺陷,增强建模方法的描述能力、通用性以及界面化建模支持能力,并完成复杂三维场景抽象建模,提出了一种基于形式化的三维场景建模方法。
[0005]本发明提供的基于形式化的复杂三维场景建模方法,包括:
[0006]步骤1,将三维场景按照场景对象、场景对象模板和场景对象模板属性进行抽象,基于BNF(巴科斯范式)设计场景建模语法规则;
[0007]所述场景对象表示构成三维场景的基本单位,所述场景对象模板是将具有相同特征的场景对象的属性进行提取所形成的一种抽象属性集合。
[0008]步骤2,将场景建模语法规则文件与场景资源文件导入建模环境,并通过建模环境提供的操作对目标场景进行建模,形成抽象建模结果;
[0009]步骤3,根据映射规则将抽象建模结果转化为以XML格式为标准的建模结果,完成目标三维场景抽象建模描述工作。
[0010]本发明的优点与积极效果在于:
[0011](1)本发明借助形式化方法对虚拟三维场景的特征进行抽象分析,并基于BNF提出了了场景建模规则。相较于现有方法中的建模规则,本发明中的规则更加严谨并且不存在二义性,提升了建模方法的通用性的同时还能为界面化建模提供良好的支持;
[0012](2)本发明提出了场景对象模板的概念对场景对象进行抽象,并将场景对象模板进一步细化为场景对象模板属性的集合,从而增强了建模方法的属性描述能力。这些属性可以被归结为三种类型,分别是键值属性、序列属性和结构体属性,以应对不同类型的属性描述需求。采用这种抽象方法可以应对各种类型的场景对象,不论场景对象的构成有多复杂,都可以被最终分解成为多种属性类型的集合。除此之外这种抽象方法也具有良好的扩展性,当现有的属性语句无法解决场景对象的描述需求时,可以根据该对象的属性特征扩展出新的属性规则;
[0013](3)本发明在提出场景建模方法的同时还提出了对应的建模环境,通过该环境可以借助界面化的操作方法完成整个场景的建模工作。为了让场景建模方法支持界面化建模,在设计场景建模规则时融入了相关参数以提供界面化建模支持。
附图说明
[0014]图1为本发明提出的场景建模方法与现有建模方法的流程比对图;
[0015]图2为本发明提出的场景建模方法中对虚拟场景的抽象层次结构图;
[0016]图3为本发明方法所形成的抽象建模结果文本示意图;
[0017]图4为本发明实施例中对抽象建模结果采用自动化映射规则转换的部分内容示意图。
具体实施方式
[0018]下面将结合附图和实施例对本发明作进一步的详细说明。
[0019]本发明的三维场景建模方法,实现对复杂三维场景的抽象建模,从顺序关系来看,依次为基于BNF的场景建模规则、界面化建模环境与建模操作、抽象建模结果自动化映射方法。基于BNF的场景建模规则,结合场景建模环境通过界面化操作完成目标三维场景的抽象建模过程,并根据映射规则将抽象建模结果自动转化为渲染程序可以识别的XML文本格式,最终完成三维场景的展现。本发明方法的核心思想是:
[0020]1)基于BNF设计场景建模规则确保其描述内容无二义性,语法更容易扩展,并且支持对建模结果进行静态语法错误分析;
[0021]2)提出场景对象、场景对象模型及属性语句的概念,通过这套抽象方法可以增强建模方法对复杂场景对象属性和特征的描述能力,在有必要的情况下也可以通过扩展属性语句对更加复杂的模型进行兼容;
[0022]3)通过界面化的手段完成场景的建模操作,避免了因为人工直接编辑建模文件可能导致的人为错误,同时也提升了建模效率;
[0023]4)将抽象建模结果与业务应用时的数据格式进行分离,采用自动化映射方法将建
模结果转化为目前应用广泛的XML文本格式,这种解耦合的方式能够提升建模方法的通用性,使得使用者可以根据业务需求制定合适的映射方式。
[0024]通过以上几个关键设计思想实现的整套解决方案,提升了建模方法的属性描述能力和通用性并解决了针对复杂三维场景的建模需求,在此基础上还引入了界面化建模方法的模式,以降低人为错误、提高建模效率,总体实现了针对复杂三维场景进行抽象建模的一种方法。
[0025]如图1所示,展示了本发明建模方法应用流程(实线)与现有建模方法应用流程(虚线)的对比。相较于现有建模方法直接对目标场景特征从零构造描述规则,通过人工编写和检查的方式生成场景描述文本这种方式而言,本发明提出的建模方法流程虽然复杂一些,但换取了更强的属性描述能力、界面建模支持特性以及场景的可复用性,其大体应用流程如下:第一,针对目标场景特征进行分析,基于BNF对建模语法规则进行扩充,形成用于描述目标场景的建模规则;第二,基于建模规则及场景资源文件,在界面化建模环境中通过调用建模规则编辑操作完成场景描述脚本的编辑生成工作;第三,依据XML转化规则将场景描述脚本转化为XML格式的描述信息,将XML文本输入到渲染程序中,完成解
析和虚拟场景的生成工作。这样通过界面化操作的手段就可以对复杂三维场景进行分析、建模,并根据业务需求灵活的对抽象建模结果进行映射并生成所需文本格式的建模结果。
[0026]下面将结合图1详细说明本发明的基于BNF的复杂三维场景抽象建模方法的实施流程。
[0027]步骤1,对三维场景的特征进行总结和抽象形成场景对象模板、场景对象模板和属性等概念,并基于抽象结果和BNF设计场景建模语法规则。
[0028]目前现存的场景建模方法普遍在属性描述能力和通用性上存在问题,很难针对具有复杂属性特征的一般场景进行描述。为了解决此问题,本发明中的场景建模规则基于BNF 进行设计,其目的是为了解除建模规则与业务应用间的耦合,以抽象的、无二义性的规则去描述场景,同时增强规则本身的属性描述能力。在基于BNF的设计理念下,为了尽可能的将建模方法与三维场景进行解耦,使得建模规则更加通用并且尽可能兼容复杂场景的描述,本发明依次提出了场景对象、场景对象模板、模板属性等概念,如图2所示。
[0029]一般情况下,三维场景复杂化的主要原因大多源于场景中对象的复杂化,因此为了能够尽可能的将具体业务与场景结构分析,本发明首先提出场景对象的概念,它代表了场景中每一个独立的对象,即场景对象表示了构成三维场景的基本单位。在此基础上,本发明进一步的提出了场景对象模板概念。场景对象模板是将具有相同特征的场景对象的属性进行提取所形成的一种抽象属性集合,用于
描述一类性质相同的场景对象。需要注意的是这些场景对象仅仅是在属性构成上相同,而并非要求属性值上也一致。场景对象模板的形成过程分为两个步骤:1、将场景中具有相同特征的场景对象进行归类;2、对同一种类型的场景对象进行属性提取形成场景对象模板。在形成场景对象模板后,需要保留每个场景对象特有的属性值信息,因此每个对象要保留对应的模板特化参数。为了压缩参数数量,每个场景对象模板都会匹配一个默认模板参数,如果场景对象某个属性的值与默认模板参数一致则无需再进行保存。通过该方法就可将三维场景中的所有场景对象进行分类,提取出一部分具有代表意义的场景对象模板,完成第一轮的抽象工作。
[0030]基于场景对象模板,本发明进一步提出属性的概念,属性是将场景对象模板的特

本文发布于:2024-09-21 12:25:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/403388.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:场景   建模   对象   属性   方法   模板
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议