一种地学二三维同源图形引擎设计方法与流程

文档序号:24753557发布日期:2021-04-21 00:02阅读:121来源:国知局
一种地学二三维同源图形引擎设计方法与流程

1.本发明涉及地学地质图形处理技术领域,特别涉及一种地学二三维同源图形引擎设计方法。


背景技术:

2.在地学研究方面涉及到大量的二三维的地质图件,例如平面图,构造图,厚度图,沉积相图等。这些图件的绘制和展示需要用到专业的绘图软件,而图形引擎就是各种绘图软件的核心。图形引擎是一种底层的软件包,专门用来支持高层的图形绘制需求。对外封装了各种图形可视化相关的对象。用户可以采用面向对象的开发方法,直接用这些对象来搭建,管理场景,并指定把显示结果绘制到某个窗口。引擎内部会调用面向图形硬件的api,实现各个可视化对象的绘制。
3.目前,图形引擎对于二维和三维图形的绘制基本都是分别设计不同的流程逻辑进行实现,还没有统一的、一致的设计开发思想。图形引擎中对二维图形的绘制采用的是调用gdi接口的方式,三维图形的绘制采用的是opengl接口的方式,二者在面向对象开发时是分别用不同的流程逻辑来设计的。对于地学图形系统而言,经常需要对图形引擎进行个性化的扩展和丰富,每次系统的代码优化和改动,都需要分别对二维和三维的流程逻辑进行改动,代码编写和测试的重复工作量很大,而且用户体验感不高,工作效率较低。


技术实现要素:

4.(一)要解决的技术问题本发明提供了一种地学二三维同源图形引擎设计方法,以克服现有技术中二维图形和三维图形差异化设计问题,实现了一致性的对象定义和调用接口,提高了图形引擎设计的简洁性,减轻了代码编写量,降低了软件开发难度和复杂度等缺陷。
5.(二)技术方案为解决上述问题,本发明提供一种地学二三维同源图形引擎设计方法,包括如下步骤:步骤s1、构建包含各元素的视图场景模型;所述元素为图层对象或可视化对象;步骤s2、对视图场景模型进行解析,得到各元素之间的可视化构成关系以及各元素的属性信息;步骤s3、根据各元素属性信息中的关联关系,调用对应的渲染方法;并基于一个封装渲染接口按照属性信息中的刷子属性对各元素进行渲染。
6.优选地,所述视图场景模型包括根节点、图层对象节点,可视化节点。
7.优选地,所述封装渲染接口包括二维接口或三维接口。
8.优选地,所述图层对象包括二维对象和三维对象,将二维和三维对象作为等同的元素在一个视图场景中进行组织管理,通过关联关系组建模型结构。
9.优选地,各节点对象通过不同的关系类型进行关联;所述关系类型包括可视化构
成关系,刷子使用关系和代理使用关系。
10.优选地,所述可视化构成关系,用于绘制时遍历对象结点的关联,从根结点开始从左到右进行深度遍历。
11.优选地,所述刷子使用关系包括刷子属性,所述刷子属性包括刷子种类、大小、颜色或涂刷方式;所述涂刷方式为自适应填充或平铺。
12.优选地,所述代理使用关系,用于描述渲染方法,三维接口采用调用opengl渲染代理;二维接口采用gdi渲染代理。
13.(三)有益效果本发明提供的地学二三维同源图形引擎设计方法,实现了一致性的对象关联和调用接口,提高了图形引擎设计的简洁性,最大程度提高了用户的体验感,提高工作效率。
附图说明
14.图1为本发明实施例地学二三维同源图形引擎设计方法流程图;图2为根据本发明示出的场景对象构成方式示意图;图3为根据本发明示出的实体对象之间的关联关系类型示意图;图4为根据本发明示出的视图场景调用关系示意图。
具体实施方式
15.下面结合附图及实施例对本发明进行详细说明如下。
16.如图1所示,本发明实施例提供一种地学二三维同源图形引擎设计方法,包括如下步骤:步骤s1、构建包含各元素的视图场景模型;所述元素为图层对象或可视化对象;步骤s2、对视图场景模型进行解析,得到各元素之间的可视化构成关系以及各元素的属性信息;步骤s3、根据各元素属性信息中的关联关系,调用对应的渲染方法;并基于一个封装渲染接口按照属性信息中的刷子属性对各元素进行渲染。
17.其中,所述视图场景模型包括根节点、图层对象节点,可视化节点,所述图层对象对应于图层对象节点,可视化对象对应于可视化对象节点;图层对象节点可作为其他图层对象节点和可视化对象节点的母节点。所述根节点下关联若干图层对象节点和可视化对象节点。
18.下面详细说明一下该地学二三维同源图形引擎设计方法的具体方法:图形引擎的设计涵盖很多模块和对象,这里只示例性描述在显示场景中,如何一致性的设计二三维视图、二三维可视化对象,以及对象之间的关系类型,从而实现同源设计的目的。图形引擎其余部分的设计方法在此不进行赘述,该设计方法具体包括:(一)一致性的视图场景模型设计首先是视图场景模型的设计和构建,视图场景模型是绘制屏幕上需要展示的所有对象的集合。对象又可分为图层对象和可视化对象,图层对象为许多特定的可视化对象的集合。程序在屏幕上绘制图形的时候,会读取该视图场景模型中所有对象的数据和绘制对象的方法,然后按照顺序逐层、逐个的绘制每个可视化对象。
19.一致性的视图场景模型设计核心思想是将二维三维对象作为等同的元素在一个视图场景中进行组织管理,而二者之间的区别则封装在不同的渲染代理中,从而大大简化了场景模型的复杂度。
20.在视图场景模型中只设置一个场景根对象结点,在其下面可以关联若干图层对象结点和可视化对象结点。图层对象下面可以同时关联图层对象和可视化对象。结点的关联是有顺序的,计算机在绘制场景的时候,会按照从左到右的顺序深度遍历这棵树型结构,先访问到的结点先画出来,在二维对象情况下后访问的结点图像会覆盖在前面的结点图像之上。图2是根据本发明示出的场景对象构成方式示意图。
21.(二)一致性的对象关联和调用接口定义视图场景模型建立后,需要对模型进行解析,才能让程序代码知道运行时具体如何操作,需要读取哪些属性信息,需要调用哪些渲染函数,从而循而有序的完成图形的绘制。这个解析过程,就是根据视图场景模型中各元素之间的具体的关联关系和元素的属性来实现的。
22.在场景中实体对象必须通过某个具体的关系类型进行关联。s1关系类型有3种,分别是可视化构成关系,刷子使用关系和代理使用关系。
23.(1)可视化构成关系,用于绘制时遍历对象结点的关联,从根结点开始从左到右进行深度遍历。
24.(2)刷子使用关系,用于描述如何使用刷子,属性信息包括刷子种类、大小、颜色、自适应填充还是平铺等。
25.(3)代理使用关系,用于描述渲染方法,调用opengl渲染代理(用于绘制三维对象)或者gdi渲染代理(用于绘制二维对象)。
26.每种关系类型的属性信息是不同的,用于描述这种关系的细节信息。图3是根据本发明示出的实体对象之间的关联关系类型示意图。
27.(三)二维绘制场景同时加入二维三维对象因为采用了同源的一致性设计方法,对视图场景模型的解析就变得简洁了许多,图形引擎对于系统前端的绘制请求,只需采用同一套方法即可实现。
28.当系统程序前端向图形引擎发出绘制二维或者三维视图请求后,图形引擎内部采用一致性的处理方式进行响应,最后的图形渲染由代理关系关联相应opengl(操作系统提供的用于三维图形渲染的函数包)的api或者gdi(操作系统提供的用于二维图形绘制的函数包)的api,从而实现了在图形引擎中的二三维同源设计的目的。图4是根据本发明示出的视图场景调用关系示意图。
29.以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1