肖林華
基于OSG的輸電網三維可視化系統研究
肖林華
隨著智能電網建設的加快,輸電網的建設、設計、運營管理具有更高的要求,輸電網三維可視化變得更加重要。為了更形象直觀地展示輸電網三維形態及其地形地貌,自然災害等場景,本文設計并實現了一種基于開源軟件OSG的輸電網三維可視化系統。該系統實現了輸電塔及其輸電線路三維演示,輸電網場景漫游、縮放等基本人機交互功能,同時重點研究了輸電網路徑漫游,輸電網單位組件的實時信息顯示,對我國輸電網建設和防災減災的工程具有廣泛的應用前景和現實意義。
隨著電網的迅速發展,我國已經基本形成了“西電東送、南北互供、全國聯網”的總體格局,特別是近期未來電網的提出,輸電線路的建設將繼續加大。在建設過程中輸電線翻山越嶺,所在地周邊地理條件異常復雜多變,沿線不僅有森林區、采空區等獨特區域,也有微地形及高速公路、高樓、塔吊等各種建筑布局。這些較復雜的外部條件及地理環境均給線路的安全保證增加了難度,也使管理更加散亂,直接影響工作效率。
OSG(OpenSceneGraph) 是一個開源的場景圖像管理開發庫,主要為圖形圖像應用程序的開發提供場景管理和圖形渲染優化功能,其包含了豐富的類庫,操作靈活,功能強大,性能優越,資源豐富。本文設計了一個基于OSG的輸電網三維可視化系統,可以直觀的反映出輸電網所處的地質地貌、天氣、輸電塔維修等各種情況,以三維圖像的形式更加清晰的解釋和顯示出輸電線路所發生的變化,同時有助于展示輸電網裝備臺賬信息。
要是提供一個實時、直觀的三維可視化立體環境并根據用戶的具體應用需求,實現輸電網可視化系統的場景漫游、模型剖切和動畫聲音等交互功能;數據庫設計主要提供輸電網各個組成部分的信息,包括塔桿、絕緣子、輸電導線等。三維輸電網系統組織結構如圖1所示。

圖1 輸電網三維可視化系統組織結構圖
輸電網可視化系統主要由四個部分組成:系統界面設計,3D建模,OSG驅動技術,數據庫設計。系統的界面設計是系統可視化的基礎,包括菜單欄、工具欄、操作按鈕和輸入框;3D建模主要是對地形模型、輸電塔模型和線路模型進行設計,包括多種地形結構和塔桿結構,為三維可視化的實現提供豐富的數據基礎;OSG驅動層主

圖2 菜單欄結構
系統界面設計
本系統利用微軟提供的MFC進行界面設計包括兩部分:菜單欄和窗口。菜單欄包括文件、界面設置、輸出和幫助等部分,主要組織結構如圖2所示。
窗口分隔為左右兩個子窗口,并通過通知消息實現兩個窗口的關聯,左邊窗口是主要控件,包括風速大小、視角方向、天氣狀況等信息的輸入以及實現視圖控制的按鈕控件,通過鍵盤輸入和鼠標事件實現系統人機交互功能。右邊窗口是輸電網圖像的三維顯示,對控件發送的消息進行響應,包括場景漫游、場景視口變化和天氣效果演示等。

圖3 操作控制圖

圖4 漫游流程圖
3Dmax建模
系統模型建立利用3Dmax建模工具,對塔桿、地形、輸電線等其他組件模型進行三維建模,設計合適的模型大小數值,保證塔桿和地形之間的比例,記錄模型之間的相對坐標,使多個模型能夠協調清地加載到系統中。輸出的模型利用第三方的OSGExp插件轉化為二進制的.IVE類型,有利于加快讀取速度。
OSG技術研究
輸電網三維可視化系統的操作對象是場景的數據即OSG場景,而場景的數據主要由OSG驅動提供的相應的類調用合適的方法進行控制。OSG場景圖形采用一種自頂而下的、分層的樹狀數據結構來組織空間數據集,以提升渲染的效率。場景樹結構的頂部是一個根節點,從根節點向下延伸,各個組節點中包含控制集合信息和用于控制外觀的渲染狀態信息。如使用Viewer類中getSceneData方法可以對整個場景進行渲染,addEventHandler可以加入一個時間處理器去響應鍵盤或鼠標的操作從而控制場景。整個場景的操作控制結構如圖3所示,接下來對OSG關鍵技術進行研究分析。
場景漫游和路徑漫游技術
OSG場景漫游的主要流程如圖4所示:在實現輸電網三維可視化系統過程中,需要對操作器進行編寫,操作器必須從OSGGA::MatrixManipulate派生而來。OSG官方提供了軌跡球漫游器能夠接受鼠標事件,變換相機位置和姿態,實現場景平移、旋轉和縮放等操作。
路徑漫游是漫游的一部分,就是將路徑存放到一個文件或者數據庫中。當單擊開始按鈕開始漫游,視圖就會按照預先設定的路徑原封不動的走一遍。路徑信息由七列組成,這七列分別代表的意思為:時間、位置、旋轉角度,有了這三個因素就可以控制整個場景了。使用類OSG::AnimationPath去設置路徑,AnimationPathManipulator創建路徑漫游器,viewer去調用setCameraManipulator()方法實現。本系統的設計中,路徑漫游方向與輸電線平行。
動畫和聲音技術
OSG動畫和路徑漫游相似,使用的是相同的類,該類封裝了一系列操作,有動畫模式,動畫路徑的導入和導出,動畫時間,動畫的關鍵點等,默認的動畫模式有三種,為單擺,循環和非循環,用setLoopMode函數設置,自定義時間計時器函數去判斷動畫是否結束。通過AnimationPathCallback類控制動畫時間偏移、執行速度、渲染狀態等。OPENAL是一個開源的音效庫,是OSG的第三方插件,通過Soundroot類的調用可以實現輸電塔倒塌時聲音渲染。本系統中可以利用動畫聲音技術模擬輸電線路倒塌的過程。
OSG其他關鍵技術
除了上述的所提到技術之外,OSG還提供很多相關的技術去實現系統的場景渲染。比如粒子系統中OSGParticle::PrecipitationEffect類,可以用來實現三維可視化系統的雨效、雪效和霧效等,生成非常真實的效果;通過調用剖切面類中的成員函數ClipPlane() 和SetStateSet() ,實現對三維輸電塔模型的任意剖切。

表1 導線表

表2 塔桿表

表3 絕緣子表
數據庫系統設計
數據庫是大多數系統軟件的數據基礎,同樣在整個輸電網三維可視化系統的設計中,包含著輸電網組件的各種信息,這些信息有必要被記錄下來并進行實時讀取操作,因此數據庫成為數系統必不可少的一部分。一般而言,輸電網的主要部件有八部分組成,分別為導線、避雷針、金具、絕緣子、塔桿、拉線、基礎和接地裝置。導線是固定在塔桿上輸送電流用的金屬線,不同電流或者不同電壓所用的導線類型不同,同一類的導線編號、安裝日期、維護日期等信息也會不同。
本三維可視化系統中利用的是關系型數據庫mySQL,主要針對輸電網的導線、塔桿和絕緣子進行數據庫設計,根據相關輸電網資料, 導線的數據庫信息如表所示。

圖5 操作流程圖

圖6 模型加載圖

圖7 雪效圖
塔桿數據庫表信息如下表2所示。
絕緣子數據庫表信息如表3所示。
三個表是相關聯的,編號均為表的主鍵且在設計的過程中采用相同的字段,在模型的加載過程中,需要利用table3的相對坐標對模型進行加載進而加載輸電導線,輸電導線的方向為與空間坐標的Y軸平行。
論文通過OSG平臺成功實現了輸電網三維可視化系統,在系統演示的主要操作流程如圖5所示。
圖6-圖7是部分實驗結果,界面中上下左右按鈕能夠實現場景的漫游,相機設置初始化為用戶角度,天氣效果為場景增加天氣渲染,開始按鈕是創建線程,實現輸電網路徑漫游。
論文對利用OSG平臺對輸電網進行可視化設計,重點設計了輸電網三維可視化系統的開發過程,包括OSG下的路徑漫游、動畫聲音等OSG技術和數據庫技術。該系統能夠為輸電網工作人員提供一個直觀的可視化交互環境,很好的演示和解釋輸電網所在狀態。接下來將對各種輸電網信息進行進一步的調研,豐富數據庫系統,設計更多的3D模型,從而更加完善系統
10.3969/j.issn.1001-8972.2015.24.001