張 巖
(江蘇財經職業技術學院 江蘇 淮安 220003)
虛擬實驗室(VL)是為了實現研究、實現遠程協作或各種創新活動,通過分布式信息通信技術產生并發布結果的電子工作室。虛擬實驗室的特點是構造簡單、操作直觀、成本低廉、利用率較高,通過虛擬實驗技術可以實現不同地域、不同人群集中起來,實現合作實驗、遠程實驗、協同研究[1]。在日常的實驗教學中借助虛擬實驗室不僅可以緩解教學資源的困難,也解決了實驗時空受限和管理繁瑣等多方面問題。
虛擬現實技術(VR)是利用計算機模擬真實世界,從而形成虛擬環境的技術,通過虛擬現實模擬出一種具有較高仿真度的虛擬場景[2]。虛擬現實建模語言(VRML)是一種建模語言,是桌面虛擬現實系統中最著名、最經典的虛擬現實技術。使用VRML實現的虛擬仿真儀器分析實驗室,瀏覽者可以通過鼠標、鍵盤利用瀏覽器實現從各個角度、對實驗室的各種儀器進行動態觀察,播放實驗步驟的視頻等,使學生真正沉浸在虛擬場景中。因此,本文就儀器分析實驗室用虛擬仿真技術進行開發研究,以期為虛擬仿真實驗室的開發奠定基礎。
在實驗室虛擬場景中,簡單的造型如墻面、實驗臺等在確立整體的坐標系直接使用VRML建模;復雜的造型如各種實驗儀器在確定了儀器型號后,根據實物圖在3DS MAX中進行1:1建模,能使用貼圖方式顯示模型效果的對象最好用此方式建模。在此以紫外分光光度計和窗戶為例,分別說明復雜造型的創建方法以及貼圖創建模型的方法[3]。
復雜造型以紫外分光光度計為例,首先在3DS MAX中利用基本幾何體和復合運算等方法創建出該實驗設備的造型,以ziwaiyi.wrl為名導出,圖1(a)是參考實驗設備的原型,圖1(b)為設計的虛擬紫外分光光度計外觀,最后經過調整坐標和修改比例之后,再通過VRML 內聯節點把模型導入到實驗室的虛擬環境中,導入過程的代碼如下。

圖1 紫外分光光度計實物圖與模型圖
#紫外分光光度計

在模型制作過程中,使用紋理映射的方法構建出實驗室窗戶的表面,用數碼相機拍攝出真實窗戶的樣式,通過VRML的紋理映射(text)節點,在對應的多邊形上“貼上”相應的紋理圖片,用來代替具體的模型。通過這種方法實現的墻壁上窗戶效果,既降低了模型的多邊形數量和減少了模型的復雜程度,提高了圖像在輸出時的速度,又不會降低場景效果的逼真程度[4]。
參考代碼如下:

虛擬實驗室場景是由多個仿真模型構成,每個仿真模型又由若干個幾何體構成。為了體現VRML編程的面向對象性,把若干個子模型成組。成組的模型便于系統整體操作,若要對模型進行修改,可以先解組后經過修改再成組。
地面使用原始坐標系,實驗室創建在地面的后部,可以先將坐標系移到實驗室地面的中心,創建實驗室的墻體、墻體上的窗戶;在此基礎上,再將坐標系移到實驗臺底面的中心,創建實驗臺和電源插座等。
光照是一種非常重要的場景效果,但是VRML中并不存在光源的實體模型,觀察到的只是該光源所模擬出的光照效果。按照光源發射光線的方向VRML光源可以分為平行光源、錐形光源和點光源3種類型[5]。本次研究以點光源作為實驗室的燈光。在VRML中使用點光照效果節點(Pointlight節點)來創建點光源,因為考慮到還會調用這個點光源,所以在這里定義了light1,其代碼如下:

為了使學生更好地了解實驗步驟,在墻壁上的電視機以動畫紋理的方式加入視頻畫面,當瀏覽者走至儀器前,電視機開始播放該實驗儀器的操作步驟,通過視頻播放實驗的演示過程,而當瀏覽者離開時,視頻會停止播放。此處利用Movie Texture節點和感知型傳感器實現瀏覽者和對象之間的交互。當瀏覽者漫游到Proximity Sensor節點的感知空間后,傳感器的enterTime事件記錄下觸發到該敏感區的時間,再把該時間值傳遞給聲音節點的startTime,當接收到該信號之后預設視頻文件開始播放;而瀏覽者離開這個敏感區后,傳感器再把這個時間值輸入到exitTime內,聲音節點的stopTime接收到由路由事件傳遞過來的退出時間值后,視頻文件被關閉。
在實際的開發工作中所創建的VRML空間通常是很復雜的。在瀏覽器上漫游時,除了可以通過鼠標實現自由瀏覽的目的,也可以使用提前設置好瀏覽路線的方法實現虛擬瀏覽。在虛擬實驗室場景中,瀏覽者會瀏覽自己想要學習和操作的實驗設備。在VRML虛擬環境中,通過對視點的控制來實現該功能。通過在場景的合適位置上添加視點,在瀏覽器上用視點控制方式進行瀏覽,可以提高虛擬瀏覽的速度。
在虛擬場景中設置多個視點,在瀏覽的過程中無論在這個虛擬空間中的任何位置都可以通過切換到這些視點而快速地到達相應的空間位置上。
在虛擬儀器分析實驗室里,以紫外分光光度計的樣品吸光度測定為例,對其進行具體設計與實現,其設計思路是按照實驗設備進行模型創建,然后進行交互設計,最后測試修改。
紫外分光光度計模型的創建方法主要使用3DS MAX軟件進行大部分設備組件的模擬建模,完成后再將文件轉化為VRML文件格式,然后在VRML Pad中對需要進一步交互的組件進行手工代碼建模。
紫外分光光度計測定樣品吸光度的實驗步驟如下:首先調節波長旋鈕,使波長顯示窗數字為所需波長,實驗波長設置為260 nm。然后打開比色室的蓋子放入空白比色皿,調整相應的參數后再將樣品比色皿放入到比色室的卡座中??ㄗ瓧U拉出使樣品液位于光路中,顯示窗中出現的數字即為樣品吸光度,按下“print鍵”打印結果。
在VRML虛擬場景中,通過交互方式使瀏覽者能夠控制場景,真正感受生動的效果。當瀏覽者瀏覽場景時,鼠標是主要的輸入裝置,檢測器檢測出鼠標的各種動作,如指向、單擊和拖曳等操作,場景迅速做出響應。能實現此項功能的檢測器節點主要包括:圓柱監視器(CylinderSensor)節點、平面監視器(PlaneSensor)節點、球體監視器(SphereSenor)節點以及觸摸監視器(TouchSensor)節點[6]。
調節波長旋鈕,使波長顯示窗數字為260nm。
打開比色室的蓋子放入空白比色皿,利用接觸型的傳感器方法,選用TouchSensor節點。用鼠標對紫外分光光度計比色室蓋子上的黑色拉手進行點擊,比色室蓋子移動直到打開蓋門。然后再單擊空白比色皿的模型,使其移動到比色室內。
從上面的代碼可以知道,場景中設置了動畫效果,但如果不接觸定點設備,蓋子不動,當用鼠標單擊定點設備拉手時,比色室的蓋子會自動打開。同樣去單擊比色皿時,會使比色皿移動到比色室內。
在使用紫外分光光度儀對樣品溶液進行吸光度分析時,當樣品開始分析時,提示信號燈紅燈亮起,經過多次操作完成分析后,綠燈亮起提示實驗完成,然后對結果進行分析。這個邏輯控制用傳感器和插補器是無法實現的,需運用腳本的應用邏輯進行控制。
當綠燈亮起提示實驗完成后,顯示窗口中的數字即為樣品吸光度,在這里顯示的數值只是用來模擬真實實驗操作步驟過程。按print鍵會將結果打印出來。在打印紙帶的過程中,紙帶可以中途暫停打印,然后再開始打印,所以這需要重新定義TimeSensor節點,并運用原型機制。
虛擬現實技術是利用計算機模擬真實世界從而形成虛擬環境的技術。而虛擬實驗室在高校的教學和科研活動中發揮著極大的作用,因此,本文介紹了虛擬實驗室的總體設計規劃和場景分析,使用VRML及相關的工具對虛擬實驗室整體的場景進行建模,并以紫外分光光度儀實驗設備為例,簡述如何通過該儀器完成實驗步驟,實現儀器分析實驗室的實驗功能,完成實驗開發。通過虛擬實驗室的開發為高校的教學模式創新提供新的思路。