CN112686968A - 一种地学二三维同源图形引擎设计方法 - Google Patents
一种地学二三维同源图形引擎设计方法 Download PDFInfo
- Publication number
- CN112686968A CN112686968A CN202011576714.9A CN202011576714A CN112686968A CN 112686968 A CN112686968 A CN 112686968A CN 202011576714 A CN202011576714 A CN 202011576714A CN 112686968 A CN112686968 A CN 112686968A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- rendering
- graphic engine
- homologous
- brush
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000009877 rendering Methods 0.000 claims abstract description 28
- 238000013461 design Methods 0.000 claims abstract description 20
- 230000000007 visual effect Effects 0.000 claims abstract description 19
- 238000004806 packaging method and process Methods 0.000 claims abstract description 4
- 238000012800 visualization Methods 0.000 claims description 10
- 238000010422 painting Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 3
- 208000035126 Facies Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及地学地质图形处理技术领域,特别涉及一种地学二三维同源图形引擎设计方法。该方法包括如下步骤:构建包含各元素的视图场景模型;所述元素为图层对象或可视化对象;对视图场景模型进行解析,得到各元素之间的可视化构成关系以及各元素的属性信息;根据各元素属性信息中的关联关系,调用对应的渲染方法;并基于一个封装渲染接口按照属性信息中的刷子属性对各元素进行渲染。本发明提供的地学二三维同源图形引擎设计方法,实现了一致性的对象关联和调用接口,提高了图形引擎设计的简洁性,最大程度提高了用户的体验感,提高工作效率。
Description
技术领域
本发明涉及地学地质图形处理技术领域,特别涉及一种地学二三维同源图形引擎设计方法。
背景技术
在地学研究方面涉及到大量的二三维的地质图件,例如平面图,构造图,厚度图,沉积相图等。这些图件的绘制和展示需要用到专业的绘图软件,而图形引擎就是各种绘图软件的核心。图形引擎是一种底层的软件包,专门用来支持高层的图形绘制需求。对外封装了各种图形可视化相关的对象。用户可以采用面向对象的开发方法,直接用这些对象来搭建,管理场景,并指定把显示结果绘制到某个窗口。引擎内部会调用面向图形硬件的API,实现各个可视化对象的绘制。
目前,图形引擎对于二维和三维图形的绘制基本都是分别设计不同的流程逻辑进行实现,还没有统一的、一致的设计开发思想。图形引擎中对二维图形的绘制采用的是调用GDI接口的方式,三维图形的绘制采用的是OpenGL接口的方式,二者在面向对象开发时是分别用不同的流程逻辑来设计的。对于地学图形系统而言,经常需要对图形引擎进行个性化的扩展和丰富,每次系统的代码优化和改动,都需要分别对二维和三维的流程逻辑进行改动,代码编写和测试的重复工作量很大,而且用户体验感不高,工作效率较低。
发明内容
(一)要解决的技术问题
本发明提供了一种地学二三维同源图形引擎设计方法,以克服现有技术中二维图形和三维图形差异化设计问题,实现了一致性的对象定义和调用接口,提高了图形引擎设计的简洁性,减轻了代码编写量,降低了软件开发难度和复杂度等缺陷。
(二)技术方案
为解决上述问题,本发明提供一种地学二三维同源图形引擎设计方法,包括如下步骤:
步骤S1、构建包含各元素的视图场景模型;所述元素为图层对象或可视化对象;
步骤S2、对视图场景模型进行解析,得到各元素之间的可视化构成关系以及各元素的属性信息;
步骤S3、根据各元素属性信息中的关联关系,调用对应的渲染方法;并基于一个封装渲染接口按照属性信息中的刷子属性对各元素进行渲染。
优选地,所述视图场景模型包括根节点、图层对象节点,可视化节点。
优选地,所述封装渲染接口包括二维接口或三维接口。
优选地,所述图层对象包括二维对象和三维对象,将二维和三维对象作为等同的元素在一个视图场景中进行组织管理,通过关联关系组建模型结构。
优选地,各节点对象通过不同的关系类型进行关联;所述关系类型包括可视化构成关系,刷子使用关系和代理使用关系。
优选地,所述可视化构成关系,用于绘制时遍历对象结点的关联,从根结点开始从左到右进行深度遍历。
优选地,所述刷子使用关系包括刷子属性,所述刷子属性包括刷子种类、大小、颜色或涂刷方式;所述涂刷方式为自适应填充或平铺。
优选地,所述代理使用关系,用于描述渲染方法,三维接口采用调用OpenGL渲染代理;二维接口采用GDI渲染代理。
(三)有益效果
本发明提供的地学二三维同源图形引擎设计方法,实现了一致性的对象关联和调用接口,提高了图形引擎设计的简洁性,最大程度提高了用户的体验感,提高工作效率。
附图说明
图1为本发明实施例地学二三维同源图形引擎设计方法流程图;
图2为根据本发明示出的场景对象构成方式示意图;
图3为根据本发明示出的实体对象之间的关联关系类型示意图;
图4为根据本发明示出的视图场景调用关系示意图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明如下。
如图1所示,本发明实施例提供一种地学二三维同源图形引擎设计方法,包括如下步骤:
步骤S1、构建包含各元素的视图场景模型;所述元素为图层对象或可视化对象;
步骤S2、对视图场景模型进行解析,得到各元素之间的可视化构成关系以及各元素的属性信息;
步骤S3、根据各元素属性信息中的关联关系,调用对应的渲染方法;并基于一个封装渲染接口按照属性信息中的刷子属性对各元素进行渲染。
其中,所述视图场景模型包括根节点、图层对象节点,可视化节点,所述图层对象对应于图层对象节点,可视化对象对应于可视化对象节点;图层对象节点可作为其他图层对象节点和可视化对象节点的母节点。所述根节点下关联若干图层对象节点和可视化对象节点。
下面详细说明一下该地学二三维同源图形引擎设计方法的具体方法:
图形引擎的设计涵盖很多模块和对象,这里只示例性描述在显示场景中,如何一致性的设计二三维视图、二三维可视化对象,以及对象之间的关系类型,从而实现同源设计的目的。图形引擎其余部分的设计方法在此不进行赘述,该设计方法具体包括:
(一)一致性的视图场景模型设计
首先是视图场景模型的设计和构建,视图场景模型是绘制屏幕上需要展示的所有对象的集合。对象又可分为图层对象和可视化对象,图层对象为许多特定的可视化对象的集合。程序在屏幕上绘制图形的时候,会读取该视图场景模型中所有对象的数据和绘制对象的方法,然后按照顺序逐层、逐个的绘制每个可视化对象。
一致性的视图场景模型设计核心思想是将二维三维对象作为等同的元素在一个视图场景中进行组织管理,而二者之间的区别则封装在不同的渲染代理中,从而大大简化了场景模型的复杂度。
在视图场景模型中只设置一个场景根对象结点,在其下面可以关联若干图层对象结点和可视化对象结点。图层对象下面可以同时关联图层对象和可视化对象。结点的关联是有顺序的,计算机在绘制场景的时候,会按照从左到右的顺序深度遍历这棵树型结构,先访问到的结点先画出来,在二维对象情况下后访问的结点图像会覆盖在前面的结点图像之上。图2是根据本发明示出的场景对象构成方式示意图。
(二)一致性的对象关联和调用接口定义
视图场景模型建立后,需要对模型进行解析,才能让程序代码知道运行时具体如何操作,需要读取哪些属性信息,需要调用哪些渲染函数,从而循而有序的完成图形的绘制。这个解析过程,就是根据视图场景模型中各元素之间的具体的关联关系和元素的属性来实现的。
在场景中实体对象必须通过某个具体的关系类型进行关联。S1关系类型有3种,分别是可视化构成关系,刷子使用关系和代理使用关系。
(1)可视化构成关系,用于绘制时遍历对象结点的关联,从根结点开始从左到右进行深度遍历。
(2)刷子使用关系,用于描述如何使用刷子,属性信息包括刷子种类、大小、颜色、自适应填充还是平铺等。
(3)代理使用关系,用于描述渲染方法,调用OpenGL渲染代理(用于绘制三维对象)或者GDI渲染代理(用于绘制二维对象)。
每种关系类型的属性信息是不同的,用于描述这种关系的细节信息。图3是根据本发明示出的实体对象之间的关联关系类型示意图。
(三)二维绘制场景同时加入二维三维对象
因为采用了同源的一致性设计方法,对视图场景模型的解析就变得简洁了许多,图形引擎对于系统前端的绘制请求,只需采用同一套方法即可实现。
当系统程序前端向图形引擎发出绘制二维或者三维视图请求后,图形引擎内部采用一致性的处理方式进行响应,最后的图形渲染由代理关系关联相应OpenGL(操作系统提供的用于三维图形渲染的函数包)的API或者GDI(操作系统提供的用于二维图形绘制的函数包)的API,从而实现了在图形引擎中的二三维同源设计的目的。图4是根据本发明示出的视图场景调用关系示意图。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (8)
1.一种地学二三维同源图形引擎设计方法,其特征在于,包括如下步骤:
步骤S1、构建包含各元素的视图场景模型;所述元素为图层对象或可视化对象;
步骤S2、对视图场景模型进行解析,得到各元素之间的可视化构成关系以及各元素的属性信息;
步骤S3、根据各元素属性信息中的关联关系,调用对应的渲染方法;并基于一个封装渲染接口按照属性信息中的刷子属性对各元素进行渲染。
2.如权利要求1所述的地学二三维同源图形引擎设计方法,其特征在于,所述视图场景模型包括根节点、图层对象节点,可视化节点。
3.如权利要求1所述的地学二三维同源图形引擎设计方法,所述封装渲染接口包括二维接口或三维接口。
4.如权利要求1所述的地学二三维同源图形引擎设计方法,所述图层对象包括二维对象和三维对象,将二维和三维对象作为等同的元素在一个视图场景中进行组织管理,通过关联关系组建模型结构。
5.如权利要求2所述的地学二三维同源图形引擎设计方法,其特征在于,各节点对象通过不同的关系类型进行关联;所述关系类型包括可视化构成关系,刷子使用关系和代理使用关系。
6.如权利要求5所述的地学二三维同源图形引擎设计方法,其特征在于,所述可视化构成关系,用于绘制时遍历对象结点的关联,从根结点开始从左到右进行深度遍历。
7.如权利要求5所述的地学二三维同源图形引擎设计方法,其特征在于,所述刷子使用关系包括刷子属性,所述刷子属性包括刷子种类、大小、颜色或涂刷方式;所述涂刷方式为自适应填充或平铺。
8.如权利要求5所述的地学二三维同源图形引擎设计方法,其特征在于,所述代理使用关系,用于描述渲染方法,三维接口采用调用OpenGL渲染代理;二维接口采用GDI渲染代理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011576714.9A CN112686968A (zh) | 2020-12-28 | 2020-12-28 | 一种地学二三维同源图形引擎设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011576714.9A CN112686968A (zh) | 2020-12-28 | 2020-12-28 | 一种地学二三维同源图形引擎设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112686968A true CN112686968A (zh) | 2021-04-20 |
Family
ID=75452234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011576714.9A Pending CN112686968A (zh) | 2020-12-28 | 2020-12-28 | 一种地学二三维同源图形引擎设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112686968A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113181657A (zh) * | 2021-04-30 | 2021-07-30 | 北京读我网络技术有限公司 | 一种跨平台渲染方法及装置 |
CN116933346A (zh) * | 2023-09-14 | 2023-10-24 | 北京盈建科软件股份有限公司 | 一种将三维智能部件引入二维cad专业辅助设计系统的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107808009A (zh) * | 2017-11-17 | 2018-03-16 | 湖南优图信息技术有限公司 | 一种基于Stamp平台的二三维地图联动方法 |
-
2020
- 2020-12-28 CN CN202011576714.9A patent/CN112686968A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107808009A (zh) * | 2017-11-17 | 2018-03-16 | 湖南优图信息技术有限公司 | 一种基于Stamp平台的二三维地图联动方法 |
Non-Patent Citations (1)
Title |
---|
冯治东: "矿体三维可视化建模技术研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113181657A (zh) * | 2021-04-30 | 2021-07-30 | 北京读我网络技术有限公司 | 一种跨平台渲染方法及装置 |
CN113181657B (zh) * | 2021-04-30 | 2024-04-05 | 北京读我网络技术有限公司 | 一种跨平台渲染方法及装置 |
CN116933346A (zh) * | 2023-09-14 | 2023-10-24 | 北京盈建科软件股份有限公司 | 一种将三维智能部件引入二维cad专业辅助设计系统的方法 |
CN116933346B (zh) * | 2023-09-14 | 2023-12-15 | 北京盈建科软件股份有限公司 | 一种将三维智能部件引入二维cad专业辅助设计系统的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100962920B1 (ko) | 비주얼 및 장면 그래프 인터페이스 | |
Haimes et al. | The engineering sketch pad: A solid-modeling, feature-based, web-enabled system for building parametric geometry | |
KR100996738B1 (ko) | 벡터 그래픽을 위한 마크업 언어 및 오브젝트 모델 | |
KR101130407B1 (ko) | 향상된 그래픽 파이프라인을 제공하는 시스템 및 방법 | |
EP0727076B1 (en) | Object-oriented graphic system and method | |
EP0713594B1 (en) | Object-oriented rendering system | |
US10262392B2 (en) | Distributed and parallelized visualization framework | |
JP4188962B2 (ja) | グラフィック出力装置上に表示可能なシーンの表現を創成する方法、データ処理システム、及びグラフィック出力装置上に表示可能なシーンの表現を創成する装置 | |
CN112686968A (zh) | 一种地学二三维同源图形引擎设计方法 | |
Chaturvedi et al. | Web-based Exploration of and interaction with large and deeply structured semantic 3D city models using HTML5 and WebGL | |
CN109783442A (zh) | 一种基于Redis和Mongodb的IFC模型存储方式 | |
CN104240148A (zh) | 一种基于插件的电网可视化方法 | |
CN106846431B (zh) | 一种支持多表现形式的统一Web图形绘制系统 | |
CN109634611B (zh) | 基于OpenGL的移动端三维模型ply文件解析与展示方法 | |
CN111429587A (zh) | 一种三维设计模型的显示方法、终端及存储介质 | |
CN109032951A (zh) | 一种检测客户端运行OpenGL版本的方法、系统、服务器及存储介质 | |
CN116402937A (zh) | 一种基于web的复杂数据3D可视化简化开发方法 | |
CN117557682B (zh) | 数据处理方法、装置、产品、设备和介质 | |
CN114969171B (zh) | 时空一致的数据展示与回放方法、装置、设备及存储介质 | |
CN112348934B (zh) | 基于大链表的游戏贴图展示方法、装置及介质 | |
US20220107948A1 (en) | System and method for mobile device rendering engine for use with a data analytics environment | |
Alexandre-Barff et al. | A GPU-based Out-of-core Architecture for Interactive Visualization of AMR Time Series Data. | |
KR100366380B1 (ko) | 분산협력 시스템 환경하에서 쓰리디 스튜디오 맥스플러그인을 이용한 쓰리디 객체 공유방법 | |
Jern | Visualization of scientific data | |
CN115239895A (zh) | Gis水环境3d地图的海量数据加载及优化渲染方法 |
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: 20210420 |