卜 雷
(江漢大學機電與建筑工程學院,湖北 武漢 430056)
塔式起重機在投入使用之前,使用方希望能夠預知其使用功效,而塔式起重機體積大、運輸費用高等自身特點使得塔機戶外真機展示具有較大局限性.起重機生產企業也需要尋求更多的方式進行產品推廣,因此產品的虛擬動態展示便成為重要的宣傳手段.
本文采用Microsoft Visual Studion.NET 2003為開發平臺,以OSG為場景驅動實現了塔式起重虛擬樣機的可視化框架.
虛擬場景瀏覽框架[1]見圖1.

圖1 技術路線
軟件程序基本開發步驟[2]包括:
1)設置環境——鏈接對應的庫文件、連接使用類的頭文件等;
2)創建虛擬瀏覽場景——建立 osgViewer::Viewer類的一個對象,用于渲染已經組織好的模型;
3)加載三維模型——對于復雜的模型一般通過導入的方法來完成,即應用其他軟件完成復雜模型的三維實體建模,通過相應的接口導入程序中,并對場景數據庫進行初始化;
4)組織模型——通過建立模型的拓撲結構來表示模型的位移、燈光等各種關系;
5)已組織完畢的模型加載到虛擬場景中;
6)進入循環,進行渲染即可進行瀏覽和查看等操作.
程序的基本框架如圖2所示.

圖2 OSG基本程序框架
基本程序結構如下:


瀏覽場景的時候,節點不一定剛好在視口的合適位置,可以通過設置節點來解決.
osg::PositionAttitudeTransform是一個位置變換節點,繼承自osg::Transform主要是提供模型的位置變換、大小縮放,原點位置的設置以及坐標系的變換.常用的成員函數包括:setPosition設置位置、getPosition得到位置、setAttitude設置姿態、setScale設置縮放等.使用該節點加載模型,示意代碼如下:

場景瀏覽完整的源代碼略去.
實驗選用某型號的塔式起重機進行塔式起重機場景可視化模擬.繪制塔式起重機虛擬場景中擁有模型的信息統計量,幀速率達60幀/s.試驗硬件條件見表1.

表1 實驗的硬件條件
實驗結果見圖3.

試驗結果表明:虛擬塔式機場景可視化框架是合理、有效的,設計的方案能夠滿足實現塔機虛擬工作場景瀏覽的需求,開發的系統人機交互效果良好,能夠用鍵盤實現實時漫游系統,并且克服了傳統的OpenGL以及Direct3D開發周期長、難度大的缺點,解決了使用OpenGVS、Vega等商業引擎開發成本過高等問題.
[1]轉 萍,申閆春.基于OSG的虛擬校園漫游系統的設計與實現[J].計算機技術與發展,2009,19(1):217-220.
[2]文 峰.基于虛擬現實的駕駛模擬器視景系統關鍵技術與藝術研究[D].武漢:武漢理工大學圖書館,2006.