李永濤
摘要:隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,網(wǎng)絡(luò)虛擬實(shí)驗(yàn)也相應(yīng)地產(chǎn)生并發(fā)展起來。該文以虛擬實(shí)驗(yàn)場(chǎng)景的建模設(shè)計(jì)為主題。首先給出了虛擬網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)的3D建??傮w設(shè)計(jì);然后介紹了網(wǎng)絡(luò)虛擬實(shí)驗(yàn)建模的實(shí)現(xiàn);最后給出了網(wǎng)絡(luò)虛擬實(shí)驗(yàn)的優(yōu)化。虛擬化學(xué)實(shí)驗(yàn)場(chǎng)景的建模實(shí)現(xiàn),為通用網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)的研發(fā)提供了有意義的探索。
關(guān)鍵詞:網(wǎng)絡(luò)虛擬實(shí)驗(yàn);虛擬場(chǎng)景;建模;X3D
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)07-1543-03
1 網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室與X3D技術(shù)
虛擬實(shí)驗(yàn)室最早在1989年,由美國弗吉尼亞大學(xué)(University Of Vinginia)的威廉·沃爾夫(William Wulf)教授提出,用來描述計(jì)算機(jī)網(wǎng)絡(luò)化的虛擬實(shí)驗(yàn)環(huán)境。1995年,聯(lián)合國教科文組織將虛擬實(shí)驗(yàn)室定義為:利用分散的信息和通信技術(shù)以創(chuàng)造及獲取成果為目的,在科研與其他創(chuàng)造性活動(dòng)中進(jìn)行遠(yuǎn)距離合作和實(shí)驗(yàn)的一種電子協(xié)作組[1]。
X3D(Extensible 3D)是新一代網(wǎng)絡(luò)三維交互式圖形的軟件標(biāo)準(zhǔn)。X3D被定義為可交互操作、可擴(kuò)展、跨平臺(tái)的網(wǎng)絡(luò)三維標(biāo)準(zhǔn)。相對(duì)于VRML而言,X3D增加了計(jì)算器和插值驅(qū)動(dòng)的連續(xù)動(dòng)畫、鍵盤輸入、人性化動(dòng)畫和變形、多通道/多進(jìn)程紋理貼圖、多邊形幾何體、參數(shù)化幾何體、2D矢量、平面圖形等新特性[2]。
利用強(qiáng)大X3D技術(shù)構(gòu)建虛擬實(shí)驗(yàn)平臺(tái),用戶能在更加生動(dòng)逼真的虛擬環(huán)境中進(jìn)行化學(xué)實(shí)驗(yàn),從而使得實(shí)驗(yàn)環(huán)境更加人性化、智能化。因此,采用X3D技術(shù)開發(fā)虛擬實(shí)驗(yàn)具有相當(dāng)可行性的。
2 虛擬實(shí)驗(yàn)室建模的總體設(shè)計(jì)與實(shí)現(xiàn)方案
在虛擬實(shí)驗(yàn)的“3I”特性中,“沉浸感”是其中一個(gè)重要的特性。沉浸感的實(shí)現(xiàn)需要生成逼真的虛擬實(shí)驗(yàn)場(chǎng)景。虛擬實(shí)驗(yàn)場(chǎng)景的建立要求場(chǎng)景中各種實(shí)驗(yàn)設(shè)施、實(shí)驗(yàn)儀器、實(shí)驗(yàn)物品等都要和真實(shí)的實(shí)驗(yàn)環(huán)境一致。這不但要求在外形上與真實(shí)環(huán)境一致,而且要求它們?cè)谛螒B(tài)、光照、質(zhì)感方面都十分逼真[3]。
虛擬實(shí)驗(yàn)系統(tǒng)的建模一般可分為兩大類:一是實(shí)驗(yàn)室環(huán)境,包括室內(nèi)室外建模,室內(nèi)基礎(chǔ)設(shè)施建模如實(shí)驗(yàn)桌子、書架等。二是虛擬實(shí)驗(yàn)器材,包括虛擬儀器和虛擬物品。
虛擬實(shí)驗(yàn)環(huán)境建??梢越y(tǒng)一建立一次,基本保持不變,以統(tǒng)一風(fēng)格。如室外天空、室內(nèi)的墻壁、門窗、天花板等。虛擬儀器和物品可采用面向?qū)ο蟮慕7椒ǎ瑢⑵浞庋b成一類一類的原型,方便實(shí)驗(yàn)的調(diào)用、裝配和修改。
經(jīng)過以上分析,虛擬實(shí)驗(yàn)室建模的設(shè)計(jì)方案如圖1所示。
3 虛擬實(shí)驗(yàn)室建模的實(shí)現(xiàn)
3.1 虛擬實(shí)驗(yàn)室環(huán)境的設(shè)置
虛擬實(shí)驗(yàn)室環(huán)境繪制包括墻壁、天花板、門窗等。圖2所示為虛擬實(shí)驗(yàn)室內(nèi)場(chǎng)景的設(shè)計(jì)方案。
整個(gè)虛擬實(shí)驗(yàn)室室內(nèi)的場(chǎng)景主要包括虛擬實(shí)驗(yàn)環(huán)境設(shè)計(jì)和室內(nèi)的裝飾設(shè)計(jì)。實(shí)驗(yàn)環(huán)境設(shè)計(jì)包括實(shí)驗(yàn)室室內(nèi)空間、桌椅、門窗,實(shí)驗(yàn)臺(tái),用于播放實(shí)驗(yàn)操作視頻的投影儀等。這些模型可以通過X3D的基本建模節(jié)點(diǎn),綜合運(yùn)用變換節(jié)點(diǎn)Transform、組節(jié)點(diǎn)Group、內(nèi)聯(lián)節(jié)點(diǎn)Inline等實(shí)現(xiàn)造型。整個(gè)場(chǎng)景文件很小,非常有利于網(wǎng)絡(luò)傳輸和瀏覽。
實(shí)驗(yàn)室室內(nèi)空間建模可以直接采用X3D的三維造型節(jié)點(diǎn)。其制作方法可以先采用Box建立六個(gè)不同長、寬、高的長方體,構(gòu)造出墻壁、天花板、地板六個(gè)面。然后利用外觀節(jié)點(diǎn)Appearance進(jìn)行外觀設(shè)置。
實(shí)驗(yàn)室的其它場(chǎng)景如實(shí)驗(yàn)臺(tái),藥品架、投影儀等的建模都可以采用以上的原理實(shí)現(xiàn)。
3.2 簡(jiǎn)單虛擬實(shí)驗(yàn)儀器、物品的建模實(shí)現(xiàn)
對(duì)于簡(jiǎn)單的儀器,可以利用X3D的基本造型節(jié)點(diǎn)如Box、Cylinder、Cone、IndexFaceSet、Extrusion實(shí)現(xiàn)。
下面以鐵架臺(tái)實(shí)驗(yàn)裝置的實(shí)例來說明虛擬實(shí)驗(yàn)儀器、物品的建模實(shí)現(xiàn)過程。
利用幾何建模的思想分析,鐵架臺(tái)由臺(tái)體、鐵環(huán)、鐵夾三個(gè)部件構(gòu)成。臺(tái)體由底座子部件和鐵桿子部件構(gòu)成。
底座子部件和鐵桿子部件,由X3D的Box盒子節(jié)點(diǎn)和Cylinder圓柱體節(jié)點(diǎn)建模實(shí)現(xiàn)。
鐵架臺(tái)實(shí)驗(yàn)裝置中Extrusion中的鐵環(huán)造型,由crossSection定義一個(gè)放樣二維圖形輪廓,其輪廓是一個(gè)圓。因此,crossSection的二維坐標(biāo)點(diǎn)可以通過圓的參數(shù)方程計(jì)算出二維關(guān)鍵點(diǎn),繪制出圓曲線。圓環(huán)幾何軌跡也是一個(gè)圓,通過Extrusion中的spine定義一個(gè)封閉的圓軌跡,造型將沿著這條曲線被拉伸。
鐵夾的建模方法和鐵環(huán)類似,只需通過Extrusion中的spine定義一個(gè)未被完完封閉的圓軌跡。
3.3 復(fù)雜虛擬實(shí)驗(yàn)儀器的設(shè)計(jì)與實(shí)現(xiàn)
考慮到復(fù)雜實(shí)驗(yàn)儀器常常由多個(gè)部件組成這一事實(shí),該文采用了層次化幾何建模方法[4],將虛擬儀器的幾何建模分為:對(duì)象層、結(jié)構(gòu)層和屬性層3個(gè)基本層次。通過對(duì)化學(xué)儀器的分析,虛擬化學(xué)儀器是由一個(gè)個(gè)獨(dú)立的組件組成。其中組件還可以細(xì)分為子組件1,子組件2……。其基本設(shè)計(jì)可以用圖3來表示。
為了將虛擬儀器對(duì)象實(shí)例化,可以采用X3D的原型機(jī)制。下面以圓底燒瓶原型為設(shè)計(jì)實(shí)例,介紹基于原型機(jī)制的虛擬儀器設(shè)計(jì)方法。
首先,在X3D程序中以ProtoDeclare聲明一個(gè)新節(jié)點(diǎn)的名稱。ProtoDeclare中包含ProtoInterface及ProtoBody。在ProtoInterface中列出該節(jié)點(diǎn)所有的字段,并注明字段的名稱、數(shù)據(jù)類型、操作類型,在ProtoBody中定義出新節(jié)點(diǎn)的功能。以下為程序主要代碼:
在原型代碼中,引入三維坐標(biāo),顏色參數(shù),實(shí)現(xiàn)對(duì)像的實(shí)例化。
4 虛擬實(shí)驗(yàn)室建模的優(yōu)化
在創(chuàng)建復(fù)雜的X3D場(chǎng)景時(shí),除了創(chuàng)建大量的模型外,還必須考慮X3D文件的長度和場(chǎng)景的渲染速度。下面是在構(gòu)建虛擬實(shí)驗(yàn)室時(shí)采用的場(chǎng)景優(yōu)化方法:
1)solid域值設(shè)置的優(yōu)化
我們可以設(shè)置X3D建模節(jié)點(diǎn)圓柱體、圓錐體的side;面造型、擠出造型節(jié)點(diǎn)的solid域值設(shè)置為TRUE,X3D只渲染表面,不渲染內(nèi)面,將用戶不需要觀察的面去掉。此時(shí),并不影響用戶對(duì)儀器的觀察和交互操作,并且減少了渲染量,實(shí)現(xiàn)了瀏覽器的優(yōu)化。
2)利用DEF、USE對(duì)節(jié)點(diǎn)進(jìn)行重用
在場(chǎng)景中經(jīng)常有部分節(jié)點(diǎn)有著相同或相近的特點(diǎn),比如擺放不同實(shí)驗(yàn)儀器的實(shí)驗(yàn)臺(tái),它們的模型是相同的,僅有位置上的區(qū)別,我們可以對(duì)一個(gè)包括實(shí)驗(yàn)臺(tái)群組節(jié)點(diǎn)命名,如
3)采用原型PROTO機(jī)制
原型除了減少代碼重復(fù)外,還提供了內(nèi)部屬性的設(shè)置。原型可以用來創(chuàng)建新的節(jié)點(diǎn),并且可以靈活地修改所定義的原型,然后導(dǎo)入到虛擬場(chǎng)景中,從而在虛擬實(shí)驗(yàn)建模中節(jié)省大量的時(shí)間和精力。通過定義原型,我們可以不必重復(fù)建立模型,只需定義其內(nèi)部屬性和在場(chǎng)景中引用,從而達(dá)到建模的優(yōu)化。
4)利用Inline內(nèi)聯(lián)聯(lián)節(jié)點(diǎn)
將復(fù)雜的大場(chǎng)景分成幾個(gè)小的簡(jiǎn)單的場(chǎng)景,在用戶需要觀察時(shí)候內(nèi)聯(lián)到場(chǎng)景中。如虛擬實(shí)驗(yàn)室中有門、窗、投影儀等,將這些造型分別存放在不同X3D文件中,在構(gòu)造場(chǎng)景時(shí)再內(nèi)聯(lián)需要的造型文件。
5 結(jié)束語
本文以X3D為核心技術(shù),深入探討了如何利用X3D技術(shù)構(gòu)建虛擬實(shí)驗(yàn)場(chǎng)景。對(duì)室內(nèi)場(chǎng)景的建模,虛擬實(shí)驗(yàn)設(shè)備建模,包括虛擬儀器和虛擬物品,做了深入的理論研究和實(shí)施規(guī)劃,提出了采用X3D建模的具體實(shí)施方案,并給出了建模方案的優(yōu)化方法。
參考文獻(xiàn):
[1] 周雪松,豐美麗,馬幼捷,等.虛擬實(shí)驗(yàn)技術(shù)的研究現(xiàn)狀及發(fā)展趨勢(shì)[J].自動(dòng)化儀表,2008,29(4):1-2.
[2] ISO/IEC 19775-1.2[EB/Ol].(2008)[2012-12-27].http://www.web3d.org/x3d/specifications/ISO-IEC-19775-1.2-X3D-AbstractSpecification/index.html.
[3] 徐凱宏,李會(huì),岳聽.網(wǎng)絡(luò)教學(xué)中構(gòu)建虛擬實(shí)驗(yàn)的設(shè)計(jì)[J].中國林業(yè)教育,2006 (1):60-62.
[4] 趙沁平.DVENET分布式虛擬現(xiàn)實(shí)應(yīng)用系統(tǒng)運(yùn)行平臺(tái)與開發(fā)工具[M].北京:科學(xué)出版社,2005:227-230.