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