佘建國,高軍豐,范曉衛
(江蘇科技大學機械工程學院,江蘇 鎮江 212003)
基于Vega的雙通道船舶甲板重吊視景仿真系統
佘建國,高軍豐,范曉衛
(江蘇科技大學機械工程學院,江蘇 鎮江 212003)
針對船舶甲板重吊貨物吊裝的操作使用,以三維建模軟件MultiGen-Creator、實時仿真驅動軟件Vega及VC++為平臺,創建碼頭地形、吊車及船舶等三維模型?;赩ega API函數與C++相結合編程實現船舶貨物吊裝視景仿真系統的驅動。仿真結果表明,該系統具有較高的真實度,能解決船舶貨物裝卸的運動模擬、吊裝方案設計等諸多問題。
Creator/Vega;雙通道;甲板重吊;視景仿真
隨著科學技術的發展,三維建模軟件MultiGen-Creator和視景驅動軟件Vega近年來在視景仿真領域得到廣泛的應用。由于其本身側重視覺效果模擬,對要求復雜精確的工程模擬有一定的缺陷。基于多通道顯示的視景仿真系統受到了越來越多的關注。該系統的主要特點是利用1個或多個計算機的多個顯示通道拼合生成1個完整的視景,為用戶提供1個具有高度沉浸感的虛擬環境[1]。隨著計算機硬件技術的發展,普通PC的圖形計算能力有了極大的提高,基于PC的多通道視景仿真系統已成為1個熱門的研究方向[2]。
創建雙通道船舶甲板重吊視景仿真系統,重點是精確建立相關的三維模型,如碼頭地形、船舶及吊車等以及根據貨物吊裝的實際情況創建運動模型。Creator支持多種模型格式相互轉化,所以可采用多種建模相結合的方式來創建仿真系統需要的三維模型,經過Creator軟件相關技術優化,最后由Vega創建系統程序框架,以此解決船舶貨物吊裝模擬問題。
MultiGen-Creator對很多工程軟件都有支持的特殊格式,它可以輸入的圖形格式有3ds,dxf,obj,stl等,可以輸出的格式有 flt,dxf,wrl,obj,stl等。從MultiGen-Creator可以輸入的格式可以看出,它支持UG軟件中的stl格式,也就是說在UG中繪圖完成后,以stl和dxf/dwg格式保存,再以同樣的格式輸入到 Creator中。同理,AutoCAD導出的 3ds,dxf,stl,3D Studio Max導出的3ds,stl,dxf,Pro/Engineer導出的obj和dxf等,都可以直接輸入到Creator進行處理。
同樣,UG的prt、cgm、stl、dxf/dwg格式可以輸入到Pro/Engineer,然后再變換格式輸入到Creator,有時候可以獲得出乎意料的良好結果。在該視景仿真系統中所用模型的建立就采用了此種方法。為了能找到較好的轉換途徑,將所有的轉換路徑用圖1表示。

圖1 建模軟件之間互用路徑Fig.1 Interwork path diagram of modeling sofwares
1.2.1 吊車模型的建立
吊車模型數據庫的內容主要由塔身、吊臂、底座、操縱艙等組成。創建模型時主要用到的建模工具是Creator,輔之以3dsmax,然后將生成的.max格式文件轉化為.flt格式文件。吊車模型數據庫建模需要處理好各個部分對象之間的層次關系,合理地組織數據庫的層次結構便于場景的管理及視景的生成。采用分層表示法把吊車模型分成4個主要的層次:第1層底座、第2層塔身、第3層操縱艙以及第4層吊臂,并且每個層次都包含具體的細節內容。創建好的吊車三維模型如圖2所示。
1.2.2 三維船舶模型的創建

圖2 吊車三維模型Fig.2 Three-dimensional model diagram of crane
船舶三維模型數據庫是主要采用Auto CAD,3ds Max以及MultiGen Creator相結合創建,由AutoCAD創建的實體模型無法直接導入Creator軟件中,必須先導入3ds Max生成.max格式文件,再導入Creator中生成.flt格式文件。由于Creator和AutoCAD這2種軟件建模時默認計量單位不一致,當把CAD創建的模型導入到Creator中時,他們之間默認單位是一對一原則,CAD中默認單位是mm,而在Creator中默認單位是m,所以模型導入轉換后將放大1 000倍。圖3和圖4分別為在AutoCAD中創建和經過Creator處理過的船舶三維模型。

1.2.3 碼頭地形三維模型的創建
碼頭地形三維模型數據庫主要采用MultiGen-Creator建模工具,輔之以建模軟件3ds Max和Auto CAD,由.max或者.dxf格式導入 Creator生成.flt格式。然后在碼頭地形模型表面添加RGB以及RGBA格式的紋理,如山脈、樹木、水面等圖片紋理,使虛擬場景看起來更加接近現實的碼頭場景。完成之后的碼頭地形模型數據庫如圖5所示。

圖5 碼頭地形場景模型數據庫Fig.5 Scene model database of terminal
為了增強仿真系統的實時性及真實性,需要對三維模型進行優化。該系統主要用到的優化技術包括細節層次模型(LOD)、紋理映射和實例技術等[3]。
1)LOD技術
根據實際需要設定一定的判斷條件,仿真過程中實時地選擇不同細節層次的模型,在既不影響視覺畫面的同時也能實現虛擬場景顯示的實時性,減少仿真系統的開銷,協調仿真系統的實時性和逼真性的關系[4],如圖6 所示。

圖6 吊車滑輪的層次細節模型Fig.6 The level of detail crane pulley
2)紋理映射
采用紋理映射技術不但能表達出模型細節,賦予模型鮮明的材質和貼圖特征等,而且不會增加模型的復雜程度[5]。它可以增加三維模型細節水平,增強虛擬場景的真實性;提高模型對象的三維像素水平;模型多邊形數量大大減少,提高了仿真系統的實時渲染性能。
3)實例技術
通過實例化創建的模型副本并不會增加模型數據庫的多邊形數量。因此,創建模型對象的過程中,適當地采用實例化技術創建模型實例,可以節省仿真系統的內存空間以及磁盤存儲的空間,與此同時,還能提高實時仿真系統的處理性能。實例化技術是簡化模型數據庫的有效手段,特別是對于模型數據庫中簡單的、具有重復性的模型對象更是如此,如圖7所示。

圖7 實例技術的應用Fig.7 Application of instance technic
根據視景仿真系統實時互動的特點,本文采用手動操作鼠標和鍵盤的輸入方式來控制克令吊的各種運動,達到實時互動的要求。根據克令吊的運動特性,把克令吊的運動分為回轉和提升2個主要運動,如圖8所示。在建立克令吊模型時,定義相應的DOF節點,如以塔身與底座的聯接處的中心為局部坐標系的原點,塔身中心線為z軸、吊臂方向為x軸、由xz面確定y軸。通過VC++編程,調用Vega函數庫中的vgFindPart()函數找到之前定義好的DOF節點即可,如圖9所示。首先定義吊車正向旋轉、反向旋轉、貨物提升及貨物下降4個函數:Rotate(),RevRotate(),StepUp()及StepDown(),然后在主循環程序中調用相應的函數,采用鍵盤上的A,D,W,S鍵分別控制吊車的4種運動。這樣1個完整的運動模型就建立了,可以通過基于VC++的Vega應用程序來驅動各個部件,使其產生運動[6]。
代碼如下:


Vega具有多通道(Multi_Channels)顯示功能,不但可以1個窗口顯示多個通道,甚至可以多個窗口顯示多個通道,通道與通道之間實現無縫拼接,相互重疊等功能。因此,本仿真系統預先設定的雙通道顯示功能可以輕松實現,即可以同時顯示從操縱艙正前方向、斜前下方向的視景,從而進行監視和控制,雙通道視景的目的是為仿真中的觀察者或參與者提供大視場,如圖10所示。

圖10 Vega雙通道顯示Fig.10 Vega dual-channel display
從程序員的角度看,Vega本質上是1套與圖形硬件無關的開發高級視景仿真應用的軟件接口,它包含上百個用C語言編寫的應用程序編程接口(API)函數,可以通過這些函數高效地對虛擬場景進行實時的交互控制。Vega結合先進的模擬技術通過簡單可利用的應用工具,提供了一種能快速準確地建立復雜應用模型的方法,并且能提供復雜的虛擬模擬原型[7]。Vega內部含有多種用途的模塊,可以方便實現仿真系統中要求的功能[8]。
雖然Vega三維圖形開發庫功能強大,但它畢竟不是萬能的,當需要建立完整、靈活多變并且具有校核功能的視景仿真系統,就體現出了它的局限性。此時,基于C++的應用程序編程接口(Vega API)函數可以方便地解決相應問題。仿真系統進行貨物吊裝時,有復雜的數學運算、貨物的吊裝點選擇計算等,這些都可以通過VC++平臺編程實現。在船舶貨物吊裝過程中,貨物是被動的,它的空間位置也在實時變化,并跟繩子端點相連接,繩子與船舶吊車所受的力也在不斷變化,仿真系統需要對這些變化實時控制。在VC++自帶的函數庫中可以進行編程計算,實現上述功能。應用程序框架圖如圖11所示。

圖11 應用程序框架Fig.11 Application framework chart
本文根據船舶甲板重吊吊裝貨物的特點,利用多種建模軟件相結合的方式分別創建地形碼頭、船舶、吊車等對象的三維模型,并利用C++語言基于Vega三維圖形開發庫開發此仿真系統,本文主要完成了以下工作:
1)根據甲板重吊的運動特性,建立了吊車的運動模型;
2)以視景驅動軟件Vega,實現了吊車視景仿真系統,解決了仿真過程中模擬操作吊車的控制、雙通道顯示等問題。
仿真結果表明,該仿真系統具有較高的逼真度,達到了良好的視景仿真效果,符合人們的操作習慣,可以滿足甲板重吊模擬培訓的要求。但仿真細節還不夠完善,在吊裝貨物時吊鉤與貨物不能完全聯動,這將通過進一步的分析來完善此仿真系統。
[1]肖鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南[M].北京:清華大學出版社,2010.
[2]王銳,錢學雷.OpenSceneGraph三維渲染引擎設計與實踐[M].北京:清華大學出版社,2010.
[3]洪光,李洪儒,牟建國.基于Creator的三維模型的簡化研究[J].計算機仿真,2004,21(1):57-58,115.
HONGGuang, LIHong - ru, MU Jian-guo.The simplification of the 3D model based on creator[J].Computer Simulation,2004,21(1):57-58,115.
[4]官巍,蔡曉琳,陳海.細節層次技術在場景建模中的應用[J].系統仿真學報,2006,18(S2):427-429.GUAN Wei,CAI Xiao-lin,CHEN Hai.Application of level of detail technique in scene modeling[J].Journal of System Simulation,2006,18(S2):427-429.
[5]王延紅,袁媛,楊平利,等.建模軟件Creator中的紋理映射技術[J].中國體視學與圖像分析,2008,13(1):63-66.
WANG Yan-hong,YUAN Yuan,YANG Ping-li,et al.Texture mapping technology in modeling software Creator[J].Chinese Journal of Stereology and Image Analysis,2008,13(1):63-66.
[6]龔卓蓉.Vega程序設計[M].北京:國防工業出版社,2002.
[7]MultiGen-paradigm Inc.Vega diguy help[M].Dallas:MultiGen-Paradigm,Inc,2001.
[8]和平鴿工作室.OpenGL三維圖形系統開發與實用技術[M].重慶:重慶大學出版社,2003.
Research on dual-channel ship crane visual simulation system based on Vega
SHE Jian-guo,GAO Jun-feng,FAN Xiao-wei
(School of Mechanical Engineering,Jiangsu University of Science and Technology,Zhenjiang 212003,China)
For the operation of ship crane hoisting,this study constructs 3D models of wharf terrain,crane and ship et al.Based on three-dimension modeling software MultiGen-Creator,the real-time visual driving software Vega and VC++,realized ship's cargo hoisting visual simulation system driving based on Vega API combined with C++ .Simulation results show that the system is highly realistic,can solve many problems about hoisting including the moving simulation and the hoisting project.
Creator/Vega;dual-channel;ship crane;visual simulation
U663.6;TP31
A
1672-7649(2012)05-0062-05
10.3404/j.issn.1672-7649.2012.05.014
2011-05-11;
2011-07-19
佘建國(1963-),男,碩士,副教授,研究方向為機構學和視景仿真。