利用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建動(dòng)畫(huà)素材開(kāi)發(fā)環(huán)境的研究論文
虛擬現(xiàn)實(shí)技術(shù)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)仿真系統(tǒng)它利用計(jì)算機(jī)生成一種模擬環(huán)境是一種多源信息融合的交互式的三維動(dòng)態(tài)視景和實(shí)體行為的系統(tǒng)仿真使用戶(hù)沉浸到該環(huán)境中。以下是學(xué)習(xí)啦小編今天為大家精心準(zhǔn)備的:利用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建動(dòng)畫(huà)素材開(kāi)發(fā)環(huán)境的研究相關(guān)論文。內(nèi)容僅供參考,歡迎閱讀!
利用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建動(dòng)畫(huà)素材開(kāi)發(fā)環(huán)境的研究全文如下:
摘要:多媒體技術(shù)與虛擬現(xiàn)實(shí)技術(shù)是當(dāng)今計(jì)算機(jī)發(fā)展的必然趨勢(shì),如果將兩者結(jié)合起來(lái)應(yīng)用于教學(xué)領(lǐng)域會(huì)是一種有益的嘗試。本文主要介紹了利用虛擬現(xiàn)實(shí)技術(shù)制作一個(gè)動(dòng)畫(huà)開(kāi)發(fā)環(huán)境的思想和方法,目的是解決制作網(wǎng)絡(luò)教學(xué)軟件時(shí)動(dòng)畫(huà)開(kāi)發(fā)依賴(lài)動(dòng)畫(huà)工具比較復(fù)雜以及傳輸速度較慢的問(wèn)題.這個(gè)開(kāi)發(fā)環(huán)境適用于非計(jì)算機(jī)專(zhuān)業(yè)的教師使用。
關(guān)鍵字: 多媒體技術(shù) 虛擬現(xiàn)實(shí)(VRML) 動(dòng)態(tài)鏈接庫(kù) 計(jì)算機(jī)輔助教育
0 引言
多媒體技術(shù)是當(dāng)今計(jì)算機(jī)發(fā)展的必然趨勢(shì)。它集計(jì)算機(jī)技術(shù)、音像技術(shù)和通訊技術(shù)為一體,具有良好的集成性。它使信息不僅作用于人的視覺(jué),而且也作用于人的聽(tīng)覺(jué),從而擴(kuò)大了人對(duì)信息的攝入量,使得人機(jī)關(guān)系更加親近。
虛擬現(xiàn)實(shí)技術(shù)(簡(jiǎn)稱(chēng)VRML)是一種具有真實(shí)感的高級(jí)人機(jī)界面,人們能夠通過(guò)多種感官渠道與它進(jìn)行實(shí)時(shí)交互。這種技術(shù)的應(yīng)用前景是非常廣泛的,在醫(yī)療、制造業(yè)、娛樂(lè)和教育等方面的應(yīng)用也具有很大潛力??梢韵胂?,如果你能夠進(jìn)入到具有沉浸感的,并且有多種感官反饋的虛擬境界中學(xué)習(xí)知識(shí),無(wú)疑將使你的學(xué)習(xí)更為有效。
那么如何來(lái)構(gòu)造這種虛擬現(xiàn)實(shí)的境界呢?VRML就是最佳的選擇。什么是VRML,VRML是Virtual Reality Modeling Language(虛擬現(xiàn)實(shí)造型語(yǔ)言)的縮寫(xiě)。使用VRML,你能設(shè)計(jì)自己的三維虛擬空間、用你想象的任何東西來(lái)填充虛擬的世界。這些僅僅受限于你的想象力。VRML最讓人興奮的特點(diǎn),是能夠使你創(chuàng)建動(dòng)態(tài)的世界和感覺(jué)豐富的虛擬環(huán)境;動(dòng)畫(huà)空間里的物體,使它們運(yùn)動(dòng);在你的空間里播放聲音和影象;允許使用者和你的空間進(jìn)行交互;使用腳本來(lái)控制,改進(jìn)你的空間。
不僅如此,由于VRML文件僅僅是一些數(shù)學(xué)表達(dá)式來(lái)描述交互式的3D世界,并且也不需要傳輸大量的圖像文件,接受端在獲得這些表達(dá)式之后,將自行進(jìn)行計(jì)算、加工、作色等處理,然后即顯示成3D圖像。因此,它在網(wǎng)上傳送的信息量將大為減少,這樣就解決了網(wǎng)絡(luò)傳輸速度的瓶頸問(wèn)題。這樣就能夠使你在Internet上創(chuàng)建動(dòng)態(tài)的世界和感覺(jué)豐富的虛擬環(huán)境。
綜上所述可以看到,如果能夠?qū)⑻摂M現(xiàn)實(shí)語(yǔ)言(即VRML模型)應(yīng)用于計(jì)算機(jī)輔助教學(xué)軟件的開(kāi)發(fā)中將會(huì)是我們?cè)?a href='http://zh056.com/way/jiaoxue/' target='_blank'>教學(xué)方法上一次有益的嘗試,但是對(duì)非計(jì)算機(jī)人員來(lái)說(shuō)學(xué)習(xí)該語(yǔ)言的學(xué)習(xí)是非常困難的,我們制作這個(gè)動(dòng)畫(huà)開(kāi)發(fā)環(huán)境就是想讓教學(xué)軟件的開(kāi)發(fā)主體-----任課教師使用方便,只需填入?yún)?shù)便可生成需要的動(dòng)畫(huà)了。
1 問(wèn)題的提出
1.1 面臨的四個(gè)問(wèn)題
通過(guò)研究分析,發(fā)現(xiàn)擺在我們面前的問(wèn)題主要有四個(gè):
(1) 如果想使一個(gè)VRML模型適應(yīng)不同的用戶(hù)需求,該模型就必須是按用戶(hù)要求動(dòng)態(tài)生成的。如根據(jù)用戶(hù)輸入的長(zhǎng)、寬、高生成相應(yīng)的長(zhǎng)方體模型。采用什么辦法?
(2) 在模型數(shù)量越來(lái)越多的情況下,必須具備一種管理模型的機(jī)制,能有效的組織和管理眾多的模型。是利用數(shù)據(jù)庫(kù)還是別的什么技術(shù)?
(3) 為了保持該系統(tǒng)的穩(wěn)定健康的發(fā)展,必須能及時(shí)給系統(tǒng)補(bǔ)充新的模型,并對(duì)以往開(kāi)發(fā)的舊模型進(jìn)行及時(shí)更新。那么網(wǎng)絡(luò)是不是我們最好的答案?
(4) 對(duì)于按用戶(hù)要求動(dòng)態(tài)生成的VRML模型,必須提供一種方法將其應(yīng)用于教學(xué)軟件開(kāi)發(fā)環(huán)境中,如VB、Authorware等。這種方法是什么?
1.2 四個(gè)模塊的確立
基于上一小節(jié)的分析,我們將該開(kāi)發(fā)環(huán)境的設(shè)計(jì)分解為四個(gè)模塊進(jìn)行處理:
※VML(VRML Models Library) 構(gòu)建機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)
※VRML代碼引擎的設(shè)計(jì)與實(shí)現(xiàn)
※VML網(wǎng)站建設(shè)
※利用VB或Authorware開(kāi)發(fā)基于VRML的課件
首先使用者利用VML將用戶(hù)提出的要求(VRML節(jié)點(diǎn)的參數(shù))傳給 VRML代碼引擎,由引擎生成相應(yīng)的VRML代碼,再通過(guò)VML將生成的代碼返回給使用者。然后使用者將得到的VRML代碼應(yīng)用于其教學(xué)軟件開(kāi)發(fā)環(huán)境中。同時(shí),使用者還可以不斷的通過(guò)VML網(wǎng)站對(duì)VRML引擎進(jìn)行豐富和更新。
2 VML構(gòu)建機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)
2.1根據(jù)用戶(hù)提出的要求動(dòng)態(tài)生成VRML模型
對(duì)于這個(gè)問(wèn)題,有三點(diǎn)是值得注意的:
(1) 用戶(hù)提出的要求應(yīng)該是合理的要求,或者說(shuō)是符合客觀(guān)規(guī)律的要求
因?yàn)轱@然如果用戶(hù)要求系統(tǒng)為他生成一個(gè)上底面半徑為3,下底面半徑為4,高為5的圓柱體,系統(tǒng)恐怕永遠(yuǎn)也辦不到。因?yàn)楝F(xiàn)實(shí)中,圓柱體上下底面半徑相同。這就要求我們必須為用戶(hù)提供一個(gè)預(yù)定義好的輸入界面。例如對(duì)于圓柱體,系統(tǒng)只提供底面半徑和高兩個(gè)輸入接口。
(2) 動(dòng)態(tài)生成參數(shù)輸入接口
在研究VRML時(shí),我們發(fā)現(xiàn)VRML本身只是一種描述三維虛擬空間的文件。而實(shí)際的三維模型的繪制工作由相應(yīng)的VRML瀏覽器完成。因而,我們考慮是否可以給出一個(gè)參數(shù)接口描述文件,由系統(tǒng)讀入、分析,然后動(dòng)態(tài)生成參數(shù)輸入接口。通過(guò)對(duì)VRML的初步學(xué)習(xí),我們發(fā)現(xiàn)一個(gè)VRML模型需要的參數(shù)大體分為三種:數(shù)字、文本、布爾值。針對(duì)這三種參數(shù)我們給出了如下的參數(shù)描述定義:
數(shù)字 :N,Caption,MinValue,MaxValue,InitValue
文本 :T,Caption,InitText
布爾值:B,Caption,TrueText,FalseText,InitValue
其中各定義的意義如下表:
有了參數(shù)描述文件,我們又編制了相應(yīng)的解釋描述文件并生成接口的程序。
(3) 對(duì)于生成的VRML模型,用戶(hù)是想將其獨(dú)立應(yīng)用,還是組合到其他模型中去。 對(duì)于這兩種使用方式,最終的VRML代碼是有一些區(qū)別的。因此,必須提供對(duì)于該問(wèn)題的選項(xiàng)以保證生成的代碼具有針對(duì)性。在我們的系統(tǒng)中具體的實(shí)現(xiàn)方法是如果用戶(hù)想將生成的模型組合到其他模型中去,他只需要將生成的代碼拷貝到剪貼板,然后再?gòu)?fù)制到他所在的VRML編輯環(huán)境中去。如果他是用于另一種目的,則系統(tǒng)將生成的代碼自動(dòng)進(jìn)行包裝并保存到用戶(hù)指定的 .wrl文件中去。
2.2 組織與管理大量的VRML模型
隨著模型(代碼引擎)的不斷開(kāi)發(fā),其數(shù)量也會(huì)越來(lái)越多。在這種情況下,就要求我們?cè)O(shè)計(jì)出一種能有效地組織和管理眾多的模型的機(jī)制。我們首先想到用數(shù)據(jù)庫(kù)來(lái)管理。但經(jīng)分析發(fā)現(xiàn),如果數(shù)據(jù)庫(kù)能根據(jù)用戶(hù)的要求返回模型,那這種模型必然是在數(shù)據(jù)庫(kù)中已經(jīng)存在的靜態(tài)模型。如果考慮到用戶(hù)的各種要求,這個(gè)數(shù)據(jù)庫(kù)必然會(huì)無(wú)限膨脹以致失去其數(shù)據(jù)庫(kù)管理所具有的任何優(yōu)點(diǎn)。通過(guò)分析決定借鑒當(dāng)前應(yīng)用軟件(例如3D MAX)比較流行的管理機(jī)制——插件。這種機(jī)制就是將一類(lèi)模型組織為一個(gè)插件(即為VRML代碼引擎)放到系統(tǒng)下。每次啟動(dòng)系統(tǒng),系統(tǒng)會(huì)自動(dòng)將其目錄下的所有插件裝載到系統(tǒng)中來(lái)擴(kuò)充自己的功能。可以想象采用了這種機(jī)制,肯定會(huì)極大地提高系統(tǒng)的擴(kuò)展性與開(kāi)放性。我們受到Windows編程中的“回調(diào)函數(shù)”思想的啟發(fā):一般操作系統(tǒng)都是由系統(tǒng)提供函數(shù),由程序來(lái)調(diào)用,而回調(diào)函數(shù)則是由程序提供函數(shù),由系統(tǒng)調(diào)用,方向剛好相反。
這樣,我們的插件(VRML代碼引擎)也被設(shè)計(jì)成能夠提供一些標(biāo)準(zhǔn)的例程(回調(diào)函數(shù))來(lái)供系統(tǒng)來(lái)調(diào)用。其與系統(tǒng)協(xié)作的機(jī)理如下圖( 圖1 ):
這些例程包括:
getLibName 返回該插件所代表節(jié)點(diǎn)庫(kù)的名稱(chēng)
getNodeNameList 返回該插件所提供的模型列表
getArgs 返回當(dāng)前選中模型的參數(shù)描述定義
checkArgs 核對(duì)用戶(hù)的輸入是否正確
processArgs 利用代碼引擎生成VRML代碼
根據(jù)以上機(jī)理,我們編制了系統(tǒng)“諾德發(fā)動(dòng)機(jī)(Node Engine)”;而插件則是制作成DLL(動(dòng)態(tài)鏈接庫(kù))形式。之所以采用DLL這種形式,是因?yàn)槲覀兛梢岳肈LL的輸出例程及其動(dòng)態(tài)調(diào)用機(jī)制模擬回調(diào)函數(shù)。 鑒于Delphi 4 集成開(kāi)發(fā)環(huán)境是真正的面向應(yīng)用程序設(shè)計(jì)全過(guò)程的可視化應(yīng)用程序開(kāi)發(fā)環(huán)境,其提供的大量實(shí)用工具可以使開(kāi)發(fā)人員很容易地實(shí)現(xiàn)和完成復(fù)雜的功能。因此我們選擇Delphi 4作為我們的系統(tǒng)及插件的開(kāi)發(fā)工具。
最后我們通過(guò)實(shí)例驗(yàn)證了上述機(jī)制的可行性及實(shí)用性。另外補(bǔ)充一點(diǎn):由于插件開(kāi)發(fā)采用了DLL方式,所以只要其提供了符合規(guī)則的例程,至于使用什么開(kāi)發(fā)工具開(kāi)發(fā)則是無(wú)關(guān)緊要的。因此說(shuō),為了在極大程度上得到第三方開(kāi)發(fā)人員提供的支持,該系統(tǒng)在開(kāi)放性上做出了有效的努力。
3 VML網(wǎng)站建設(shè)
只有不斷變化、更新的事物才最具有生命力。由于我們的系統(tǒng)采用了插件機(jī)制,因此對(duì)于模型的更新與補(bǔ)充是相當(dāng)方便的。只需將新的插件替換老的插件即可。問(wèn)題是新的插件從何而來(lái)。最好的途徑當(dāng)然是利用Internet。這就要求我們首先要建立一個(gè)VML網(wǎng)站,其次在系統(tǒng)中提供一個(gè)連到網(wǎng)站上的接口。對(duì)于后者,實(shí)現(xiàn)的方法非常簡(jiǎn)單,只需在系統(tǒng)中提供一個(gè)連到VML網(wǎng)站的快捷按鈕即可。
VML網(wǎng)站的建設(shè)有兩點(diǎn)是很重要的。第一應(yīng)使訪(fǎng)問(wèn)者感受到該網(wǎng)站與其他網(wǎng)站的區(qū)別,即應(yīng)體現(xiàn)出VRML的存在。第二對(duì)于眾多的插件,應(yīng)分門(mén)別類(lèi)加以管理,也就要合理安排超級(jí)鏈接。在網(wǎng)站的實(shí)現(xiàn)中,我們用Java編制了動(dòng)態(tài)菜單來(lái)實(shí)現(xiàn)對(duì)插件有效的管理。
至于如何體現(xiàn)VRML的存在,我們?cè)诰W(wǎng)站首頁(yè)用VRML編寫(xiě)一個(gè)簡(jiǎn)單的三維場(chǎng)景。但是VRML是用VRML瀏覽器播放的,在IE中,三維場(chǎng)景與網(wǎng)頁(yè)其他部分會(huì)被VRML瀏覽器分隔開(kāi),不利于整體效果。為了解決這個(gè)問(wèn)題,我們對(duì)VRML瀏覽器進(jìn)行研究發(fā)現(xiàn)其描繪三維場(chǎng)景時(shí)使用了Microsoft公司的DirectX技術(shù)。在DirectX中有一個(gè)組件DirectAnimation是專(zhuān)門(mén)用來(lái)配合DHTML(動(dòng)態(tài)HTML)制作網(wǎng)頁(yè)二維和三維動(dòng)畫(huà)的。
因此我們便直接使用該組件構(gòu)造用來(lái)模擬VRML的三維場(chǎng)景(如 圖 2)。對(duì)于如何在網(wǎng)站上組織管理插件,我們用現(xiàn)今非常流行的Java語(yǔ)言編制了動(dòng)態(tài)菜單來(lái)管理。之所以稱(chēng)之為動(dòng)態(tài)菜單,是因?yàn)椴藛蔚乃胁藛雾?xiàng)均是根據(jù)一個(gè)外部描述文件來(lái)動(dòng)態(tài)生成。生成的菜單(如圖3)。
有了動(dòng)態(tài)菜單的管理機(jī)制,當(dāng)網(wǎng)站中插件有了變化時(shí),維護(hù)人員便可以在最短時(shí)間內(nèi),最有效的對(duì)連接插件的超級(jí)鏈接進(jìn)行維護(hù)。
4 結(jié)束語(yǔ)
該課題是在認(rèn)知心理學(xué)理論,教學(xué)設(shè)計(jì)原理的指導(dǎo)下,在多媒體技術(shù)、VRML語(yǔ)言、網(wǎng)絡(luò)共享交互技術(shù)的基礎(chǔ)上開(kāi)發(fā)出來(lái)的。本軟件的目的就是為了簡(jiǎn)化VRML模型制作過(guò)程,以便廣大教師,特別是非計(jì)算機(jī)專(zhuān)業(yè)的教師應(yīng)用模型開(kāi)發(fā)課件。教育是一個(gè)永恒的話(huà)題,也是一門(mén)永無(wú)止境的科學(xué),在眾多教育工作者的共同努力下,它必將會(huì)綻放出更為璀璨絢麗的光芒。
參考文獻(xiàn):
1. [美]Andrea L.Ames VRML 資源手冊(cè) 電子工業(yè)出版社
2. [美]Richard C.Leinecker Visual J++ 寶典 電子工業(yè)出版社
3. 詹里 Delphi 4.0 新起點(diǎn) 機(jī)械工業(yè)出版社
4. 李元泰 Windows 程序設(shè)計(jì)實(shí)現(xiàn) 電子工業(yè)出版社