周新邵 楊 武 殷智慧 張 強
(1.湖南城市學(xué)院 信息科學(xué)與工程學(xué)院,湖南 益陽 413000;2.湖南科技大學(xué) 地理信息湖南省工程實驗室,湖南 湘潭 411201)
隨著IT技術(shù)和計算機圖像顯示技術(shù)的不斷發(fā)展,計算機虛擬實驗技術(shù)已經(jīng)成為研究熱點。知識更新周期的縮短以及知識量成幾何倍數(shù)的增長,亟需更高效的學(xué)習(xí)方法,為虛擬實驗技術(shù)提供了理論需求[1];而計算機軟硬件技術(shù),計算機網(wǎng)絡(luò)技術(shù)和計算機圖形學(xué)技術(shù)的飛速發(fā)展,為通過計算機網(wǎng)絡(luò)開展虛擬實驗提供了良好的技術(shù)支撐[2]。
虛擬實驗技術(shù)是指利用計算機軟硬件資源,開發(fā)出虛擬實驗場景以及實驗所需要的虛擬實驗器材,實驗者可以像在真實的環(huán)境中一樣完成各種預(yù)定的實驗項目,所取得的學(xué)習(xí)或訓(xùn)練效果等價于甚至優(yōu)于在真實環(huán)境中所取得的效果[3],其具有:透明性、資源共享性、互動操作性、可擴展性、安全性等功能特點。
虛擬實驗的概念自1989年美國弗吉尼亞大學(xué)的威廉·沃爾夫(William Wolf)教授首次提出以來的20多年中,國內(nèi)外專家學(xué)者進行了廣泛研究:美國聯(lián)邦政府在海洋學(xué)、天體物理學(xué)和分子生物學(xué)三大領(lǐng)域建造了各自的虛擬實驗室,開展了一系列探索性研究并取得了實質(zhì)性進展[4];德國魯爾大學(xué)虛擬實驗室是一個有關(guān)控制工程的學(xué)習(xí)系統(tǒng);清華大學(xué)利用虛擬儀器技術(shù)構(gòu)建了汽車發(fā)動機檢測系統(tǒng);浙江大學(xué)CAD&CGL國家重點實驗室開發(fā)出了一個虛擬實驗室,采用層面疊加的繪制技術(shù)和預(yù)消隱技術(shù),實現(xiàn)了立體視覺,同時還提供了方便的交互工具[5];吉林大學(xué)的汽車動態(tài)模擬實驗室實現(xiàn)了車身的虛擬設(shè)計與制造[6]。
我國人口眾多,實驗資源價格昂貴,數(shù)量有限[1],而虛擬實驗只要借助網(wǎng)絡(luò)技術(shù)便能達到相同的目的,所以具有較好的應(yīng)用前景[7]。本文提出以3DS MAX和VRML技術(shù)為支撐,通過構(gòu)建水準儀虛擬實驗?zāi)P?,添加錨節(jié)點實現(xiàn)其在虛擬現(xiàn)實環(huán)境中的交互性,證明通過該種方法進行虛擬實驗的可行性。
VRML是一種基于www的具有一定規(guī)范的描述性格式語言。其最早出現(xiàn)在1994的瑞士日內(nèi)瓦W3會議上[8],是一種描述因特網(wǎng)上交互式三維多媒體的標準文件格式[9],是與多媒體通訊、因特網(wǎng)、虛擬現(xiàn)實等領(lǐng)域密切相關(guān)的技術(shù)。
VRML作為一種虛擬現(xiàn)實三維立體網(wǎng)絡(luò)程序語言,可以在網(wǎng)絡(luò)上穿件逼真的三維場景,使虛擬世界的真實性和交互性得到更充分的體現(xiàn)。其基本原理是用文本信息描述三維場景在互聯(lián)網(wǎng)上傳輸,利用三維圖形生成技術(shù)在本地機上利用多傳感交互技術(shù)以及高分辨顯示技術(shù),由VRML瀏覽器解譯生成逼真三維虛擬場景[10]。
但是,VRML在構(gòu)造三維場景需要較多的規(guī)范數(shù)據(jù),對于構(gòu)建復(fù)雜物體的三維模型時難度較大[11],為了能高效快捷的建立復(fù)雜物體的三維模型,可以借用3Dsmax強大的三維建模功能來彌補VRML在建立復(fù)雜三維模型中的不足,因此VRML與3Dsmax相結(jié)合既能高效快速的建立復(fù)雜三維模型,又能保持良好的動態(tài)交互效果。
3DS MAX是Discreet公司開發(fā)的基于PC系統(tǒng)的三維動畫渲染和制作軟件。在Windows NT出現(xiàn)以前,工業(yè)級的CG(Computer Graphics)制作被SGI圖形工作站所壟斷。3Dsmax與Windows NT組合的出現(xiàn)極大的降低了CG制作的門檻[12]。
3DS Max 2013的新技術(shù)可以在短時間內(nèi)制作出出色的高品質(zhì)的模型紋理、角色動畫和圖像。建模與紋理等高性能工具集可快速呈現(xiàn)出栩栩如生的場景。3DS MAX和VRML有機結(jié)合,選擇合適的建模方法能夠構(gòu)建逼真、美觀的模型,使其更好的融入虛擬現(xiàn)實環(huán)境,開發(fā)出更高規(guī)格的虛擬實驗。
2.3.1 水準儀結(jié)構(gòu)分析。水準儀是根據(jù)水準測量原理測量地面點間高差的儀器。一臺水準儀由調(diào)焦手輪,微動手輪,度盤,目鏡,物鏡,檢測按鈕,水泡反光鏡,圓氣泡,粗瞄器,腳螺旋,基座等部件構(gòu)成(如圖1)。
圖1.水準儀結(jié)構(gòu)示意圖
2.3.2 水準儀工作原理。水準測量是利用一條水平視線,并借助水準尺,來測定地面兩點間的高差,這樣就可由已知點的高程推算出未知點的高程(如圖2)。四等水準測量步驟為:1.將水準尺立于已知高程的水準點上作為后視,水準儀置于施測路線附近合適位置,在施測路線的前進方向上取儀器置后視大致相等的距離放置尺墊,在尺墊上豎立水準尺作為前視。2.觀測員將儀器用圓水準器粗平后瞄準后視標尺,用微調(diào)螺旋將水準管氣泡居中,用中絲讀后視。3.掉轉(zhuǎn)望遠鏡瞄準前視尺,再次將水準氣泡居中,用中絲讀數(shù),記錄并計算數(shù)據(jù)。4.重復(fù)上述步驟,直至完成整個測量工作。
圖2.水準測量原理
水準儀虛擬實驗器材模型的構(gòu)建參照水準儀實物圖進行,依次構(gòu)建出水準儀各個部件的3Dmax模型,然后進行有機的組合,形成完整的水準儀虛擬實驗?zāi)P?。?gòu)建過程中要不斷的對部件進行組合,這樣做的目的是為了減少輸出的代碼數(shù)量。
構(gòu)建的水準儀主要有以下部件:鏡身、鏡頭、物鏡、目鏡、瞄準器、水平旋轉(zhuǎn)螺旋、橫軸、底盤、水平度盤、腳螺旋、基座、圓水準器。
下面僅列舉鏡頭和瞄準器的制作過程:
鏡頭的制作:在前視圖中畫一個圓柱體,調(diào)節(jié)它的半徑比鏡身半徑稍小。點擊右鍵將它轉(zhuǎn)換成可編輯多邊形,選擇面編輯對象,點擊一端的圓面,按delete鍵將它刪除,切換到邊界編輯對象,選擇剛才我們制作出的邊界,選擇縮放命令,按住shift鍵,分別鼠標向里稍微縮放復(fù)制、沿高方向移動復(fù)制。如圖3(a)。再次沿著圓面向里縮放復(fù)制,就剩下一個小圓口時,選擇編輯器中的封口命令,打開材質(zhì)編輯器,選擇黑色材質(zhì),拖動鼠標添加到編輯對象,圖3(b)。
圖3.水準儀鏡頭
瞄準器的制作:首先,在前視圖中畫一個圓柱體,調(diào)節(jié)并記下半徑和高度。在前視圖中再創(chuàng)建一個圓柱體,調(diào)節(jié)它的參數(shù),使它的邊數(shù)為三。如圖4(a),移動兩個物體使三角柱的三角形內(nèi)接于圓柱面中,并且三角柱兩端都露出來。選擇符合對象模式,通過波爾命令中的拾取波爾操作,使其達到相應(yīng)的效果,最后對它添加黑色的材質(zhì),圖4(b)。
圖4.水準儀瞄準器
水準儀虛擬實驗?zāi)P退囊晥D效果如圖5所示:
圖5.虛擬水準儀模型四視圖
從3Dmax中倒出水準儀場景文件,命名為“水準儀.wrl”,用VrmlPad編輯器打開:
可以看到,所構(gòu)建的水準儀模型各個部件在程序中都是坐標變換節(jié)點“Trainsform”。注意,在導(dǎo)出對話框中選擇Indentation,選擇該項會使輸出的VRML源代碼以縮格形式編寫,便于閱讀與修改;選擇Primitives,將盡可能的將三維場景以VRML 2.0原始造型的形式輸出,這將有利于減小輸出的VRML文件的大小。
以上構(gòu)造的水準儀模型在虛擬現(xiàn)實環(huán)境中可以進行旋轉(zhuǎn)和縮放操作,實現(xiàn)各角度,全方位的瀏覽,但是不具有交互功能,而我們設(shè)計虛擬實驗的目的恰恰是使水準儀具有交互功能,因此,我們需要為其添加錨節(jié)點[13],錨節(jié)點功能類似超鏈接,當(dāng)鼠標單擊某個部位時,可以彈出提示或是實現(xiàn)場景的跳轉(zhuǎn),實現(xiàn)部件的相關(guān)操作與功能。
錨節(jié)點包括:Children公共域、Description公共域、bBoxsize域、bBoxCenter域、Param eter域、Url域、Container Field域和 Class域等。其具有 2個主要事件:event Out出事件和 event In入事件,出事件涉及 Param eter_changed域Description_changed域,作用是傳出參數(shù)和描述的變化;入事件的作用主要是添加或刪除children節(jié)點[14]。
為水平旋轉(zhuǎn)螺旋添加錨節(jié)點(本實驗只對水平旋轉(zhuǎn)螺旋添加錨節(jié)點進行驗證,其它部件錨節(jié)點的添加步驟相同。),當(dāng)鼠標指向該節(jié)點時,出現(xiàn)提示文字“Turn Left/Turn Right”,當(dāng)鼠標單擊時,彈出該節(jié)點的功能詳細描述,并實現(xiàn)螺旋的調(diào)節(jié)功能。水平旋轉(zhuǎn)螺旋插入錨節(jié)點以后的代碼如下:
借助3DS MAX軟件和VRML虛擬建模語言設(shè)計虛擬實驗過程,構(gòu)建虛擬實驗?zāi)P?,為水準儀的水平旋轉(zhuǎn)螺旋添加錨節(jié)點,在實驗中鼠標指向該節(jié)點時,彈出提示信息“Turn Left/Turn Right”,當(dāng)鼠標單擊時觸發(fā)該事件,完成螺旋的旋轉(zhuǎn)操作。實驗得結(jié)果表明:1.用3DS MAX構(gòu)建虛擬實驗?zāi)P?,與VRML相結(jié)合進行交互的虛擬實驗方法可行。2.使用3DSMAX能夠高效快捷地建立復(fù)雜物體的三維模型,借助VRML中的錨節(jié)點功能可以實現(xiàn)實驗對象在虛擬現(xiàn)實環(huán)境中的良好交互。3.基于3DS MAX和VRML的虛擬實驗方法有助于用戶更好地了解及使用實驗器材。
文章探討了借助3DS MAX和VRML進行虛擬實驗的可行性。限于時間,僅對水準儀進行了三維建模,且重點對該儀器的水平旋轉(zhuǎn)螺旋添加錨節(jié)點進行了交互實驗,其他功能及儀器的虛擬實驗有待于進一步探討。隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,建立基于WEB服務(wù)的三維虛擬實驗系統(tǒng)共享平臺是虛擬實驗技術(shù)的發(fā)展方向。
[1]熊焰,姚俊.在線仿真物理化學(xué)虛擬實驗系統(tǒng)的開發(fā)[J].化工高等教育,2012,(1):26-29.
[2]董輝,馬建.基于虛擬密網(wǎng)的網(wǎng)絡(luò)攻防實驗平臺的構(gòu)建[J],齊齊哈爾大學(xué)學(xué)報,2012,(2):67-71.
[3]朱敏.虛擬實驗與教學(xué)應(yīng)用研究[D].華東師范大學(xué),2006.
[4]陳明明.桌面虛擬實驗中學(xué)習(xí)者知識構(gòu)建和遷移的影響因素研究[D].浙江師范大學(xué),2011.
[5]趙越.基于B-S模式的組成原理虛擬實驗系統(tǒng)的設(shè)計與實現(xiàn)[D].吉林大學(xué),2007.
[6]李笑,董云耀.基于web的虛擬實驗室的研究與設(shè)計[J].計算機與數(shù)字工程,2006,(2),133-134.
[7]盧永清.在實驗教學(xué)中引入虛擬實驗技術(shù)的研究[J].達縣師范高等??茖W(xué)校學(xué)報,2005,(2):58-60.
[8]Using unfamiliar platforms in software engineering projects[J].Hall,Gregory A.Source:Inter-national Conference on Information Technology,2005,(4):315-318
[9]王鳴,劉喜昂,宋蔚.基于VRML的虛擬實驗系統(tǒng)研究[J].現(xiàn)代電子技術(shù),2006,(15):105-112.
[10]朵天林.基于虛擬實驗技術(shù)的攝像實驗仿真系統(tǒng)[D].華中科技大學(xué),2006.
[11] Virtual lab:Bring the hands-on activity to online courses[J].Yang,Biwu Source:ASEE Annual Conference Proceedings,1999.
[12]百度百科.http://baike.baidu.com/view/179088.htm,2013-01.
[13]屈劍鋒,郭茂耘.一種基于錨節(jié)點分簇的傳感器網(wǎng)絡(luò)節(jié)點定位方法[J].計算機應(yīng)用研究,2011,(9):3471-3474.
[14]王昊鵬,賈新宇.Anchor 節(jié)點實現(xiàn) VRML 虛擬場景跳轉(zhuǎn)[J].計算機與信息技術(shù),2006,(7):88-90.