房愛(ài)蓮 侯艷艷
[摘要]隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和教學(xué)資源的擴(kuò)大,改進(jìn)和優(yōu)化虛擬實(shí)驗(yàn)室體系結(jié)構(gòu),建立三維模型庫(kù),可以提高模型利用率并加快模型檢索速度,實(shí)現(xiàn)虛擬教學(xué)資源的共享性和擴(kuò)展性。初步探討了基于網(wǎng)絡(luò)模型庫(kù)的虛擬實(shí)驗(yàn)室的體系結(jié)構(gòu),分析了三維模型庫(kù)設(shè)計(jì)過(guò)程中需要考慮的幾個(gè)問(wèn)題,最后實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的三維模型庫(kù)原型系統(tǒng),并應(yīng)用在虛擬考察實(shí)驗(yàn)室中。
[關(guān)鍵詞]三維模型庫(kù);模型庫(kù)管理系統(tǒng);虛擬實(shí)驗(yàn)室;體系結(jié)構(gòu)
[中圖分類(lèi)號(hào)]G40-057 [文獻(xiàn)標(biāo)識(shí)碼]A [論文編號(hào)]1009-8097(2012)10-0114-04
引言
隨著虛擬現(xiàn)實(shí)技術(shù)和網(wǎng)絡(luò)通訊技術(shù)的不斷發(fā)展,眾多高校紛紛提出了自己的虛擬實(shí)驗(yàn)室建設(shè)方案。在虛擬實(shí)驗(yàn)室中,學(xué)生既可以在虛擬實(shí)驗(yàn)平臺(tái)上動(dòng)手操作,也可以自己設(shè)計(jì)實(shí)驗(yàn)。與傳統(tǒng)的教學(xué)方式相比,學(xué)生能夠比較直觀的理解學(xué)習(xí)內(nèi)容。
三維仿真模型是虛擬實(shí)驗(yàn)室中重要的組成部分,對(duì)學(xué)生來(lái)說(shuō),虛擬實(shí)驗(yàn)室中的三維模型通常有三種來(lái)源,自己動(dòng)手開(kāi)發(fā)、網(wǎng)絡(luò)下載和教師提供,得到的三維模型通常存在很多問(wèn)題,如模型種類(lèi)有限,格式不統(tǒng)一,調(diào)整參數(shù)不一致等。為此,本文認(rèn)為開(kāi)發(fā)一個(gè)以學(xué)科分類(lèi)為基礎(chǔ)的網(wǎng)絡(luò)三維模型庫(kù)是非常必要的,通過(guò)建立標(biāo)準(zhǔn)的模型資源庫(kù),提高三維模型的利用率。
國(guó)內(nèi)外在仿真模型資源庫(kù)方面也有一些研究,為了提高模型利用率和加快模型檢索速度,從不同的角度進(jìn)行了分析,探討了三維模型庫(kù)的模型分類(lèi)方法、體系結(jié)構(gòu)、訪問(wèn)方式、系統(tǒng)用戶(hù)和功能等,具有較高的參考價(jià)值。目前存在的大部分的三維模型庫(kù)主要針對(duì)特定領(lǐng)域和應(yīng)用,例如,用于醫(yī)學(xué)教育的三維模型庫(kù),通過(guò)對(duì)醫(yī)學(xué)教育中常用到的形體進(jìn)行建模,形成可重用的三維模型。機(jī)械元件三維模型庫(kù),主要針對(duì)機(jī)械制圖課程。鐵路構(gòu)造物三維模型庫(kù)可以簡(jiǎn)化景觀模型的建立,并有效的管理三維模型。電子戰(zhàn)仿真模型庫(kù)系統(tǒng),研究了基于構(gòu)件的軟件復(fù)用技術(shù)在電子戰(zhàn)仿真領(lǐng)域中的應(yīng)用。但是大部分研究主要關(guān)注模型本身的管理問(wèn)題,沒(méi)有考慮到三維模型與場(chǎng)景交互產(chǎn)生的數(shù)據(jù)信息,對(duì)于一個(gè)具有交互功能的虛擬場(chǎng)景來(lái)說(shuō),除了模型本身的描述信息外,還應(yīng)該包括模型在場(chǎng)景中的參數(shù)信息,以及用戶(hù)輸入的數(shù)據(jù)資料。所以,本文在描述網(wǎng)絡(luò)三維模型庫(kù)組織結(jié)構(gòu)的同時(shí),也考慮了場(chǎng)景與模型交互產(chǎn)生的數(shù)據(jù)的存儲(chǔ)問(wèn)題,區(qū)分了模型庫(kù)和數(shù)據(jù)庫(kù)的不同,便于模型的調(diào)用和數(shù)據(jù)的管理。
一、系統(tǒng)結(jié)構(gòu)
基于網(wǎng)絡(luò)三維模型庫(kù)的虛擬實(shí)驗(yàn)室由三個(gè)部分組成:模型庫(kù)和數(shù)據(jù)庫(kù)、場(chǎng)景管理系統(tǒng)、可視化管理,如圖l:
1.模型庫(kù)和數(shù)據(jù)庫(kù)
基于網(wǎng)絡(luò)三維模型庫(kù)的虛擬實(shí)驗(yàn)室,首先需要區(qū)分模型庫(kù)和數(shù)據(jù)庫(kù)。將模型和數(shù)據(jù)分開(kāi)存放,目的是降低三維模型與虛擬場(chǎng)景的耦合度。模型庫(kù)是將虛擬實(shí)驗(yàn)室中反復(fù)使用的三維模型,用專(zhuān)業(yè)建模工具繪制出來(lái),并根據(jù)模型分類(lèi)存入模型庫(kù),模型庫(kù)中的模型與具體的虛擬場(chǎng)景無(wú)關(guān)。數(shù)據(jù)庫(kù)則針對(duì)具體的虛擬場(chǎng)景,存放與場(chǎng)景建立有關(guān)的信息,如場(chǎng)景中模型位置參數(shù),用戶(hù)輸入屬性等,數(shù)據(jù)庫(kù)只需記錄三維模型在模型庫(kù)中的索引號(hào),而不必存放具體的三維模型文件。
2.場(chǎng)景管理系統(tǒng)
場(chǎng)景管理系統(tǒng)包括模型庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)兩部分。模型管理系統(tǒng)是一個(gè)獨(dú)立于具體應(yīng)用領(lǐng)域,對(duì)模型進(jìn)行分類(lèi)和維護(hù),支持模型生成、存儲(chǔ)、查詢(xún)、運(yùn)行和分析應(yīng)用的軟件系統(tǒng)。各個(gè)領(lǐng)域的專(zhuān)家和用戶(hù)能夠利用模型庫(kù)管理系統(tǒng)找到所需的三維模型,放入虛擬場(chǎng)景中。數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)對(duì)虛擬場(chǎng)景數(shù)據(jù)的存儲(chǔ)和讀取。
模型庫(kù)管理系統(tǒng)與數(shù)據(jù)庫(kù)管理系統(tǒng)共同管理虛擬場(chǎng)景中的對(duì)象。當(dāng)用戶(hù)選擇一個(gè)已存在的虛擬場(chǎng)景時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)首先訪問(wèn)場(chǎng)景數(shù)據(jù)庫(kù),取出每條數(shù)據(jù),拿到三維模型在模型庫(kù)中索引信息,位置參數(shù),交互數(shù)據(jù),將索引號(hào)傳遞給模型庫(kù)管理系統(tǒng)找到該模型,根據(jù)參數(shù)信息將模型還原到場(chǎng)景中的具體位置,當(dāng)用戶(hù)點(diǎn)擊模型時(shí),顯示模型的交互信息。
場(chǎng)景重現(xiàn)時(shí),模型庫(kù)管理系統(tǒng)提供了兩種模型調(diào)用的方式,一種是直接調(diào)用網(wǎng)絡(luò)模型庫(kù)中的三維模型到虛擬場(chǎng)景中,另一種是將網(wǎng)絡(luò)模型庫(kù)中的模型提前下載到本地模型庫(kù)中再調(diào)用。后者有利于加快場(chǎng)景渲染的速度,但占用本地存儲(chǔ)空間。前者減少了本地虛擬實(shí)驗(yàn)平臺(tái)的存儲(chǔ)空間,但需要穩(wěn)定的網(wǎng)絡(luò)線路。
3.可視化管理
虛擬現(xiàn)實(shí)充分利用了科學(xué)可視化技術(shù),利用虛擬建模工具(OpenGL、Java3D、VRML),實(shí)現(xiàn)逼真的三維場(chǎng)景,用戶(hù)可以漫游在虛擬場(chǎng)景中,通過(guò)鍵盤(pán)和鼠標(biāo)與場(chǎng)景中的三維模型交互,獲得學(xué)習(xí)資源。
可視化管理部分主要負(fù)責(zé)建立虛擬場(chǎng)景、導(dǎo)入三維模型、實(shí)現(xiàn)場(chǎng)景漫游、管理交互操作等。通過(guò)虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)場(chǎng)景的渲染。
二、三維模型庫(kù)
三維模型庫(kù)的建設(shè)主要考慮以下幾個(gè)問(wèn)題,模型庫(kù)分類(lèi)表的設(shè)計(jì)、模型的命名規(guī)則和存儲(chǔ)方式、模型的文件格式。
1.分類(lèi)表設(shè)計(jì)
分類(lèi)表也稱(chēng)為模型字典,包含模型庫(kù)中所有模型的分類(lèi)和存儲(chǔ)信息,是關(guān)于模型描述信息即模型元數(shù)據(jù)的特殊數(shù)據(jù)庫(kù)。通過(guò)分類(lèi)表,用戶(hù)可以方便的找到所需分類(lèi)下的全部三維模型,提高了模型查詢(xún)和檢索的速度,并為智能決策提供有力的支持。
分類(lèi)表的設(shè)計(jì)實(shí)際是建立一棵分類(lèi)關(guān)系樹(shù),樹(shù)中每個(gè)節(jié)點(diǎn)表示一種類(lèi)別,在類(lèi)別下面可以包含模型文件,也可以繼續(xù)往下分,分類(lèi)表以層級(jí)結(jié)構(gòu)展開(kāi),庫(kù)中的模型都應(yīng)屬于分類(lèi)表中的一個(gè)分類(lèi),即每個(gè)模型是分類(lèi)樹(shù)中的一個(gè)葉子節(jié)點(diǎn)。
本文設(shè)計(jì)的模型庫(kù)主要用于虛擬教學(xué),所以模型庫(kù)按照不同學(xué)科進(jìn)行分類(lèi),同時(shí)提出自建的分類(lèi)表,即分類(lèi)表隨著三維模型的增加,可以不斷添加新的類(lèi)型。向模型庫(kù)中添加新模型的時(shí)候,先在已有的模型庫(kù)中查找是否存在符合的分類(lèi)項(xiàng),如果存在,就將三維模型添加到該分類(lèi)下,如果不存在,則選擇在某一個(gè)分類(lèi)項(xiàng)下建立新的分類(lèi)。通過(guò)這樣的方式,可以逐漸完善模型庫(kù)的分類(lèi)表。圖2為初始的分類(lèi)關(guān)系樹(shù):
2.模型存儲(chǔ)方式和命名規(guī)則
一個(gè)三維模型通常由幾何實(shí)體、紋理信息和描述信息三部分組成,描述信息包括作者、上傳日期、文件格式、模型用途等。模型文件根據(jù)存放位置的不同可以分成兩種:一種是將組成模型的三部分分別存放到不同的文件中,分類(lèi)管理。另一種方式是將一個(gè)模型的三部分?jǐn)?shù)據(jù)存放在同一個(gè)文件目錄下。第一種方式調(diào)用模型時(shí)需要分別查找三個(gè)文件,當(dāng)模型系統(tǒng)中模型數(shù)量大、組織結(jié)構(gòu)復(fù)雜時(shí),會(huì)增加模型的檢索時(shí)間。而第二種方式讓同一個(gè)模型的三個(gè)文件存放在同一個(gè)目錄文件下,便于管理和調(diào)用,所以本文設(shè)計(jì)的三維模型庫(kù)采用這種存儲(chǔ)方式。
模型的命名規(guī)則應(yīng)該盡量做到“見(jiàn)名知意”,即基于內(nèi)容的命名方式,便于模型的分類(lèi)和檢索。同時(shí),一個(gè)三維模型在不同的應(yīng)用場(chǎng)合會(huì)有不同的名稱(chēng),針對(duì)這種情況,一個(gè)三維模型除了文件名以外應(yīng)該可以貼上不同的標(biāo)簽。模型的標(biāo)簽作為模型的描述信息存儲(chǔ),增強(qiáng)了模型檢索的精確度。為了避免模型重名帶來(lái)的問(wèn)題,模型庫(kù)中的每個(gè)模型應(yīng)該有一個(gè)ID,重名時(shí),在文件名后面以自動(dòng)遞增的方式添加一個(gè)數(shù)字,通過(guò)ID和文件名確定唯一的三維模型。
3.模型文件格式
根據(jù)不同的建模工具或?qū)嶋H應(yīng)用,三維模型文件的格式很多,比較常見(jiàn)的有3DS、OBJ、VRML、X3D等,在模型庫(kù)中采用統(tǒng)一的文件格式還是存放不同類(lèi)型的文件格式也是一個(gè)需要考慮的問(wèn)題,一些針對(duì)專(zhuān)門(mén)領(lǐng)域的虛擬實(shí)驗(yàn)室,常選擇一個(gè)文件格式作為標(biāo)準(zhǔn)格式??紤]到網(wǎng)絡(luò)三維模型庫(kù)的擴(kuò)展性和開(kāi)放性,本文認(rèn)為模型庫(kù)應(yīng)該支持多種模型文件格式的存儲(chǔ),以便支持多樣化的文件格式查找和檢索,滿(mǎn)足不同的虛擬實(shí)驗(yàn)室對(duì)模型的需求。
三、網(wǎng)絡(luò)三維模型庫(kù)在虛擬實(shí)地考察中的應(yīng)用
1.用戶(hù)分類(lèi)和系統(tǒng)功能
基于網(wǎng)絡(luò)的三維模型庫(kù)將用戶(hù)分為三類(lèi):模型庫(kù)管理人員、三維模型的開(kāi)發(fā)人員、模型使用人員。不同用戶(hù)及具有的操作如下:
三維模型的開(kāi)發(fā)人員主要使用建模工具(3DS Max、MAYA、MultiGen Creator、AutoCAD)建立三維仿真模型。
虛擬實(shí)驗(yàn)室系統(tǒng)由開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā),通常使用的開(kāi)發(fā)工具有OpenGL、Java3D或VRML,系統(tǒng)需要連接三維模型庫(kù)客戶(hù)端,并設(shè)計(jì)三維文件的導(dǎo)入接口,以及模型在場(chǎng)景中的位置參數(shù)接口。
2.基于網(wǎng)絡(luò)三維模型庫(kù)的虛擬實(shí)地考察原型系統(tǒng)
實(shí)地考察作為環(huán)境科學(xué)課程中的一個(gè)重要環(huán)節(jié),目的在于提高學(xué)生的觀察能力及動(dòng)手能力。實(shí)地考察的內(nèi)容包括地質(zhì)、地貌、河流、湖泊、植被、草原、沙漠等。還可以考察鄉(xiāng)土地理、城市社區(qū)、綜合人文和自然地理等。學(xué)生通過(guò)實(shí)地考察,了解和記錄某個(gè)地區(qū)的環(huán)境情況。但許多因素限制了實(shí)地考察,如時(shí)間、距離、開(kāi)銷(xiāo)、安全性等,這些問(wèn)題都可以嘗試用虛擬現(xiàn)實(shí)技術(shù)解決。
虛擬實(shí)地考察模擬了真實(shí)環(huán)境的考察過(guò)程,學(xué)生可以將自己的考察記錄用可視化的方式進(jìn)行展現(xiàn),將真實(shí)環(huán)境中的物體用三維仿真模型表示,添加到虛擬場(chǎng)景中的相應(yīng)位置,并為該模型添加考察記錄。另一方面,學(xué)生可以在其他考察人員建立的虛擬場(chǎng)景中漫游,通過(guò)點(diǎn)擊感興趣的三維形體,了解對(duì)應(yīng)的真實(shí)地物的數(shù)據(jù)資料。
虛擬實(shí)地考察實(shí)驗(yàn)平臺(tái)采用Java3D和Swing技術(shù)實(shí)現(xiàn),數(shù)據(jù)庫(kù)使用MySQL。用戶(hù)通過(guò)鼠標(biāo)點(diǎn)擊、拖曳和鍵盤(pán)輸入實(shí)現(xiàn)與虛擬場(chǎng)景的交互。效果如圖4:
用戶(hù)界面由兩個(gè)部分組成,工作面板和控制面板,工作面板是三維可視化窗口,主要負(fù)責(zé)顯示虛擬考察現(xiàn)場(chǎng)??刂泼姘鍖?shí)現(xiàn)用戶(hù)與虛擬世界的數(shù)據(jù)資料的輸入與顯示。
當(dāng)考察人員需要向場(chǎng)景中添加仿真模型時(shí),可以打開(kāi)三維模型庫(kù)客戶(hù)端,查找所需的模型,找到模型后將模型拖放到虛擬場(chǎng)景中,同時(shí)輸入與真實(shí)地物對(duì)應(yīng)的模型的考察數(shù)據(jù)。
網(wǎng)絡(luò)三維模型庫(kù)采用客戶(hù)端進(jìn)行訪問(wèn),因此采用C/S的網(wǎng)絡(luò)模式。當(dāng)用戶(hù)向虛擬場(chǎng)景中添加三維模型時(shí),打開(kāi)模型庫(kù)客戶(hù)端。如圖5:
界面分為三個(gè)部分,左邊分類(lèi)表欄,學(xué)生根據(jù)分類(lèi)選擇相應(yīng)科目下的三維模型,中間部分是對(duì)模型的基本操作和描述信息,右邊是選中模型的顯示窗口,由于模型的顯示屬于可視化的一部分,因此采用Java3D技術(shù)實(shí)現(xiàn)。在顯示窗口中用戶(hù)可以對(duì)模型進(jìn)行平移、旋轉(zhuǎn)、縮放,當(dāng)用戶(hù)選中兩個(gè)三維模型時(shí),可以再顯示窗口中進(jìn)行簡(jiǎn)單的模型組合。
四、小結(jié)
隨著網(wǎng)絡(luò)通訊技術(shù)和虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,網(wǎng)絡(luò)模型庫(kù)的完善,為促進(jìn)高校網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室的建設(shè),實(shí)現(xiàn)三維仿真模型的重用和共享,提高虛擬實(shí)驗(yàn)室的教學(xué)質(zhì)量有重要意義和價(jià)值。本文對(duì)網(wǎng)絡(luò)模型庫(kù)的研究還只是一個(gè)初步嘗試,對(duì)于復(fù)雜、專(zhuān)業(yè)性較高的場(chǎng)景構(gòu)建還需要做進(jìn)一步的研究。
作者簡(jiǎn)介:房愛(ài)蓮,華東師范大學(xué),副教授,研究方向:計(jì)算機(jī)教育技術(shù)。
投稿日期:2012年6月5日
編輯:李婷