虛擬現(xiàn)實(shí)是由計(jì)算機(jī)等專用設(shè)備構(gòu)成虛擬環(huán)境,利用設(shè)備與環(huán)境交互,具有交互性和沉浸感,使用戶產(chǎn)生身臨其境的感覺并從虛擬環(huán)境中得到反饋[1,2]。復(fù)雜場景的虛擬漫游是虛擬現(xiàn)實(shí)的重要應(yīng)用領(lǐng)域。機(jī)艙的規(guī)劃和布置需要遵循很多原則,如滿足生命力的要求、有利于人員站位和撤離、滿足維修空間和通道寬度的要求等,同時(shí)又要滿足“人性設(shè)計(jì)”這一發(fā)展趨勢[3]。因此在機(jī)艙初步設(shè)計(jì)完成后,實(shí)物制造之前很有必要利用虛擬現(xiàn)實(shí)技術(shù)對(duì)機(jī)艙的三維模型進(jìn)行虛擬漫游,各方面的專家通過身臨其境的感覺可以提供反饋意見從而對(duì)機(jī)艙設(shè)計(jì)進(jìn)行修改。并且可以為使用管理人員的訓(xùn)練提供幫助,節(jié)約經(jīng)費(fèi),提高訓(xùn)練的實(shí)效性。
英國船商公司推出的最新輪機(jī)模擬器ERS 4000將虛擬現(xiàn)實(shí)技術(shù)引入輪機(jī)模擬器,實(shí)現(xiàn)了機(jī)艙的虛擬漫游。大連海事大學(xué)研制的DMS-2000型輪機(jī)仿真器運(yùn)用虛擬現(xiàn)實(shí)三維建模雙目視差分時(shí)式立體視覺顯示和視覺現(xiàn)場感產(chǎn)生等技術(shù)實(shí)現(xiàn)了機(jī)艙虛擬現(xiàn)實(shí)仿真系統(tǒng)。目前國內(nèi)機(jī)艙虛擬漫游的實(shí)現(xiàn)大都利用三維建模軟件Multigen、3Dmax等建立機(jī)艙視景數(shù)據(jù)庫,利用實(shí)時(shí)仿真軟件Vega等實(shí)現(xiàn)交互操作[4]。機(jī)艙環(huán)境復(fù)雜,建立準(zhǔn)確的三維機(jī)艙空間難度較大。
隨著CAD技術(shù)的發(fā)展,機(jī)械設(shè)計(jì)領(lǐng)域逐步實(shí)現(xiàn)數(shù)字化設(shè)計(jì),波音777即是利用CATIA進(jìn)行全數(shù)字化設(shè)計(jì)的典型產(chǎn)品。CATIA是IBM公司和Dassault公司合作后推出的三維CAD/CAE/CAM設(shè)計(jì)軟件。CATIA為造船工業(yè)提供了優(yōu)秀的解決方案,包括專門的船體產(chǎn)品和船用設(shè)備、機(jī)械解決方案。船體設(shè)計(jì)解決方案己被應(yīng)用于眾多船舶制造企業(yè),涉及所有類型船舶的零件設(shè)計(jì)、制造和裝配。設(shè)計(jì)部門可以提供機(jī)艙的三維模型,這就為虛擬漫游所需要的視景數(shù)據(jù)庫提供了素材。并且CATIA軟件和VIRTOOLS同屬達(dá)索公司開發(fā)的,兩者之間存在公用的數(shù)據(jù)使用格式,因此為文件的傳遞創(chuàng)造了條件。CATIA軟件本身帶有虛擬漫游的功能,缺點(diǎn)是其虛擬漫游不能脫離軟件的使用環(huán)境并且加入特定的虛擬人物后人機(jī)交互的開發(fā)難度較大。
本文提出利用VIRTOOLS軟件開發(fā)虛擬機(jī)艙漫游,在VIRTOOLS中對(duì)虛擬人物交互控制較為簡單,而且開發(fā)的虛擬機(jī)艙漫游具備了良好的沉浸感和空間意識(shí)。并且導(dǎo)出的文件較小,便于網(wǎng)絡(luò)傳輸,方便客戶使用。
虛擬漫游系統(tǒng)的實(shí)現(xiàn)包括視景數(shù)據(jù)庫的建立和漫游平臺(tái)的設(shè)計(jì)[5,6]。本文利用CATIA提供的3D XML輸出接口,三維模型經(jīng)過處理可直接轉(zhuǎn)為3D XML格式,并將模型文件導(dǎo)入到VIRTOOLS中。在VIRTOOLS中建立攝像機(jī)和燈光對(duì)環(huán)境進(jìn)行渲染,充分營造真實(shí)機(jī)艙的氛圍,添加虛擬人物,并對(duì)虛擬人物交互控制。虛擬漫游的開發(fā)實(shí)現(xiàn)后,就可以從VIRTOOLS中導(dǎo)出,從而脫離軟件環(huán)境使用。虛擬漫游開發(fā)框架圖如圖1所示。
圖1 基于VIRTOOLS的虛擬機(jī)艙漫游開發(fā)框架圖
模型的建立是由具備強(qiáng)大建模能力的CATIA軟件實(shí)現(xiàn)的,而CATIA軟件建立的三維模型需要轉(zhuǎn)化為被VIRTOOLS軟件所支持的文件格式,如WRL、3D XML等,才能成功地以場景模式導(dǎo)入到VIRTOOLS中。機(jī)艙的電子樣機(jī)模型需要進(jìn)行一定的處理,因?yàn)樘摂M漫游的場景不需要機(jī)器設(shè)備的內(nèi)部結(jié)構(gòu),因此要將內(nèi)部部件刪除,否則在文件格式轉(zhuǎn)換時(shí)所需的時(shí)間較長,而且最后導(dǎo)出的文件較大。部件的刪除可以在CATIA中完成,也可以在VIRTOOLS中完成。本文是在CATIA中完成的,CATIA下的三維模型層次結(jié)構(gòu)清晰,便于編輯,而且減少了軟件之間數(shù)據(jù)格式轉(zhuǎn)換所需要的時(shí)間。文件導(dǎo)入VIRTOOLS后數(shù)據(jù)會(huì)存在丟失的現(xiàn)象,需要在VIRTOOLS中進(jìn)行材質(zhì)處理、貼圖等,這樣就建立了視景數(shù)據(jù)庫。
虛擬人物具備一定的身體特征如身高、體重、胖瘦等。虛擬人物(角色)是虛擬漫游環(huán)境的重要組成部分,對(duì)于增強(qiáng)場景的真實(shí)感、沉浸感具有非常重要的作用[5]。
VIRTOOLS能夠?qū)ΧS或三維模型實(shí)現(xiàn)各種操作,如大小變化、平移、旋轉(zhuǎn)、縮放、顏色變化、光線變化、二維貼圖等。復(fù)雜操作,如投影、行走、奔跑、后退等。各種控制操作充分利用了VIRTOOLS提供的強(qiáng)大交互功能,是通過直接調(diào)用行為模塊庫中的內(nèi)置BB(Behavior Block)實(shí)現(xiàn)的。VIRTOOLS本身提供了500多個(gè)BB供調(diào)用,每個(gè)BB都是封裝了的行為控制函數(shù),并提供了行為輸入、行為輸出、參數(shù)輸入、參數(shù)輸出4個(gè)接口,因此可以在BBs資源庫方便地調(diào)用BB,并利用BB對(duì)模型進(jìn)行相應(yīng)的控制。
1) 虛擬人物在虛擬環(huán)境中行走的實(shí)現(xiàn)
設(shè)置多個(gè)固定路徑,人物在不同的固定路徑上行走。在機(jī)艙地板上繪制幾條不同的閉合曲線,通過character curve follow的漫游方法,虛擬人物就可以在曲線上行走,用戶只要通過簡單shift鍵切換,人物就可以在不同路徑上跑動(dòng)。
設(shè)置鍵盤控制,操縱虛擬人物實(shí)施自由漫游。在人物的animation中加入walk、run、walk back等基本動(dòng)作,用相應(yīng)的鍵盤方向鍵進(jìn)行控制。在鍵盤的控制下人物就可以在機(jī)艙中行走。通過time setting的腳本文件來控制跑步的步幅、步頻等。
2) 攝像機(jī)的控制
攝像機(jī)是三維視角點(diǎn),對(duì)攝像機(jī)的控制很必要,最基本的攝像機(jī)追蹤方式是和人物保持一定距離,將攝像機(jī)的目標(biāo)鎖定在虛擬人物person身上。另外,還運(yùn)用了兩種察看虛擬場景的方式,一是切換攝像頭,在虛擬機(jī)艙中的左右兩側(cè)和上方各設(shè)置一個(gè)攝像頭在漫游的過程中通過space鍵進(jìn)行攝像頭的切換,用戶可以看到不同視角的虛擬機(jī)艙。還可以用鼠標(biāo)對(duì)攝像機(jī)進(jìn)行旋轉(zhuǎn),從而觀察周圍環(huán)境。圖2是使用鍵盤切換攝像機(jī)和鼠標(biāo)旋轉(zhuǎn)攝像機(jī)的腳本。
3) 碰撞檢測
現(xiàn)實(shí)中的人物是不能穿越墻壁等固定物體的。如果不加上碰撞檢測功能,虛擬人物的身體就會(huì)穿越柴油機(jī)、齒輪箱等機(jī)艙設(shè)備,這是與現(xiàn)實(shí)相悖的,從而帶來不真實(shí)的感覺。本例在level下將機(jī)艙中一切固定設(shè)備都設(shè)定了固定物體的屬性,通過在虛擬人物的腳本中加入prevent collision,實(shí)現(xiàn)了碰撞檢測的功能,從而人物就不可以再穿過機(jī)械設(shè)備等障礙物。
4) 漫游渲染
現(xiàn)實(shí)中的人在機(jī)艙行走時(shí),腳和地板的碰撞會(huì)產(chǎn)生聲音,而且地板和機(jī)艙壁等物體上會(huì)折射出人物的陰影。因此為了讓虛擬漫游更加逼真,虛擬人物在機(jī)艙中行走時(shí)添加了2種不同的渲染包括聲音渲染和陰影渲染。
本文實(shí)現(xiàn)了兩種聲音的渲染:虛擬人物在行走時(shí)腳步摩擦地板的聲音;碰撞物體時(shí)產(chǎn)生的聲音。
在機(jī)艙的上方添加2個(gè)燈光,這樣虛擬人物在行走時(shí)機(jī)艙壁、地板、柴油機(jī)等物體上就會(huì)折射出虛擬人物的陰影,這樣就實(shí)現(xiàn)了陰影的渲染,從而使虛擬場景更加逼真。圖3是漫游渲染的腳本。
圖2 鏡頭切換和鼠標(biāo)旋轉(zhuǎn)攝像機(jī)腳本
圖3 漫游渲染腳本
虛擬漫游完成后,有2種方法可以保存:一種是直接將整個(gè)虛擬漫游以CMO文件格式保存,這種情況保存的文件只有載入VIRTOOLS中才可以進(jìn)行單機(jī)的虛擬漫游;一種是將整個(gè)虛擬漫游以VMO文件格式保存,同時(shí)也可以HTML文件格式保存,這種情況下用戶只需要安裝播放插件VIRTOOLS Web player,就可以進(jìn)行單機(jī)的虛擬漫游,同時(shí)可以發(fā)布到網(wǎng)上,方便各客戶端使用。
本文構(gòu)建了虛擬機(jī)艙,并在漫游框架平臺(tái)下實(shí)現(xiàn)了虛擬機(jī)艙漫游。將CATIA軟件建構(gòu)的機(jī)艙三維模型經(jīng)過處理后轉(zhuǎn)化為3D XML格式的文件,然后導(dǎo)入到VIRTOOLS中,添加燈光等進(jìn)行渲染。在VIRTOOLS中實(shí)現(xiàn)了對(duì)虛擬人物的交互操縱,開發(fā)了虛擬機(jī)艙的漫游(圖4)。
圖4 虛擬機(jī)艙漫游
本文針對(duì)機(jī)艙漫游技術(shù)的發(fā)展現(xiàn)狀,充分利用虛擬現(xiàn)實(shí)技術(shù),提出了一種新的方法,在利用CATIA軟件建構(gòu)虛擬機(jī)艙漫游場景的基礎(chǔ)上,脫離CATIA軟件的使用平臺(tái),在VIRTOOLS中對(duì)虛擬人物的操縱實(shí)現(xiàn)了對(duì)機(jī)艙三維模型的虛擬漫游。用戶可以根據(jù)自己的要求、審美觀等因素提出修改意見。對(duì)機(jī)艙設(shè)計(jì)部門而言可以廣泛采納美學(xué)家、人機(jī)心理學(xué)家、普通船員等非專業(yè)人士的意見從而對(duì)機(jī)艙的設(shè)計(jì)進(jìn)行修改,充分適應(yīng)“人性設(shè)計(jì)”這一發(fā)展趨勢,有較強(qiáng)的現(xiàn)實(shí)意義。
參考文獻(xiàn):
[1] 雷良育.基于虛擬現(xiàn)實(shí)的汽車平順性仿真試驗(yàn)系統(tǒng)及其關(guān)鍵技術(shù)研究[D].杭州.浙江大學(xué),2005.
[2] 劉金林.虛擬設(shè)計(jì)技術(shù)在艦船動(dòng)力裝置設(shè)計(jì)中的應(yīng)用研究[D].武漢.海軍工程大學(xué),2005.
[3] 陳國鈞,曾凡明.現(xiàn)代艦船輪機(jī)工程[M].長沙:國防科技大學(xué)出版社,2001.
[4] 周俊峰,???船舶機(jī)艙虛擬環(huán)境中的虛擬人構(gòu)建[J].上海海事大學(xué)學(xué)報(bào),2007,28(4):42
[5] 李昌國,朱福全,譚良,等.基于3D和Virtools技術(shù)的虛擬實(shí)驗(yàn)開發(fā)方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(31):84-86,96.
[6] 葉綠.虛擬教育環(huán)境中虛擬人(角色)技術(shù)的研究與應(yīng)用[D].杭州:浙江大學(xué),2005.