專利名稱:基于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日
發明者楊成月, 李浩松, 陳升, 蘇文銀, 鄒海發, 江嘯 申請人:廈門億力吉奧信息科技有限公司, 國家電網公司