一种基于OPENGL的WMF消防图形处理方法及装置与流程

文档序号:18899292发布日期:2019-10-18 21:42阅读:212来源:国知局
一种基于OPENGL的WMF消防图形处理方法及装置与流程

本发明涉及消防管理技术领域,具体涉及一种基于opengl的wmf消防图形处理方法及装置。



背景技术:

消防控制室图形显示装置是消防联动控制系统中的一个图形显示装置,它在消防控制室内,是可将所有消防设备的动态信息进行图形化实时显示和查询的监视装置,其主要功能是接收并显示各类消防设备的报警信号和实时工作状态并将此类信息传输到消防智慧物联网系统。图形处理技术是图形显示装置的核心功能,图形处理技术的优劣直接影响图形显示装置显示和查询信息的效率和性能。《gb16806-2006消防联动控制系统》规定报警(火警)信号发出后要在3s内在图形显示装置上进行图形化显示,图纸加载时间和图形处理速度过慢或卡顿会直接影响消防报警信息的传达和消防救援策略的制定,严重时甚至会造成不可估量的损失。

《ga/t847-2009消防控制室图形显示装置软件通用技术要求》规定消防控制室图形显示装置软件调用的建筑图应优先采用wmf文件格式。wmf图形格式文件有结构公开、解析简便的优点,并且,能够从cad建筑图纸直接导出,软件开发成本低,目前市场上主流的消防厂家均采用解析wmf文件的技术作为图形显示装置软件的图形处理技术。

但是,现有的wmf图形文件处理技术是解析wmf文件后直接在cpu端进行图形渲染,由于需要同时进行通讯传输、事件解析和数据库操作等工作,cpu处于高负荷运转状态,在加载和操作大容量建筑图纸和大量设备图元时,图形处理速度缓慢,有明显的卡顿现象,并且更换高配置cpu或扩展内存容量时性能提升效果不显著。



技术实现要素:

为了克服现有技术的不足,现提出一种基于opengl的wmf消防图形处理方法及装置,减轻了计算机cpu的处理负荷,提高了加载和操作大容量建筑图纸和大量设备图元时的处理速度。

本发明提出了一种基于opengl的wmf消防图形处理方法,包括:解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据;

调整各个所述图元元数据的顶点坐标,使各个所述顶点坐标均围绕原点分布;

在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个所述图元元数据;

获取设备图元数据,在所述图形处理器的内存中存储所述图元数据;

按照消防设备的图元的标识号,在所述图形处理器的内存中寻找相匹配的所述图元元数据和所述图元数据,由所述图形处理器在所述内存中绘制消防设备的图元。

进一步的,所述解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据的步骤,包括:

解析wmf消防图形文件中的每一个绘制命令,将各个所述绘制命令中需要绘制的图元按照开放式图形库支持的图元类型进行存储;

提取并记录需要绘制的所述图元的多个图元元数据,其中,所述多个图元元数据包括所述顶点坐标;

将多个所述图元元数据组成数组。

进一步的,所述调整各个所述图元元数据的顶点坐标,使各个所述顶点坐标均围绕原点分布的步骤,包括:

逐一比较所述数组中各个所述图元元数据的顶点坐标与原点之间的距离;

选出与原点距离最近的所述顶点坐标以及最远的所述顶点坐标;

计算距离最近的所述顶点坐标与最远的所述顶点坐标之间的中点的方向向量;

沿所述方向向量平移各个所述顶点坐标,使各个所述顶点坐标均围绕原点分布。

进一步的,所述在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个所述图元元数据的步骤,包括:

在开放式图形库中绘制世界坐标系、变换矩阵以及着色器,其中,所述着色器用于渲染建筑图纸图形;

为所述图形处理器匹配内存;

将各个所述图元元数据均存储到所述内存中。

进一步的,所述获取设备图元数据,在所述图形处理器的内存中存储所述图元数据的步骤,包括:

通过数据库或者布点操作获取设备图元数据;

将所述设备图元数据转化为开放式图形库支持的类型;

在所述图形处理器的内存中存储转化后的所述图元数据。

进一步的,所述按照消防设备的图元的标识号,在所述图形处理器的内存中寻找相匹配的所述图元元数据和所述图元数据,由所述图形处理器在所述内存中绘制消防设备的图元的步骤,包括:

所述图形处理器根据消防设备的图元的标识号在所述内存中寻址与所述标识号相匹配的所述图元元数据和所述图元数据;

所述图形处理器根据所述图元元数据和所述图元数据在所述内存中绘制消防设备的图元。

进一步的,所述图元类型包括点、线段、折线、三角形、扇形以及多边形。

本发明提出了一种基于opengl的wmf消防图形处理装置,包括:

解析模块,用于解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据;

调整模块,用于调整各个所述图元元数据的顶点坐标,使各个所述顶点坐标均围绕原点分布;

坐标系确定模块,用于在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个所述图元元数据;

存储模块,用于获取设备图元数据,在所述图形处理器的内存中存储所述图元数据;

绘制模块,用于按照消防设备的图元的标识号,在所述图形处理器的内存中寻找相匹配的所述图元元数据和所述图元数据,由所述图形处理器在所述内存中绘制消防设备的图元。

本发明提供了一种基于opengl的wmf消防图形处理方法及装置,其中,上述处理方法包括:首先,解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据,其次,调整各个图元元数据的顶点坐标,使各个顶点坐标均围绕原点分布,之后,在开放式图形库中绘制世界坐标系,并且,在图形处理器的内存中存储各个图元元数据,接着,获取设备图元数据,在图形处理器的内存中存储图元数据,然后,按照消防设备的图元的标识号,在图形处理器的内存中寻找相匹配的图元元数据和图元数据,由图形处理器在内存中绘制消防设备的图元,该处理方法中使用开放式图形库来绘制wmf消防图形,将图形渲染的工作交由gpu来处理,从而减轻了cpu的工作负荷,提高了加载和操作大容量建筑图纸和大量设备图元时的处理速度,保证了系统流畅运行,提高系统性能和用户的体验度。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。

附图说明

通过参照以下附图对非限制性实施例所作的详细描述,可以更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,这样,本发明的其它特征、目的和优点将会变得更明显。显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于opengl的wmf消防图形处理方法的流程图;

图2为本发明实施例提供的一种基于opengl的wmf消防图形处理装置的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

考虑到现有的wmf消防图形文件处理技术是解析wmf文件后直接由计算机的cpu进行图形渲染,本发明实施例提供了一种基于opengl的wmf消防图形处理方法及装置;该技术可以应用于消防图形处理及显示等场所中,该技术可采用相应的软件和硬件实现,以下对本发明实施例进行详细介绍。

实施例一:

首先,参照图1来描述本发明实施例提出的一种基于opengl的wmf消防图形处理方法,具体包括以下步骤:

步骤s101:解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据。

步骤s102:调整各个图元元数据的顶点坐标,使各个顶点坐标均围绕原点分布。

步骤s103:在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个图元元数据。

步骤s104:获取设备图元数据,在图形处理器的内存中存储图元数据。

步骤s105:按照消防设备的图元的标识号,在图形处理器的内存中寻找相匹配的图元元数据和图元数据,由图形处理器在内存中绘制消防设备的图元。

首先介绍下开放式图形库(或者叫做开放图形库)的英文全称opengraphicslibrary,简称为opengl。opengl是用于渲染2d、3d矢量图形的跨语言、跨平台的应用程序编程接口(api)。opengl的高效实现(利用了图形加速硬件)存在于windows,部分unix平台和macos,即opengl能与大多数的计算机兼容。并且,opengl规范描述了绘制2d和3d图形的抽象api,尽管这些api可以通过软件实现,但它是为大部分或者全部使用硬件加速而设计的。

其次介绍下图形处理器的英文全称为graphicsprocessingunit,英文简称gpu,gpu是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像运算工作的微处理器。gpu能够将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件。通常,图形处理器是显卡的处理器。

目前,gpu能与cpu进行良好的交互。例如,如果cpu想画一个二维图形,只需要发个指令给gpu,如“在坐标位置(x,y)处画个长和宽为a×b大小的长方形”,gpu就可以迅速计算出该图形的所有像素,并在显示器上指定位置画出相应的图形,画完后就通知cpu“我画完了”,然后等待cpu发出下一条图形指令。可见,通过gpu的设置,cpu就能够从图形处理的任务中解放出来,去执行其他更多的系统任务,进而可以大大提高计算机的整体性能。

下面对上述各个步骤进行逐一解释,具体的上述解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据的步骤,包括:

(1)解析wmf消防图形文件中的每一个绘制命令,将各个绘制命令中需要绘制的图元按照开放式图形库支持的图元类型进行存储。

由于,消防行业中规定消防控制室图形显示装置软件调用的建筑图应优先采用wmf文件格式。因此,在消防图形处理方法中先要解析wmf消防图形文件中的每一个绘制命令,以提取出每一个绘制命令中需要绘制的图元。当获取到图元后将其进行存储,具体的存储方式是按照开放式图形库支持的图元类型进行的。这里需要说明的是,上述图元类型包括点、线段、折线、三角形、扇形以及多边形。

(2)提取并记录需要绘制的图元的多个图元元数据,其中,多个图元元数据包括顶点坐标。

在存储完图元后,逐一提取并记录需要绘制的图元的多个图元元数据,例如,图元类型、图元的顶点数量、图元的顶点坐标数组、图元的索引、图元的颜色值等,在实际实施过程中,上述图元类型、图元的顶点数量、图元的顶点坐标数组、图元的索引、图元的颜色值等也可统一称为图元元数据。

(3)当获取到上述图元元数据后,将多个图元元数据组成数组。与其它形式相比,将多个图元元数据组成数组能够更加规范各个图元元数据的存储形式,同时,也更加方便图形处理器等通过统一的标号等进行调用。

上述调整各个图元元数据的顶点坐标,使各个顶点坐标均围绕原点分布的步骤,包括:

(1)在整理图元坐标的过程中,要逐一比较数组中各个图元元数据的顶点坐标与原点之间的距离,即计算每一个图元元数据的顶点坐标与原点之间的距离。

(2)当计算完所有顶点坐标与原点之间的距离后,比较各个距离的长短,选出与原点距离最近的顶点坐标以及最远的顶点坐标。

(3)当确定了与原点距离最近以及最远的顶点坐标后,计算距离最近的顶点坐标与最远的顶点坐标之间的中点的方向向量,以作为调整上述数组中图元的顶点坐标的基准。

(4)具体实施时,将上述数组中每一个图元元数据的顶点坐标沿上述方向向量进行平移,从而使各个顶点坐标均围绕原点分布。通过该处理步骤能够使图元坐标的分布更加均匀合理。

上述在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个图元元数据的步骤,包括:

(1)利用开放式图形库绘制消防设备的图元之前需要先对其进行设置,先在开放式图形库中绘制世界坐标系、变换矩阵以及着色器,其中,着色器用于渲染建筑图纸图形。通过本步骤实现对开放式图形库的初始化。

(2)之后为图形处理器匹配内存,由于,在图形处理的过程中需要实时保存处理的结果等,因此,需要为图形处理器匹配内存,以存储图元的顶点坐标和颜色值。

(3)此外,将各个图元元数据均存储到内存中,例如,上述图元类型、图元的顶点数量、图元的顶点坐标数组、图元的索引、图元的颜色值等均存储到内存中,以方便图形处理器调用。

上述获取设备图元数据,在图形处理器的内存中存储图元数据的步骤,包括:

(1)通过数据库或者布点操作获取设备图元数据,这样能够初始化设备图元。上述设备图元数据的获取方式的选取可根据情况进行灵活选取。

(2)在获取到设备图元数据后,将设备图元数据转化为开放式图形库支持的类型,以便为后续的绘制提供支持。

(3)并且,在图形处理器的内存中存储转化后的图元数据,具体的,在上述内存中存储设备图元的顶点坐标、纹理图片和纹理坐标,初始化用于绘制设备图元的纹理、变换矩阵和着色器。

上述按照消防设备的图元的标识号,在图形处理器的内存中寻找相匹配的图元元数据和图元数据,由图形处理器在内存中绘制消防设备的图元的步骤,包括:

(1)图形处理器根据消防设备的图元的标识号在内存中寻址与标识号相匹配的图元元数据和图元数据。

需要说明的是,上述标识号通常为图元的索引和类型,即具体实施时,根据上述索引和类型在内存中寻址相对应的图元元数据(例如,顶点坐标)和图元数据(例如,图元的颜色值),需要补充说明的是,标识号与图元元数据以及图元数据的匹配关系是预先设置的。

(2)当获取到上述相匹配的图元元数据和图元数据后,图形处理器根据图元元数据和图元数据在内存中绘制消防设备的图元。与现有的由cpu绘制消防设备的图元的方式不同,上述绘制的过程由图形处理器(gpu)处理,从而减轻了cpu的工作负荷,提高了加载和操作建筑图纸以及大量设备图元时的处理速度。

本发明实施例提供的一种基于opengl的wmf消防图形处理方法包括:首先,解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据,其次,调整各个图元元数据的顶点坐标,使各个顶点坐标均围绕原点分布,之后,在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个图元元数据,接着,获取设备图元数据,在图形处理器的内存中存储图元数据,然后,按照消防设备的图元的标识号,在图形处理器的内存中寻找相匹配的图元元数据和图元数据,由图形处理器在内存中绘制消防设备的图元,上述使用开放式图形库来绘制wmf消防图形的方法中,将图形渲染的工作交由gpu来处理,大大减轻了cpu的工作负荷,这样能够提高加载和操作大容量建筑图纸和大量设备图元时的处理速度,进一步保证了消防报警信息快速有效的传达。

实施例二:

参照图2来描述本发明实施例提出的一种基于opengl的wmf消防图形处理装置,该处理装置具体包括:

解析模块,用于解析wmf消防图形文件中的每一个绘制命令,获得多个图元元数据;

调整模块,用于调整各个图元元数据的顶点坐标,使各个顶点坐标均围绕原点分布;

坐标系确定模块,用于在开放式图形库中绘制世界坐标系,且,在图形处理器的内存中存储各个图元元数据;

存储模块,用于获取设备图元数据,在图形处理器的内存中存储图元数据;

绘制模块,用于按照消防设备的图元的标识号,在图形处理器的内存中寻找相匹配的图元元数据和图元数据,由图形处理器在内存中绘制消防设备的图元。

本发明实施例提供的一种基于opengl的wmf消防图形处理装置,与上述实施例提供的一种基于opengl的wmf消防图形处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1