張 巖
(江蘇財(cái)經(jīng)職業(yè)技術(shù)學(xué)院 江蘇 淮安 220003)
虛擬實(shí)驗(yàn)室(VL)是為了實(shí)現(xiàn)研究、實(shí)現(xiàn)遠(yuǎn)程協(xié)作或各種創(chuàng)新活動(dòng),通過(guò)分布式信息通信技術(shù)產(chǎn)生并發(fā)布結(jié)果的電子工作室。虛擬實(shí)驗(yàn)室的特點(diǎn)是構(gòu)造簡(jiǎn)單、操作直觀、成本低廉、利用率較高,通過(guò)虛擬實(shí)驗(yàn)技術(shù)可以實(shí)現(xiàn)不同地域、不同人群集中起來(lái),實(shí)現(xiàn)合作實(shí)驗(yàn)、遠(yuǎn)程實(shí)驗(yàn)、協(xié)同研究[1]。在日常的實(shí)驗(yàn)教學(xué)中借助虛擬實(shí)驗(yàn)室不僅可以緩解教學(xué)資源的困難,也解決了實(shí)驗(yàn)時(shí)空受限和管理繁瑣等多方面問(wèn)題。
虛擬現(xiàn)實(shí)技術(shù)(VR)是利用計(jì)算機(jī)模擬真實(shí)世界,從而形成虛擬環(huán)境的技術(shù),通過(guò)虛擬現(xiàn)實(shí)模擬出一種具有較高仿真度的虛擬場(chǎng)景[2]。虛擬現(xiàn)實(shí)建模語(yǔ)言(VRML)是一種建模語(yǔ)言,是桌面虛擬現(xiàn)實(shí)系統(tǒng)中最著名、最經(jīng)典的虛擬現(xiàn)實(shí)技術(shù)。使用VRML實(shí)現(xiàn)的虛擬仿真儀器分析實(shí)驗(yàn)室,瀏覽者可以通過(guò)鼠標(biāo)、鍵盤利用瀏覽器實(shí)現(xiàn)從各個(gè)角度、對(duì)實(shí)驗(yàn)室的各種儀器進(jìn)行動(dòng)態(tài)觀察,播放實(shí)驗(yàn)步驟的視頻等,使學(xué)生真正沉浸在虛擬場(chǎng)景中。因此,本文就儀器分析實(shí)驗(yàn)室用虛擬仿真技術(shù)進(jìn)行開發(fā)研究,以期為虛擬仿真實(shí)驗(yàn)室的開發(fā)奠定基礎(chǔ)。
在實(shí)驗(yàn)室虛擬場(chǎng)景中,簡(jiǎn)單的造型如墻面、實(shí)驗(yàn)臺(tái)等在確立整體的坐標(biāo)系直接使用VRML建模;復(fù)雜的造型如各種實(shí)驗(yàn)儀器在確定了儀器型號(hào)后,根據(jù)實(shí)物圖在3DS MAX中進(jìn)行1:1建模,能使用貼圖方式顯示模型效果的對(duì)象最好用此方式建模。在此以紫外分光光度計(jì)和窗戶為例,分別說(shuō)明復(fù)雜造型的創(chuàng)建方法以及貼圖創(chuàng)建模型的方法[3]。
復(fù)雜造型以紫外分光光度計(jì)為例,首先在3DS MAX中利用基本幾何體和復(fù)合運(yùn)算等方法創(chuàng)建出該實(shí)驗(yàn)設(shè)備的造型,以ziwaiyi.wrl為名導(dǎo)出,圖1(a)是參考實(shí)驗(yàn)設(shè)備的原型,圖1(b)為設(shè)計(jì)的虛擬紫外分光光度計(jì)外觀,最后經(jīng)過(guò)調(diào)整坐標(biāo)和修改比例之后,再通過(guò)VRML 內(nèi)聯(lián)節(jié)點(diǎn)把模型導(dǎo)入到實(shí)驗(yàn)室的虛擬環(huán)境中,導(dǎo)入過(guò)程的代碼如下。
圖1 紫外分光光度計(jì)實(shí)物圖與模型圖
#紫外分光光度計(jì)
在模型制作過(guò)程中,使用紋理映射的方法構(gòu)建出實(shí)驗(yàn)室窗戶的表面,用數(shù)碼相機(jī)拍攝出真實(shí)窗戶的樣式,通過(guò)VRML的紋理映射(text)節(jié)點(diǎn),在對(duì)應(yīng)的多邊形上“貼上”相應(yīng)的紋理圖片,用來(lái)代替具體的模型。通過(guò)這種方法實(shí)現(xiàn)的墻壁上窗戶效果,既降低了模型的多邊形數(shù)量和減少了模型的復(fù)雜程度,提高了圖像在輸出時(shí)的速度,又不會(huì)降低場(chǎng)景效果的逼真程度[4]。
參考代碼如下:
虛擬實(shí)驗(yàn)室場(chǎng)景是由多個(gè)仿真模型構(gòu)成,每個(gè)仿真模型又由若干個(gè)幾何體構(gòu)成。為了體現(xiàn)VRML編程的面向?qū)ο笮?,把若干個(gè)子模型成組。成組的模型便于系統(tǒng)整體操作,若要對(duì)模型進(jìn)行修改,可以先解組后經(jīng)過(guò)修改再成組。
地面使用原始坐標(biāo)系,實(shí)驗(yàn)室創(chuàng)建在地面的后部,可以先將坐標(biāo)系移到實(shí)驗(yàn)室地面的中心,創(chuàng)建實(shí)驗(yàn)室的墻體、墻體上的窗戶;在此基礎(chǔ)上,再將坐標(biāo)系移到實(shí)驗(yàn)臺(tái)底面的中心,創(chuàng)建實(shí)驗(yàn)臺(tái)和電源插座等。
光照是一種非常重要的場(chǎng)景效果,但是VRML中并不存在光源的實(shí)體模型,觀察到的只是該光源所模擬出的光照效果。按照光源發(fā)射光線的方向VRML光源可以分為平行光源、錐形光源和點(diǎn)光源3種類型[5]。本次研究以點(diǎn)光源作為實(shí)驗(yàn)室的燈光。在VRML中使用點(diǎn)光照效果節(jié)點(diǎn)(Pointlight節(jié)點(diǎn))來(lái)創(chuàng)建點(diǎn)光源,因?yàn)榭紤]到還會(huì)調(diào)用這個(gè)點(diǎn)光源,所以在這里定義了light1,其代碼如下:
為了使學(xué)生更好地了解實(shí)驗(yàn)步驟,在墻壁上的電視機(jī)以動(dòng)畫紋理的方式加入視頻畫面,當(dāng)瀏覽者走至儀器前,電視機(jī)開始播放該實(shí)驗(yàn)儀器的操作步驟,通過(guò)視頻播放實(shí)驗(yàn)的演示過(guò)程,而當(dāng)瀏覽者離開時(shí),視頻會(huì)停止播放。此處利用Movie Texture節(jié)點(diǎn)和感知型傳感器實(shí)現(xiàn)瀏覽者和對(duì)象之間的交互。當(dāng)瀏覽者漫游到Proximity Sensor節(jié)點(diǎn)的感知空間后,傳感器的enterTime事件記錄下觸發(fā)到該敏感區(qū)的時(shí)間,再把該時(shí)間值傳遞給聲音節(jié)點(diǎn)的startTime,當(dāng)接收到該信號(hào)之后預(yù)設(shè)視頻文件開始播放;而瀏覽者離開這個(gè)敏感區(qū)后,傳感器再把這個(gè)時(shí)間值輸入到exitTime內(nèi),聲音節(jié)點(diǎn)的stopTime接收到由路由事件傳遞過(guò)來(lái)的退出時(shí)間值后,視頻文件被關(guān)閉。
在實(shí)際的開發(fā)工作中所創(chuàng)建的VRML空間通常是很復(fù)雜的。在瀏覽器上漫游時(shí),除了可以通過(guò)鼠標(biāo)實(shí)現(xiàn)自由瀏覽的目的,也可以使用提前設(shè)置好瀏覽路線的方法實(shí)現(xiàn)虛擬瀏覽。在虛擬實(shí)驗(yàn)室場(chǎng)景中,瀏覽者會(huì)瀏覽自己想要學(xué)習(xí)和操作的實(shí)驗(yàn)設(shè)備。在VRML虛擬環(huán)境中,通過(guò)對(duì)視點(diǎn)的控制來(lái)實(shí)現(xiàn)該功能。通過(guò)在場(chǎng)景的合適位置上添加視點(diǎn),在瀏覽器上用視點(diǎn)控制方式進(jìn)行瀏覽,可以提高虛擬瀏覽的速度。
在虛擬場(chǎng)景中設(shè)置多個(gè)視點(diǎn),在瀏覽的過(guò)程中無(wú)論在這個(gè)虛擬空間中的任何位置都可以通過(guò)切換到這些視點(diǎn)而快速地到達(dá)相應(yīng)的空間位置上。
在虛擬儀器分析實(shí)驗(yàn)室里,以紫外分光光度計(jì)的樣品吸光度測(cè)定為例,對(duì)其進(jìn)行具體設(shè)計(jì)與實(shí)現(xiàn),其設(shè)計(jì)思路是按照實(shí)驗(yàn)設(shè)備進(jìn)行模型創(chuàng)建,然后進(jìn)行交互設(shè)計(jì),最后測(cè)試修改。
紫外分光光度計(jì)模型的創(chuàng)建方法主要使用3DS MAX軟件進(jìn)行大部分設(shè)備組件的模擬建模,完成后再將文件轉(zhuǎn)化為VRML文件格式,然后在VRML Pad中對(duì)需要進(jìn)一步交互的組件進(jìn)行手工代碼建模。
紫外分光光度計(jì)測(cè)定樣品吸光度的實(shí)驗(yàn)步驟如下:首先調(diào)節(jié)波長(zhǎng)旋鈕,使波長(zhǎng)顯示窗數(shù)字為所需波長(zhǎng),實(shí)驗(yàn)波長(zhǎng)設(shè)置為260 nm。然后打開比色室的蓋子放入空白比色皿,調(diào)整相應(yīng)的參數(shù)后再將樣品比色皿放入到比色室的卡座中??ㄗ瓧U拉出使樣品液位于光路中,顯示窗中出現(xiàn)的數(shù)字即為樣品吸光度,按下“print鍵”打印結(jié)果。
在VRML虛擬場(chǎng)景中,通過(guò)交互方式使瀏覽者能夠控制場(chǎng)景,真正感受生動(dòng)的效果。當(dāng)瀏覽者瀏覽場(chǎng)景時(shí),鼠標(biāo)是主要的輸入裝置,檢測(cè)器檢測(cè)出鼠標(biāo)的各種動(dòng)作,如指向、單擊和拖曳等操作,場(chǎng)景迅速做出響應(yīng)。能實(shí)現(xiàn)此項(xiàng)功能的檢測(cè)器節(jié)點(diǎn)主要包括:圓柱監(jiān)視器(CylinderSensor)節(jié)點(diǎn)、平面監(jiān)視器(PlaneSensor)節(jié)點(diǎn)、球體監(jiān)視器(SphereSenor)節(jié)點(diǎn)以及觸摸監(jiān)視器(TouchSensor)節(jié)點(diǎn)[6]。
調(diào)節(jié)波長(zhǎng)旋鈕,使波長(zhǎng)顯示窗數(shù)字為260nm。
打開比色室的蓋子放入空白比色皿,利用接觸型的傳感器方法,選用TouchSensor節(jié)點(diǎn)。用鼠標(biāo)對(duì)紫外分光光度計(jì)比色室蓋子上的黑色拉手進(jìn)行點(diǎn)擊,比色室蓋子移動(dòng)直到打開蓋門。然后再單擊空白比色皿的模型,使其移動(dòng)到比色室內(nèi)。
從上面的代碼可以知道,場(chǎng)景中設(shè)置了動(dòng)畫效果,但如果不接觸定點(diǎn)設(shè)備,蓋子不動(dòng),當(dāng)用鼠標(biāo)單擊定點(diǎn)設(shè)備拉手時(shí),比色室的蓋子會(huì)自動(dòng)打開。同樣去單擊比色皿時(shí),會(huì)使比色皿移動(dòng)到比色室內(nèi)。
在使用紫外分光光度儀對(duì)樣品溶液進(jìn)行吸光度分析時(shí),當(dāng)樣品開始分析時(shí),提示信號(hào)燈紅燈亮起,經(jīng)過(guò)多次操作完成分析后,綠燈亮起提示實(shí)驗(yàn)完成,然后對(duì)結(jié)果進(jìn)行分析。這個(gè)邏輯控制用傳感器和插補(bǔ)器是無(wú)法實(shí)現(xiàn)的,需運(yùn)用腳本的應(yīng)用邏輯進(jìn)行控制。
當(dāng)綠燈亮起提示實(shí)驗(yàn)完成后,顯示窗口中的數(shù)字即為樣品吸光度,在這里顯示的數(shù)值只是用來(lái)模擬真實(shí)實(shí)驗(yàn)操作步驟過(guò)程。按print鍵會(huì)將結(jié)果打印出來(lái)。在打印紙帶的過(guò)程中,紙帶可以中途暫停打印,然后再開始打印,所以這需要重新定義TimeSensor節(jié)點(diǎn),并運(yùn)用原型機(jī)制。
虛擬現(xiàn)實(shí)技術(shù)是利用計(jì)算機(jī)模擬真實(shí)世界從而形成虛擬環(huán)境的技術(shù)。而虛擬實(shí)驗(yàn)室在高校的教學(xué)和科研活動(dòng)中發(fā)揮著極大的作用,因此,本文介紹了虛擬實(shí)驗(yàn)室的總體設(shè)計(jì)規(guī)劃和場(chǎng)景分析,使用VRML及相關(guān)的工具對(duì)虛擬實(shí)驗(yàn)室整體的場(chǎng)景進(jìn)行建模,并以紫外分光光度儀實(shí)驗(yàn)設(shè)備為例,簡(jiǎn)述如何通過(guò)該儀器完成實(shí)驗(yàn)步驟,實(shí)現(xiàn)儀器分析實(shí)驗(yàn)室的實(shí)驗(yàn)功能,完成實(shí)驗(yàn)開發(fā)。通過(guò)虛擬實(shí)驗(yàn)室的開發(fā)為高校的教學(xué)模式創(chuàng)新提供新的思路。