基于GPU的电力WebGIS矢量实时绘制方法及装置的制作方法

文档序号:6381299阅读:338来源:国知局
专利名称:基于GPU的电力WebGIS矢量实时绘制方法及装置的制作方法
技术领域
本发明涉及一种电力系统数据绘制方法,尤其是指一种基于GPU的电力WebGIS矢量实时绘制方法及装置。
背景技术
随着全国范围电网建设和改造工程的展开,为了满足电网“安全、可靠、优质、高效”的要求,需要利用信息技术进行规划设计,增强对电网设备的管理和监控,提高供电可靠性,实现电网数字化和信息化,从而为用户提供高效、优质、安全的服务。电力 WebGIS (GIS !Geographic In formation System,是一种基于 B/S 架构,应用于电力系统的网络地理信息系统,它能够实现电网各类数据的集中共享,整合电力系统 各类应用,从而达到电网信息融合的目标。但是由于电力行业具有数据量大、变化频繁等特征,单纯的利用GIS缓存地图已无法满足数据的实时性。矢量实时绘制技术是利用客户端技术动态的对电力数据进行绘制,该技术不仅可以保证数据更新及展现的实时性,还能够对绘制内容进行任意的缩放而不改变其精度。现有的电力WebGIS系统中已有很多种实现矢量实时绘制的方案,例如Java Applet、Flash、Silverlight、Active X控件、SVG和VML等。这些绘制方案都具有其共同的特征,只能单一的依靠计算机的CPU和内存进行数据运算和图形渲染,然而CPU并非专业的图形处理硬件,因此即便CPU性能再高,也无法满足大批量电力数据在矢量实时绘制时的性能需求。图1为现有的电力WebGIS矢量实时绘制方案。如图1所示,电力数据通过服务端传递给客户端,客户端可利用各种插件(Flash、SVG、Silverlight等)对电力数据进行解析和处理,接着由插件将渲染指令提交给CPU,通过CPU将计算结果绘制在屏幕上。从上述方案可看出,现有的矢量绘制技术需要大量的利用CPU资源,由于CPU并非设计为专业的图形处理硬件,当遭遇大数据量渲染时,它将无法应对。

发明内容
本发明的目的在于克服了上述缺陷,提供一种基于GPU的电力WebGIS矢量实时绘制方法及装置。本发明的目的是这样实现的本发明的有益效果在于有效的将GPU硬件加速技术与电力WebGIS矢量实时绘制相结合,借助GPU硬件加速技术的高效图形渲染功能,及大批量数据矢量绘制的性能,大大的增强了客户端的高效性和实时性。此外本方案借助GPU的异步响应的能力,使得系统在绘制时能提供快捷的界面响应时间,从而提高了用户体验,为电网大批量数据矢量绘制提供了有效直观的解决方案。


下面结合附图详述本发明的具体结构
图1为现有电力WebGIS矢量实时绘制方法流程图;图2为本发明的电力WebGIS矢量实时绘制方法流程图;图3为本发明的实施例的矢量绘制流程具体实施例方式为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。请参阅图2、3,本发明提供了一种基于GPU的电力WebGIS矢量实时绘制方法,该方法是在Internet网络上通过主流客户端技术,结合GPU硬件加速来实现大批量电力数据绘制的方法,方法大体为根据用户视窗大小,运算出当前需要呈现的矢量对象,如果矢量对象为线或面,则进行适当的裁减。根据矢量对象信息动态创建纹理,运用Stage3D技术,调用0penGL/ES2或DirectX,最后通过GPU进行渲染和呈现。其具体包括步骤A)、获取电力数据并对其解析计算获得需要呈现的矢量对象;此处的矢量对象是由顶点组成的。较佳的,本步骤具体包括Al)、电力数据获取,通过通讯协议从服务器获取到电力数据。最佳的本步骤是通过HTTP通讯协议利用WebService技术从服务器获取到电力数据。电力数据服务是电力数据传输的跳梁,它负责电力数据库的添、删、改、查,当客户端需要数据时,通过HTTP协议向服务发布数据请求信息,数据服务再从数据库中读取合适的电力数据,并以XML的格式返回给客户端。A2)、电力数据解析,解析电力数据得到数据相关的属性信息和几何信息。最佳的,对应上述步骤利用WebService技术从服务器获取到电力数据,此步骤利用XML技术解析电力数据。此处的属性信息在本专利中的矢量绘制并不使用,但是电力数据中必然包括属性信息,否则该数据失去意义。本步骤电力数据解析的目的是要将文本格式的电力数据转换为内存对象。A3)、矢量对象计算,将获取到的几何信息进行拆分后绘制得到矢量对象。由于电力数据的几何符号十分复杂,而绘图API只能绘制简单的单元符号,因此需将其进行拆分组装,因此最佳的,本步骤首先1、是将几何信息进行拆分成包括点、线、面(point\polyLine\Polygon)的单元符号,然后2、利用客户端的绘图API将拆解之后的单元符号进行后台绘制得到矢量对象,从而作为纹理创建的素材,而并不需要上传至CPU进行呈现。B)、对需要呈现的矢量对象进行视窗裁剪;较佳的,本步骤是通过计算获取到需要呈现的矢量对象所对应的屏幕的坐标,将该坐标与当前的窗口的坐标进行裁剪运算,获取到窗口范围内的需要呈现的矢量对象的信息的。最佳的,具体包括步骤,BI)、坐标转换,由于电力数据往往具有其自身的坐标系统,与客户端的窗口坐标系不一致,为了能够进行坐标的裁剪,需要通过旋转、平移将电力数据的需要呈现的矢量对象的坐标转换到窗口坐标系中;需要指出的是,此处的窗口坐标与前述屏幕坐标并非同一东西,其中屏幕坐标是相对于整个显示器屏幕的坐标,窗口坐标则是相对于应用程序的窗口的坐标,比如word
窗口等,QQ窗口等。B2)、窗口裁剪,转换后的电力数据有很大一部分是超出了窗口可见范围的,因此需要对不可见的部分进行裁剪,以节省矢量绘制的数据量。通过窗口的矩形范围与需要呈现的矢量对象的坐标求交集,得到窗口范围内的可见需要呈现的矢量对象的信息的集合,并将该集合保存。C)、利用Stage3D技术对需要呈现的矢量对象动态创建纹理。此处的Stage3D技术指的是由Adobe开发并且由新的Stage3D API支持的新的2D和3D渲染方法/模型——这是一组支持GPU加速的低级API。较佳的,此步骤是利用Stage3D技术将需要呈现的矢量对象创建为纹理并存储在内存中的。最佳的具体包括步骤,Cl)、位图创建,对裁剪好的矢量对象进行位图创建从而将矢量数据转换为栅格数据;本步骤是将矢量数据转换为栅格数据的过程,因为栅格数据能够更快速地被GPU渲染。C2)、纹理创建,利用Stage3D的API对创建好的位图进行纹理创建,并上传至GPU。该纹理可以被GPU识别,用于渲染和呈现。D)、编写GPU着色器信息后向GPU发布包括坐标转换、色彩转换、纹理映射等的渲染指令,随后将裁剪好的矢量对象的纹理及裁剪好的矢量对象的顶点信息上传至GPU,由GPU进行绘制和呈现。此处的顶点信息包括有顶点的坐标信息和顶点的纹理坐标信息,格式为(X,Y,Z, U,V)。而纹理则是按照顶点信息中的纹理坐标进行渲染的。此处最终GPU进行的绘制和呈现中绘制,指的是GPU根据裁剪好的矢量对象的纹理及裁剪好的矢量对象的顶点信息进行计算后绘制出模型,而呈现则主要是GPU与用户显示器之间的协同将绘制出的模型最终通过画面展示的过程。最佳的本步骤包括,Dl )、编写GPU指令;GPU指令是通知GPU如何操作的信息,通过编写GPU指令指示并将纹理、顶点和转换矩阵上传到GPU的寄存器中,GPU就可以进行渲染输出。D2)、顶点着色器处理,对裁剪好的矢量对象的各个顶点的包括坐标、颜色的信息进行计算;D3)、像素着色器处理,根据预先设置好纹理的U/V坐标将纹理映射到几何体的各个顶点上并根据裁剪好的矢量对象的每个像素的信息进行计算。在该着色器中需要将纹理映射到几何体的各个顶点上,因此需要预先设置好纹理的U/V坐标。而计算则是GPU根据每个顶点上的像素信息,对整个矢量对象上的每一个点进行插值计算。比如一个正方形有四个顶点,但是屏幕要显示,需要它内部所有点的像素值,这些值就是由这四个顶点的值进行插值计算得到的。本发明还涉及一种基于GPU的电力WebGIS矢量实时绘制装置,它包括有获取模块,用于获取电力数据并对其解析计算获得需要呈现的矢量对象;裁剪模块,用于对需要呈现的矢量对象进行视窗裁剪;最佳的,用于通过计算获取到需要呈现的矢量对象所对应的屏幕的坐标,将该坐标与当前的窗口的坐标进行裁剪运算,获取到窗口范围内的需要呈现的矢量对象的信息的;
纹理创建模块,用于利用Stage3D技术对需要呈现的矢量对象动态创建纹理;最佳的,用于利用Stage3D技术将需要呈现的矢量对象创建为纹理并存储在内存中的;绘制和呈现模块,用于编写GPU着色器信息后向GPU发布包括坐标转换、色彩转换、纹理映射等的渲染指令,随后将裁剪好的矢量对象的纹理及裁剪好的矢量对象的顶点信息上传至GPU,由GPU进行绘制和呈现。其中,上述,获取模块包括电力数据获取单元,用于通过通讯协议从服务器获取到电力数据;最佳的,用于通过HTTP通讯协议利用WebService技术从服务器获取到电力数据。电力数据服务是电力数据传输的跳梁,它负责电力数据库的添、删、改、查,电力数据获取单元的作用是,当客户端需要数据时,通过HTTP协议向服务发布数据请求信息,数据服务再从数据库中读取合适的电力数据,并以XML的格式返回给客户端。电力数据解析单元,用于解析电力数据得到数据相关的属性信息和几何信息;最佳的,对应电力数据获取单元利用WebService技术从服务器获取到电力数据,电力数据解析单元是用于利用XML技术解析电力数据的。本电力数据解析单元所进行的电力数据解析的目的是要将文本格式的电力数据转换为内存对象。矢量对象计算单元,用于将获取到的几何信息进行拆分后绘制得到矢量对象;由于电力数据的几何符号十分复杂,而绘图API只能绘制简单的单元符号,因此需矢量对象计算单元将其进行拆分组装,因此最佳的,本矢量对象计算单元是用于首先1、将几何信息进行拆分成包括点、线、面(point\polyLine\Polygon)的单元符号,然后2、利用客户端的绘图API将拆解之后的单元符号进行后台绘制得到矢量对象,从而作为纹理创建的素材,而并不需要上传至CPU进行呈现。裁剪模块包括坐标转换单元,用于通过旋转、平移将电力数据的需要呈现的矢量对象的坐标转换到窗口坐标系中;由于电力数据往往具有其自身的坐标系统,与客户端的窗口坐标系不一致,为了能够进行坐标的裁剪,需要坐标转换单元的处理。窗口裁剪单元,通过窗口的矩形范围与需要呈现的矢量对象的坐标求交集,得到窗口范围内的可见需要呈现的矢量对象的信息的集合,并将该集合保存。转换后的电力数据有很大一部分是超出了窗口可见范围的,因此需要窗口裁剪单元对不可见的部分进行裁剪,以节省矢量绘制的数据量。纹理创建模块包括位图创建单元,用于对裁剪好的矢量对象进行位图创建从而将矢量数据转换为栅格数据;本位图创建单元主要是将矢量数据转换为栅格数据,因为栅格数据能够更快速地被GPU渲染。纹理创建单元,利用Stage3D的API对创建好的位图进行纹理创建,并上传至GPU。通过纹理创建单元创建的纹理可以被GPU识别,用于渲染和呈现。
绘制和呈现模块包括GPU指令编写单元;GPU指令是通知GPU如何操作的信息,通过编写GPU指令指示并将纹理、顶点和转换矩阵上传到GPU的寄存器中,GPU就可以进行渲染输出。顶点着色器处理单元,用于对裁剪好的矢量对象的各个顶点的包括坐标、颜色的信息进行计算;像素着色器处理单元,用于根据预先设置好纹理的U/V坐标将纹理映射到几何体的各个顶点上并根据裁剪好的矢量对象的每个像素的信息进行计算。综上可见,本发明的有益效果在于有效的将GPU硬件加速技术与电力WebGIS矢量实时绘制相结合,借助GPU硬件加速技术的高效图形渲染功能,及大批量数据矢量绘制的性能,大大的增强了客户端的高效性和实时性。此外本方案借助GPU的异步响应的能力,使得系统在绘制时能提供快捷的界面响应时间,从而提高了用户体验,为电网大批量数据矢量绘制提供了有效直观的解决方案。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种基于GPU的电力WebGIS矢量实时绘制方法,其特征在于它包括步骤, A)、获取电力数据并对其解析计算获得需要呈现的矢量对象; B)、对需要呈现的矢量对象进行视窗裁剪; C)、利用Stage3D技术对需要呈现的矢量对象动态创建纹理; D)、编写GPU着色器信息后向GPU发布包括坐标转换、色彩转换、纹理映射等的渲染指令,随后将裁剪好的矢量对象的纹理及裁剪好的矢量对象的顶点信息上传至GPU,由GPU进行绘制和呈现。
2.如权利要求1所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤A具体包括步骤, Al)、电力数据获取,通过通讯协议从服务器获取到电力数据; A2)、电力数据解析,解析电力数据得到数据相关的属性信息和几何信息; A3)、矢量对象计算,将获取到的几何信息进行拆分后绘制得到矢量对象。
3.如权利要求2所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤A3具体为,将几何信息进行拆分成包括点、线、面的单元符号,然后利用绘图API将拆解之后的单元符号进行后台绘制得到矢量对象。
4.如权利要求1所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤B具体包括,通过计算获取到需要呈现的矢量对象所对应的屏幕坐标,将该坐标与当前的窗口的坐标进行裁剪运算,获取到窗口范围内的需要呈现的矢量对象的信息。
5.如权利要求4所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤B包括, BI)、坐标转换,通过旋转、平移将电力数据的需要呈现的矢量对象的坐标转换到窗口坐标系中; B2)、窗口裁剪,通过窗口的矩形范围与需要呈现的矢量对象的坐标求交集,得到窗口范围内的可见需要呈现的矢量对象的信息的集合,并将该集合保存。
6.如权利要求1所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤C具体为,利用Stage3D技术将需要呈现的矢量对象创建为纹理并存储在内存中。。
7.如权利要求6所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤C包括, Cl)、位图创建,对裁剪好的矢量对象进行位图创建从而将矢量数据转换为栅格数据; C2)、纹理创建,利用Stage3D的API对创建好的位图进行纹理创建,并上传至GPU。
8.如权利要求1所述的基于GPU的电力WebGIS矢量实时绘制方法,其特征在于所述步骤D包括, D1)、编写GPU指令; D2)、顶点着色器处理,对裁剪好的矢量对象的各个顶点的包括坐标、颜色的信息进行计算; D3)、像素着色器处理,根据预先设置好纹理的U/V坐标将纹理映射到几何体的各个顶点上并根据裁剪好的矢量对象的每个像素的信息进行计算。
9.一种基于GPU的电力WebGIS矢量实时绘制装置,其特征在于它包括, 获取模块,用于获取电力数据并对其解析计算获得需要呈现的矢量对象;裁剪模块,用于对需要呈现的矢量对象进行视窗裁剪; 纹理创建模块,用于利用Stage3D技术对需要呈现的矢量对象动态创建纹理; 绘制和呈现模块,用于编写GPU着色器信息后向GPU发布包括坐标转换、色彩转换、纹理映射等的渲染指令,随后将裁剪好的矢量对象的纹理及裁剪好的矢量对象的顶点信息上传至GPU,由GPU进行绘制和呈现。
10.如权利要求9所述的基于GPU的电力WebGIS矢量实时绘制装置,其特征在于 所述获取模块包括, 电力数据获取单元,用于通过通讯协议从服务器获取到电力数据; 电力数据解析单元,用于解析电力数据得到数据相关的属性信息和几何信息; 矢量对象计算单元,用于将获取到的几何信息进行拆分后绘制得到矢量对象; 所述裁剪模块包括, 坐标转换单元,用于通过旋转、平移将电力数据的需要呈现的矢量对象的坐标转换到窗口坐标系中; 窗口裁剪单元,通过窗口的矩形范围与需要呈现的矢量对象的坐标求交集,得到窗口范围内的可见需要呈现的矢量对象的信息的集合,并将该集合保存; 所述纹理创建模块包括, 位图创建单元,用于对裁剪好的矢量对象进行位图创建从而将矢量数据转换为栅格数据; 纹理创建单元,利用Stage3D的API对创建好的位图进行纹理创建,并上传至GPU ; 所述绘制和呈现模块包括, GPU指令编写单元; 顶点着色器处理单元,用于对裁剪好的矢量对象的各个顶点的包括坐标、颜色的信息进行计算; 像素着色器处理单元,用于根据预先设置好纹理的U/V坐标将纹理映射到几何体的各个顶点上并根据裁剪好的矢量对象的每个像素的信息进行计算。
全文摘要
本发明提供了一种基于GPU的电力WebGIS矢量实时绘制方法及装置,通过电力线数据获取、窗口裁剪、纹理创建及GPU绘制和呈现,从而有效的将GPU硬件加速技术与电力WebGIS矢量实时绘制相结合,借助GPU硬件加速技术的高效图形渲染功能,及大批量数据矢量绘制的性能,大大的增强了客户端的高效性和实时性。此外本方案借助GPU的异步响应的能力,使得系统在绘制时能提供快捷的界面响应时间,从而提高了用户体验,为电网大批量数据矢量绘制提供了有效直观的解决方案。
文档编号G06T15/04GK102999880SQ20121045781
公开日2013年3月27日 申请日期2012年11月14日 优先权日2012年11月14日
发明者杨成月, 李浩松, 陈升, 苏文银, 邹海发, 江啸 申请人:厦门亿力吉奥信息科技有限公司, 国家电网公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1