虛擬現實是由計算機等專用設備構成虛擬環境,利用設備與環境交互,具有交互性和沉浸感,使用戶產生身臨其境的感覺并從虛擬環境中得到反饋[1,2]。復雜場景的虛擬漫游是虛擬現實的重要應用領域。機艙的規劃和布置需要遵循很多原則,如滿足生命力的要求、有利于人員站位和撤離、滿足維修空間和通道寬度的要求等,同時又要滿足“人性設計”這一發展趨勢[3]。因此在機艙初步設計完成后,實物制造之前很有必要利用虛擬現實技術對機艙的三維模型進行虛擬漫游,各方面的專家通過身臨其境的感覺可以提供反饋意見從而對機艙設計進行修改。并且可以為使用管理人員的訓練提供幫助,節約經費,提高訓練的實效性。
英國船商公司推出的最新輪機模擬器ERS 4000將虛擬現實技術引入輪機模擬器,實現了機艙的虛擬漫游。大連海事大學研制的DMS-2000型輪機仿真器運用虛擬現實三維建模雙目視差分時式立體視覺顯示和視覺現場感產生等技術實現了機艙虛擬現實仿真系統。目前國內機艙虛擬漫游的實現大都利用三維建模軟件Multigen、3Dmax等建立機艙視景數據庫,利用實時仿真軟件Vega等實現交互操作[4]。機艙環境復雜,建立準確的三維機艙空間難度較大。
隨著CAD技術的發展,機械設計領域逐步實現數字化設計,波音777即是利用CATIA進行全數字化設計的典型產品。CATIA是IBM公司和Dassault公司合作后推出的三維CAD/CAE/CAM設計軟件。CATIA為造船工業提供了優秀的解決方案,包括專門的船體產品和船用設備、機械解決方案。船體設計解決方案己被應用于眾多船舶制造企業,涉及所有類型船舶的零件設計、制造和裝配。設計部門可以提供機艙的三維模型,這就為虛擬漫游所需要的視景數據庫提供了素材。并且CATIA軟件和VIRTOOLS同屬達索公司開發的,兩者之間存在公用的數據使用格式,因此為文件的傳遞創造了條件。CATIA軟件本身帶有虛擬漫游的功能,缺點是其虛擬漫游不能脫離軟件的使用環境并且加入特定的虛擬人物后人機交互的開發難度較大。
本文提出利用VIRTOOLS軟件開發虛擬機艙漫游,在VIRTOOLS中對虛擬人物交互控制較為簡單,而且開發的虛擬機艙漫游具備了良好的沉浸感和空間意識。并且導出的文件較小,便于網絡傳輸,方便客戶使用。
虛擬漫游系統的實現包括視景數據庫的建立和漫游平臺的設計[5,6]。本文利用CATIA提供的3D XML輸出接口,三維模型經過處理可直接轉為3D XML格式,并將模型文件導入到VIRTOOLS中。在VIRTOOLS中建立攝像機和燈光對環境進行渲染,充分營造真實機艙的氛圍,添加虛擬人物,并對虛擬人物交互控制。虛擬漫游的開發實現后,就可以從VIRTOOLS中導出,從而脫離軟件環境使用。虛擬漫游開發框架圖如圖1所示。

圖1 基于VIRTOOLS的虛擬機艙漫游開發框架圖
模型的建立是由具備強大建模能力的CATIA軟件實現的,而CATIA軟件建立的三維模型需要轉化為被VIRTOOLS軟件所支持的文件格式,如WRL、3D XML等,才能成功地以場景模式導入到VIRTOOLS中。機艙的電子樣機模型需要進行一定的處理,因為虛擬漫游的場景不需要機器設備的內部結構,因此要將內部部件刪除,否則在文件格式轉換時所需的時間較長,而且最后導出的文件較大。部件的刪除可以在CATIA中完成,也可以在VIRTOOLS中完成。本文是在CATIA中完成的,CATIA下的三維模型層次結構清晰,便于編輯,而且減少了軟件之間數據格式轉換所需要的時間。文件導入VIRTOOLS后數據會存在丟失的現象,需要在VIRTOOLS中進行材質處理、貼圖等,這樣就建立了視景數據庫。
虛擬人物具備一定的身體特征如身高、體重、胖瘦等。虛擬人物(角色)是虛擬漫游環境的重要組成部分,對于增強場景的真實感、沉浸感具有非常重要的作用[5]。
VIRTOOLS能夠對二維或三維模型實現各種操作,如大小變化、平移、旋轉、縮放、顏色變化、光線變化、二維貼圖等。復雜操作,如投影、行走、奔跑、后退等。各種控制操作充分利用了VIRTOOLS提供的強大交互功能,是通過直接調用行為模塊庫中的內置BB(Behavior Block)實現的。VIRTOOLS本身提供了500多個BB供調用,每個BB都是封裝了的行為控制函數,并提供了行為輸入、行為輸出、參數輸入、參數輸出4個接口,因此可以在BBs資源庫方便地調用BB,并利用BB對模型進行相應的控制。
1) 虛擬人物在虛擬環境中行走的實現
設置多個固定路徑,人物在不同的固定路徑上行走。在機艙地板上繪制幾條不同的閉合曲線,通過character curve follow的漫游方法,虛擬人物就可以在曲線上行走,用戶只要通過簡單shift鍵切換,人物就可以在不同路徑上跑動。
設置鍵盤控制,操縱虛擬人物實施自由漫游。在人物的animation中加入walk、run、walk back等基本動作,用相應的鍵盤方向鍵進行控制。在鍵盤的控制下人物就可以在機艙中行走。通過time setting的腳本文件來控制跑步的步幅、步頻等。
2) 攝像機的控制
攝像機是三維視角點,對攝像機的控制很必要,最基本的攝像機追蹤方式是和人物保持一定距離,將攝像機的目標鎖定在虛擬人物person身上。另外,還運用了兩種察看虛擬場景的方式,一是切換攝像頭,在虛擬機艙中的左右兩側和上方各設置一個攝像頭在漫游的過程中通過space鍵進行攝像頭的切換,用戶可以看到不同視角的虛擬機艙。還可以用鼠標對攝像機進行旋轉,從而觀察周圍環境。圖2是使用鍵盤切換攝像機和鼠標旋轉攝像機的腳本。
3) 碰撞檢測
現實中的人物是不能穿越墻壁等固定物體的。如果不加上碰撞檢測功能,虛擬人物的身體就會穿越柴油機、齒輪箱等機艙設備,這是與現實相悖的,從而帶來不真實的感覺。本例在level下將機艙中一切固定設備都設定了固定物體的屬性,通過在虛擬人物的腳本中加入prevent collision,實現了碰撞檢測的功能,從而人物就不可以再穿過機械設備等障礙物。
4) 漫游渲染
現實中的人在機艙行走時,腳和地板的碰撞會產生聲音,而且地板和機艙壁等物體上會折射出人物的陰影。因此為了讓虛擬漫游更加逼真,虛擬人物在機艙中行走時添加了2種不同的渲染包括聲音渲染和陰影渲染。
本文實現了兩種聲音的渲染:虛擬人物在行走時腳步摩擦地板的聲音;碰撞物體時產生的聲音。
在機艙的上方添加2個燈光,這樣虛擬人物在行走時機艙壁、地板、柴油機等物體上就會折射出虛擬人物的陰影,這樣就實現了陰影的渲染,從而使虛擬場景更加逼真。圖3是漫游渲染的腳本。

圖2 鏡頭切換和鼠標旋轉攝像機腳本

圖3 漫游渲染腳本
虛擬漫游完成后,有2種方法可以保存:一種是直接將整個虛擬漫游以CMO文件格式保存,這種情況保存的文件只有載入VIRTOOLS中才可以進行單機的虛擬漫游;一種是將整個虛擬漫游以VMO文件格式保存,同時也可以HTML文件格式保存,這種情況下用戶只需要安裝播放插件VIRTOOLS Web player,就可以進行單機的虛擬漫游,同時可以發布到網上,方便各客戶端使用。
本文構建了虛擬機艙,并在漫游框架平臺下實現了虛擬機艙漫游。將CATIA軟件建構的機艙三維模型經過處理后轉化為3D XML格式的文件,然后導入到VIRTOOLS中,添加燈光等進行渲染。在VIRTOOLS中實現了對虛擬人物的交互操縱,開發了虛擬機艙的漫游(圖4)。

圖4 虛擬機艙漫游
本文針對機艙漫游技術的發展現狀,充分利用虛擬現實技術,提出了一種新的方法,在利用CATIA軟件建構虛擬機艙漫游場景的基礎上,脫離CATIA軟件的使用平臺,在VIRTOOLS中對虛擬人物的操縱實現了對機艙三維模型的虛擬漫游。用戶可以根據自己的要求、審美觀等因素提出修改意見。對機艙設計部門而言可以廣泛采納美學家、人機心理學家、普通船員等非專業人士的意見從而對機艙的設計進行修改,充分適應“人性設計”這一發展趨勢,有較強的現實意義。
參考文獻:
[1] 雷良育.基于虛擬現實的汽車平順性仿真試驗系統及其關鍵技術研究[D].杭州.浙江大學,2005.
[2] 劉金林.虛擬設計技術在艦船動力裝置設計中的應用研究[D].武漢.海軍工程大學,2005.
[3] 陳國鈞,曾凡明.現代艦船輪機工程[M].長沙:國防科技大學出版社,2001.
[4] 周俊峰,???船舶機艙虛擬環境中的虛擬人構建[J].上海海事大學學報,2007,28(4):42
[5] 李昌國,朱福全,譚良,等.基于3D和Virtools技術的虛擬實驗開發方法研究[J].計算機工程與應用,2006,42(31):84-86,96.
[6] 葉綠.虛擬教育環境中虛擬人(角色)技術的研究與應用[D].杭州:浙江大學,2005.