卜 雷
(江漢大學(xué)機(jī)電與建筑工程學(xué)院,湖北 武漢 430056)
塔式起重機(jī)在投入使用之前,使用方希望能夠預(yù)知其使用功效,而塔式起重機(jī)體積大、運(yùn)輸費(fèi)用高等自身特點(diǎn)使得塔機(jī)戶外真機(jī)展示具有較大局限性.起重機(jī)生產(chǎn)企業(yè)也需要尋求更多的方式進(jìn)行產(chǎn)品推廣,因此產(chǎn)品的虛擬動態(tài)展示便成為重要的宣傳手段.
本文采用Microsoft Visual Studion.NET 2003為開發(fā)平臺,以O(shè)SG為場景驅(qū)動實(shí)現(xiàn)了塔式起重虛擬樣機(jī)的可視化框架.
虛擬場景瀏覽框架[1]見圖1.
圖1 技術(shù)路線
軟件程序基本開發(fā)步驟[2]包括:
1)設(shè)置環(huán)境——鏈接對應(yīng)的庫文件、連接使用類的頭文件等;
2)創(chuàng)建虛擬瀏覽場景——建立 osgViewer::Viewer類的一個對象,用于渲染已經(jīng)組織好的模型;
3)加載三維模型——對于復(fù)雜的模型一般通過導(dǎo)入的方法來完成,即應(yīng)用其他軟件完成復(fù)雜模型的三維實(shí)體建模,通過相應(yīng)的接口導(dǎo)入程序中,并對場景數(shù)據(jù)庫進(jìn)行初始化;
4)組織模型——通過建立模型的拓?fù)浣Y(jié)構(gòu)來表示模型的位移、燈光等各種關(guān)系;
5)已組織完畢的模型加載到虛擬場景中;
6)進(jìn)入循環(huán),進(jìn)行渲染即可進(jìn)行瀏覽和查看等操作.
程序的基本框架如圖2所示.
圖2 OSG基本程序框架
基本程序結(jié)構(gòu)如下:
瀏覽場景的時候,節(jié)點(diǎn)不一定剛好在視口的合適位置,可以通過設(shè)置節(jié)點(diǎn)來解決.
osg::PositionAttitudeTransform是一個位置變換節(jié)點(diǎn),繼承自osg::Transform主要是提供模型的位置變換、大小縮放,原點(diǎn)位置的設(shè)置以及坐標(biāo)系的變換.常用的成員函數(shù)包括:setPosition設(shè)置位置、getPosition得到位置、setAttitude設(shè)置姿態(tài)、setScale設(shè)置縮放等.使用該節(jié)點(diǎn)加載模型,示意代碼如下:
場景瀏覽完整的源代碼略去.
實(shí)驗(yàn)選用某型號的塔式起重機(jī)進(jìn)行塔式起重機(jī)場景可視化模擬.繪制塔式起重機(jī)虛擬場景中擁有模型的信息統(tǒng)計(jì)量,幀速率達(dá)60幀/s.試驗(yàn)硬件條件見表1.
表1 實(shí)驗(yàn)的硬件條件
實(shí)驗(yàn)結(jié)果見圖3.
試驗(yàn)結(jié)果表明:虛擬塔式機(jī)場景可視化框架是合理、有效的,設(shè)計(jì)的方案能夠滿足實(shí)現(xiàn)塔機(jī)虛擬工作場景瀏覽的需求,開發(fā)的系統(tǒng)人機(jī)交互效果良好,能夠用鍵盤實(shí)現(xiàn)實(shí)時漫游系統(tǒng),并且克服了傳統(tǒng)的OpenGL以及Direct3D開發(fā)周期長、難度大的缺點(diǎn),解決了使用OpenGVS、Vega等商業(yè)引擎開發(fā)成本過高等問題.
[1]轉(zhuǎn) 萍,申閆春.基于OSG的虛擬校園漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(1):217-220.
[2]文 峰.基于虛擬現(xiàn)實(shí)的駕駛模擬器視景系統(tǒng)關(guān)鍵技術(shù)與藝術(shù)研究[D].武漢:武漢理工大學(xué)圖書館,2006.