基于vrml三維虛擬校園設(shè)計(jì)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  虛擬現(xiàn)實(shí)(Virtual Reality)技術(shù)是用現(xiàn)代計(jì)算機(jī)技術(shù)創(chuàng)建的一個(gè)酷似客觀環(huán)境又超越客觀時(shí)空、既能沉浸又能駕馭的和諧人機(jī)環(huán)境。虛擬校園是在計(jì)算機(jī)環(huán)境中,利用虛擬現(xiàn)實(shí)技術(shù)再現(xiàn)校園的景觀,來(lái)訪者足不出戶就可以進(jìn)入到虛擬的校園之中訪問(wèn)漫游,盡情領(lǐng)略校園的文化風(fēng)情。</p><p>  本文研究了虛擬現(xiàn)實(shí)

2、技術(shù),特別是虛擬現(xiàn)實(shí)在數(shù)字化校園建設(shè)中的國(guó)內(nèi)外的先進(jìn)理論,以此為基礎(chǔ)深入探究了虛擬校園的基本要素、基本特征以及虛擬校園的軟、硬件實(shí)現(xiàn)架構(gòu),同時(shí)也對(duì)當(dāng)前比較流行的幾種桌面虛擬現(xiàn)實(shí)技術(shù)做了對(duì)比研究。</p><p>  結(jié)合x(chóng)xxx大學(xué)的開(kāi)發(fā)與建設(shè),本文用3dsMax等軟件開(kāi)發(fā)了虛擬校園的三維模型,使用Inline節(jié)點(diǎn)來(lái)統(tǒng)一整合場(chǎng)景模型,將高精度建模與低精度建模有機(jī)結(jié)合,保證視覺(jué)效果及其瀏覽速度;利用JavaScri

3、pt與導(dǎo)航、路由等節(jié)點(diǎn)相結(jié)合實(shí)現(xiàn)自動(dòng)漫游、交互漫游。</p><p>  關(guān)鍵詞:虛擬現(xiàn)實(shí),虛擬校園,VRML,JavaScript, 三維建模</p><p><b>  Abstract</b></p><p>  Virtual Reality technology is the man-machine environment which

4、 is created by the modem computer technology.This environment is exactly like the objective environment, but exceeds the objective space-time.We both call immerse in it and control the process.Virtual campus is the use o

5、f virtual reality technology to reappearance campus of the landscape in the computer environment.Visitors can get into the virtual campus, enjoy the campus cultural as much as they like never to leave their home.</p&g

6、t;<p>  The paper introduced virtual Reality synoptically, especially the domestic and foreign advanced theory of virtual reality in digital campus construction.Base on this,to probe into the basic elements,basic

7、 characteristics,the realization of hardware and software architecture of virtual campus,and also comparative studied several popular desktop virtual reality technology.</p><p>  Combining the virtual campus

8、 development and construction of Changzhou institute of light industry technology, I developed virtual campus three-dimensional models with 3dsMax,VRML etc software,and used Inline node to integrate the scene model.Also

9、integrated high precision and low precision model building call ensure visual effect and browse speed.With the combination of JavaScript and navigation, route etc node,we can achieve automatic navigation and interactive

10、roaming.</p><p>  KEYWORDS:VIRTUAL REALITY,VIRTUAL CAMPUS,VRML,JavaScript,3D MODELING</p><p><b>  目錄</b></p><p><b>  1緒論4</b></p><p>  1.1論文研

11、究背景及意義4</p><p>  1.2虛擬現(xiàn)實(shí)技術(shù)的研究現(xiàn)狀4</p><p>  1.2.1國(guó)外虛擬現(xiàn)實(shí)技術(shù)研究現(xiàn)狀4</p><p>  1.2.2國(guó)內(nèi)虛擬現(xiàn)實(shí)技術(shù)研究現(xiàn)狀5</p><p>  1.2.3虛擬校園研究現(xiàn)狀6</p><p>  1.3論文研究主要內(nèi)容和目的6</p&

12、gt;<p>  2系統(tǒng)技術(shù)分析6</p><p>  2.1虛擬現(xiàn)實(shí)語(yǔ)言VRML6</p><p>  2.1.1 VRML的發(fā)展簡(jiǎn)史7</p><p>  2.1.2 VRML文件的組成7</p><p>  2.1.3 VRML的工作原理及特性9</p><p>  2.2 V

13、RML與JAVA11</p><p>  2.2.1設(shè)置VRML Java執(zhí)行環(huán)境12</p><p>  2.2.2Script節(jié)點(diǎn)和Java腳本程序之間的數(shù)據(jù)通信12</p><p>  2.2.3 JavaScript概述16</p><p>  2.2.4 VRML與JavaScript16</p>&

14、lt;p>  2.3虛擬場(chǎng)景漫游系統(tǒng)關(guān)鍵技術(shù)17</p><p>  2.3.1建筑場(chǎng)景建模技術(shù)17</p><p>  2.3.2場(chǎng)景繪制技術(shù)18</p><p>  2.3.3虛擬場(chǎng)景優(yōu)化技術(shù)19</p><p>  3系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)21</p><p>  3.1系統(tǒng)設(shè)計(jì)21<

15、;/p><p>  3.1.1建筑模型建立22</p><p>  3.1.2漫游設(shè)計(jì)23</p><p>  3.2漫游功能的實(shí)現(xiàn)24</p><p>  3.2.1自動(dòng)漫游的實(shí)現(xiàn)25</p><p>  3.2.2交互式漫游的實(shí)現(xiàn)25</p><p>  3.3漫游過(guò)程中碰

16、撞檢測(cè)26</p><p>  3.3.1漫游過(guò)程中碰撞檢測(cè)的流程27</p><p>  3.3.2碰撞檢測(cè)27</p><p>  3.4虛擬場(chǎng)景在Internet上的發(fā)布27</p><p>  3.4.1VRML文件的MIME類(lèi)型27</p><p>  3.4.2VRML場(chǎng)景文件與HTML

17、網(wǎng)頁(yè)文件的結(jié)合28</p><p>  4總結(jié)和展望29</p><p>  4.1論文總結(jié)29</p><p><b>  4.2展望29</b></p><p><b>  參考文獻(xiàn)31</b></p><p><b>  1緒論</b&

18、gt;</p><p>  1.1論文研究背景及意義</p><p>  隨著信息技術(shù)的發(fā)展及其應(yīng)用的不斷深入,數(shù)字化信息管理和實(shí)物虛擬化已經(jīng)在當(dāng)前的信息技術(shù)應(yīng)用領(lǐng)域占據(jù)了相當(dāng)重要地位。虛擬現(xiàn)實(shí)是在現(xiàn)實(shí)客觀世界的基礎(chǔ)上,利用先進(jìn)的信息化工具,構(gòu)建一個(gè)可以模擬的現(xiàn)實(shí)世界的虛擬空間,在此基礎(chǔ)上甚至可以進(jìn)一步拓展現(xiàn)實(shí)世界的時(shí)空維度,從而擴(kuò)展現(xiàn)實(shí)世界的功能,最終建立一個(gè)優(yōu)于現(xiàn)實(shí)世界的計(jì)算機(jī)世界虛

19、擬空間。</p><p>  1.2虛擬現(xiàn)實(shí)技術(shù)的研究現(xiàn)狀</p><p>  虛擬現(xiàn)實(shí)(Virtual Reality)技術(shù),別稱(chēng)臨境技術(shù),是采用現(xiàn)代先進(jìn)的計(jì)算機(jī)技術(shù)創(chuàng)建一個(gè)酷似現(xiàn)實(shí)世界卻又跨越時(shí)空的虛擬世界,是一個(gè)用戶可以沉浸其中并隨心駕馭的和諧人機(jī)環(huán)境。在一些列傳感輔助設(shè)備,如覺(jué)、聽(tīng)覺(jué)以及觸覺(jué)設(shè)備的幫助下,用戶通過(guò)自然的方式向計(jì)算機(jī)傳遞各種動(dòng)作信息,感受三維虛擬世界。當(dāng)前,與虛擬現(xiàn)

20、實(shí)技術(shù)相關(guān)聯(lián)的內(nèi)容主要包含自然模擬和逼真體驗(yàn)的技術(shù)與方法,實(shí)現(xiàn)真實(shí)的體驗(yàn)和方便自然的人機(jī)交互是虛擬現(xiàn)實(shí)技術(shù)的重要目標(biāo)。最顯而易見(jiàn)的是讓使用者獲得沉浸感,即令人產(chǎn)生身處于虛擬環(huán)境的感覺(jué)。借助沉浸感,用戶可以方便地獲取周邊環(huán)境的全面化印象,確定自己在環(huán)境中的位置,實(shí)現(xiàn)在虛擬環(huán)境中逼真漫游。</p><p>  1.2.1國(guó)外虛擬現(xiàn)實(shí)技術(shù)研究現(xiàn)狀</p><p>  通過(guò)實(shí)際的應(yīng)用,虛擬現(xiàn)實(shí)技

21、術(shù)展現(xiàn)出了令人期待的前景。世界各國(guó)特別是一些發(fā)達(dá)國(guó)家,在多個(gè)領(lǐng)域都對(duì)其進(jìn)行了廣泛深入的研究。這里主要介紹一下具有代表性的美國(guó)的研究現(xiàn)狀。</p><p><b>  (1)政府的資助</b></p><p>  虛擬現(xiàn)實(shí)技術(shù)的發(fā)源地是美國(guó)。其虛擬現(xiàn)實(shí)的研究技術(shù)的水平代表著國(guó)際虛擬現(xiàn)實(shí)技術(shù)發(fā)展的水平。美國(guó)在VR研究的領(lǐng)域主要集中于感知、用戶界面、硬件和后臺(tái)軟件這四個(gè)方面

22、。美國(guó)政府對(duì)虛擬現(xiàn)實(shí)技術(shù)的研究進(jìn)行了巨大的資助,國(guó)家科學(xué)基金會(huì)(NSF)下設(shè)計(jì)算機(jī)、信息科學(xué)與工程學(xué)部(CISE)資助的VR技術(shù)項(xiàng)目最多,CISE每年的平均研發(fā)經(jīng)費(fèi)約為5億美元。</p><p><b> ?。?)高校的推動(dòng)</b></p><p>  北卡羅來(lái)納大學(xué)計(jì)算機(jī)系是最早進(jìn)行虛擬現(xiàn)實(shí)研究也是最著名的大學(xué)。他們主要從事分子建模、建筑仿真、航空駕駛、外科手術(shù)仿

23、真等研究。</p><p>  麻省理工學(xué)院對(duì)人工智能、計(jì)算機(jī)圖形學(xué)及動(dòng)畫(huà)方面研究走在了世界的前沿,這些研究即是VR技術(shù)的基礎(chǔ)。麻理用于進(jìn)行虛擬環(huán)境的研究媒體實(shí)驗(yàn)室成立于1985年,在實(shí)驗(yàn)室里創(chuàng)建了BOLIO測(cè)試環(huán)境,并在該虛擬環(huán)境下創(chuàng)建了對(duì)象運(yùn)動(dòng)跟蹤動(dòng)態(tài)系統(tǒng)。</p><p>  密歇根大學(xué)于80年代成功開(kāi)發(fā)了Agent建模環(huán)境Soar,該項(xiàng)目基于符號(hào)表示和規(guī)則推理,之后在行為建模、人工

24、智能和人機(jī)接口等方面的研究中被廣泛應(yīng)用。Soar的目的是為仿真空軍軍力提供改進(jìn),并在改進(jìn)后擴(kuò)充LORAL MODSAF。該計(jì)劃的使用使得美國(guó)國(guó)防部在虛擬戰(zhàn)役中具備了智能化的多目標(biāo)感知和管理能力、時(shí)態(tài)推理能力,并使用來(lái)管理和操縱敵方部隊(duì)的人員減少到最低。</p><p><b>  (3)企業(yè)的推動(dòng)</b></p><p>  微軟公司開(kāi)發(fā)了大量VR技術(shù):能夠讓用戶將一

25、組具有相似性的照片生成一個(gè)3D場(chǎng)景的Photosynth軟件;支持3D效果的Silverlight插件;具有麥克風(fēng)輸入、語(yǔ)音辨識(shí)、動(dòng)態(tài)捕捉、影像辨識(shí)等功能的三維體感攝影機(jī)Project Natal4;用來(lái)瀏覽美國(guó)各大主要城市的全方位3D圖片的Virtual Earth 3D。IBM公司在互聯(lián)網(wǎng)和VR技術(shù)的研發(fā)上投入上億資金。Bluegrass這個(gè)虛擬現(xiàn)實(shí)應(yīng)用程序,令用戶能夠建立虛擬會(huì)議室,實(shí)現(xiàn)遠(yuǎn)程會(huì)議。</p><p

26、>  波音公司“波音777運(yùn)輸機(jī)"的設(shè)計(jì)完全無(wú)紙化,利用其開(kāi)發(fā)的VR系統(tǒng)將虛擬環(huán)境投射于真實(shí)的環(huán)境之上,工人根據(jù)投射在工件上的虛擬模板尺寸進(jìn)行部件加工,大大簡(jiǎn)化了加工流程。</p><p>  美國(guó)的企業(yè)對(duì)VR技術(shù)不僅僅著眼于研發(fā)方面,更多面向市場(chǎng)、面向用戶的VR商品顯示了VR技術(shù)在商業(yè)化應(yīng)用領(lǐng)域取得了很好的效果。</p><p>  1.2.2國(guó)內(nèi)虛擬現(xiàn)實(shí)技術(shù)研究現(xiàn)狀&

27、lt;/p><p>  我國(guó)VR技術(shù)的研究起步于20世紀(jì)90年代初,和部分發(fā)達(dá)國(guó)家相比還有很大差距。隨著計(jì)算機(jī)圖形學(xué)等技術(shù)的高速發(fā)展,VR技術(shù)得到了國(guó)家科技部和困防科工委的重視。國(guó)內(nèi)諸多機(jī)構(gòu)部開(kāi)始進(jìn)行VR的研究和應(yīng)用,并取得了一系列不錯(cuò)的成果。</p><p>  北京航空航天大學(xué)是國(guó)內(nèi)進(jìn)行VR研究最早的單位之一,北航計(jì)算機(jī)系的虛擬實(shí)現(xiàn)與可視化新技術(shù)研究室集成了分布式虛擬環(huán)境,可提供實(shí)時(shí)三維動(dòng)

28、態(tài)數(shù)據(jù)庫(kù),虛擬現(xiàn)實(shí)演示環(huán)境,供飛行員訓(xùn)練的虛擬現(xiàn)實(shí)系統(tǒng)等。并在虛擬現(xiàn)實(shí)下的視覺(jué)接口方面的硬件開(kāi)發(fā),相關(guān)算法及實(shí)現(xiàn),分布式虛擬環(huán)境的網(wǎng)絡(luò)設(shè)計(jì)等方面取得了成果。</p><p>  武漢理工大學(xué)智能制造與控制研究所主要研究使用虛擬現(xiàn)實(shí)技術(shù)進(jìn)行機(jī)械虛擬制造,包括虛擬布局、虛擬裝配和產(chǎn)品原型快速生成等。</p><p>  浙江大學(xué)CAD&CG國(guó)家重點(diǎn)實(shí)驗(yàn)室開(kāi)發(fā)了一套桌面型虛擬建筑環(huán)境實(shí)時(shí)

29、漫游系統(tǒng)。</p><p>  近年來(lái)中國(guó)在VR相關(guān)技術(shù)領(lǐng)域的研究取得了快速的發(fā)展,VR技術(shù)潛力大,應(yīng)用面廣,前景光明,但仍然存在一些尚未解決的理論、技術(shù)障礙。</p><p>  1.2.3虛擬校園研究現(xiàn)狀</p><p>  虛擬校園正是采用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建而成的,其目的是將學(xué)校風(fēng)光和地圖進(jìn)行有機(jī)結(jié)合起來(lái),可以使來(lái)訪者足不出戶便可覽校園風(fēng)光,為學(xué)校樹(shù)立良好的對(duì)

30、外形象,也可以作為校園建設(shè)的輔助規(guī)劃工具,供校園內(nèi)外的師生和熱心人士出謀劃策。虛擬校園與學(xué)校信息的有機(jī)結(jié)合,可以一改過(guò)去陳舊呆板的操作界面,提供給師生一個(gè)具有新鮮感、三維化的信息介紹與查詢(xún)環(huán)境。</p><p>  研究虛擬校園的建設(shè),將對(duì)學(xué)校的發(fā)展對(duì)學(xué)校的數(shù)字化信息化有重要的現(xiàn)實(shí)意義。因此本文將結(jié)合x(chóng)xxx大學(xué)虛擬校園的開(kāi)發(fā)與探索,對(duì)虛擬校園建設(shè)作初步的研究與探索,并采用VRML+JavaScript這一種當(dāng)前

31、最為方便、靈活的桌面虛擬技術(shù)作為實(shí)現(xiàn)技術(shù)。</p><p>  1.3論文研究主要內(nèi)容和目的</p><p>  本文通過(guò)對(duì)虛擬現(xiàn)實(shí)及其建模語(yǔ)言VRML系統(tǒng)的學(xué)習(xí),分析了基于VRML的虛擬漫游系統(tǒng)的特點(diǎn)和應(yīng)用。對(duì)當(dāng)前國(guó)內(nèi)外虛擬場(chǎng)景漫游系統(tǒng)的實(shí)現(xiàn)技術(shù)進(jìn)行了分析和對(duì)比,對(duì)三維場(chǎng)景漫游系統(tǒng)中涉及的關(guān)鍵技術(shù)進(jìn)行了理論分析和應(yīng)用研究。在此基礎(chǔ)上,基于VRML語(yǔ)言和JavaScript腳本語(yǔ)占實(shí)現(xiàn)了

32、一個(gè)基于Web的虛擬場(chǎng)景漫游導(dǎo)航系統(tǒng)。</p><p><b>  2系統(tǒng)技術(shù)分析</b></p><p>  2.1虛擬現(xiàn)實(shí)語(yǔ)言VRML</p><p>  VRML是Virtual Reality Modeling Language的縮寫(xiě),即虛擬現(xiàn)實(shí)建模語(yǔ)言,它是虛擬現(xiàn)實(shí)和WWW結(jié)合的產(chǎn)物,是一種可以用來(lái)創(chuàng)建現(xiàn)實(shí)世界的場(chǎng)景模型或者虛構(gòu)世

33、界的三維場(chǎng)景建模。VRML是一種跨平臺(tái)的語(yǔ)言,可以發(fā)布用來(lái)3D網(wǎng)頁(yè),用戶可以在瀏覽的時(shí)候可以參與和探索,在交互性、動(dòng)態(tài)效果、延續(xù)性等方面感受到比瀏覽普通網(wǎng)頁(yè)更自然的體驗(yàn)方式。</p><p>  VRML使得虛擬現(xiàn)實(shí)走進(jìn)了普通百姓的生活,出現(xiàn)了多媒體技術(shù)、因特網(wǎng)技術(shù)和虛擬現(xiàn)實(shí)相結(jié)合產(chǎn)生的第二代萬(wàn)維網(wǎng),用戶在網(wǎng)絡(luò)上獲取豐富信息的同時(shí)如同置身于真實(shí)世界中。</p><p>  VRML的基本目

34、標(biāo)是在因特網(wǎng)上建立具有三維化、分布式、交互性、多媒體集成性和環(huán)境逼真性等特點(diǎn)的三維媒體。</p><p>  2.1.1 VRML的發(fā)展簡(jiǎn)史</p><p>  1994年5月,Mark Pesce和Tony Parisi在瑞士日內(nèi)瓦召開(kāi)的萬(wàn)維網(wǎng)會(huì)議上介紹了可以在網(wǎng)絡(luò)上運(yùn)行的虛擬現(xiàn)實(shí)界面。第一次在網(wǎng)絡(luò)上出現(xiàn)的三維界面?zhèn)涫荜P(guān)注,BOF小組組建并開(kāi)發(fā)了一種可以連接網(wǎng)絡(luò)的場(chǎng)景描述語(yǔ)言,并制定了

35、VRML標(biāo)準(zhǔn)。</p><p>  同年10月,第二次萬(wàn)維網(wǎng)會(huì)議于芝加哥召開(kāi)。會(huì)上公布了VRMLl.0的規(guī)范草案。</p><p>  1996年初,VRML委員會(huì)評(píng)審并票決出SGI的Moving World作為VRML2.0規(guī)范的工作文檔。同年8月,公布了VRML2.0規(guī)范的第一版。</p><p>  1997年12月,在VRML2.0的基礎(chǔ)上經(jīng)過(guò)修訂和部分功能

36、調(diào)整后,VRML作為國(guó)際性標(biāo)準(zhǔn)正式發(fā)布,VRML97是該標(biāo)準(zhǔn)的通稱(chēng)。</p><p>  1999年底,整合了XML、Java、流技術(shù)等新技術(shù)的VRML的編碼方案X3D出爐。</p><p>  2000年之后,VRML進(jìn)入了一個(gè)嶄新的時(shí)代。</p><p>  2.1.2 VRML文件的組成</p><p>  VRML文件由四部分組成,

37、即:文件頭語(yǔ)句、節(jié)點(diǎn)語(yǔ)句、事件路由語(yǔ)句和注釋語(yǔ)句構(gòu)成。</p><p> ?。?)VRML文件頭</p><p>  VRML文件必須包含文件頭,其語(yǔ)法格式如下:</p><p>  #VRMI V2.0 utf8</p><p>  utf8是指該文件使用的字符集,包含了任何計(jì)算機(jī)鍵盤(pán)上能夠找到的字符。</p><p&g

38、t;<b>  (2)VRML節(jié)點(diǎn)</b></p><p>  節(jié)點(diǎn)(Node)是VRML中的基本單位。節(jié)點(diǎn)可以是3D造型、材質(zhì)或者動(dòng)畫(huà)定時(shí)器、傳感器等。節(jié)點(diǎn)通常由節(jié)點(diǎn)類(lèi)型,描述節(jié)點(diǎn)屬性的域和域值這幾個(gè)部分組成。</p><p><b>  以Box為例:</b></p><p><b>  Box{</b

39、></p><p>  size 2 2 2</p><p><b>  }</b></p><p>  Box是一個(gè)長(zhǎng)方體幾何節(jié)點(diǎn),域?yàn)閟ize,2 2 2相對(duì)應(yīng)長(zhǎng)方體的寬、高和深度。</p><p>  每個(gè)域值歸屬于特定的域類(lèi)型,一般分為單值類(lèi)型和多值類(lèi)型。在VRML2.0中共定義了54種節(jié)點(diǎn)類(lèi)型和20種域類(lèi)

40、型。常見(jiàn)的功能及節(jié)點(diǎn)如表3.1所示。</p><p>  表2.1 VRML常用功能及節(jié)點(diǎn)</p><p>  VRML文件中以定義某個(gè)節(jié)點(diǎn)并反復(fù)引用該節(jié)點(diǎn)。</p><p>  定義節(jié)點(diǎn)的語(yǔ)法為:DEF_節(jié)點(diǎn)名稱(chēng)_節(jié)點(diǎn){}。</p><p>  引用節(jié)點(diǎn)的語(yǔ)法為:USE_節(jié)點(diǎn)名稱(chēng)。</p><p>  同一個(gè)節(jié)點(diǎn)中的

41、域具有無(wú)序性和可選性這兩個(gè)特性。各個(gè)域排列次序的不同不會(huì)影響最終得到的虛擬場(chǎng)景的結(jié)果;各個(gè)域有缺省值,可根據(jù)需要選擇并創(chuàng)建造型。</p><p>  場(chǎng)景圖中節(jié)點(diǎn)和節(jié)點(diǎn)間的關(guān)系可以通過(guò)節(jié)點(diǎn)語(yǔ)義,或者用組節(jié)點(diǎn)把若干節(jié)點(diǎn)嵌套組合的方式來(lái)確立。本系統(tǒng)中用到的主要節(jié)點(diǎn)介紹表3.2所示:</p><p>  表2.2本漫游導(dǎo)航系統(tǒng)中主要節(jié)點(diǎn)介紹</p><p>  (3)VR

42、ML事件和路由</p><p>  場(chǎng)景圖中有一類(lèi)節(jié)點(diǎn)參與事件的產(chǎn)生和路由圖的形成,這類(lèi)節(jié)點(diǎn)用來(lái)確定在事件觸發(fā)過(guò)程中場(chǎng)景的動(dòng)態(tài)變化,并以此為依據(jù)修改場(chǎng)景圖。這類(lèi)節(jié)點(diǎn)是虛擬空間交互性和動(dòng)態(tài)性實(shí)現(xiàn)的基礎(chǔ)。</p><p>  2.1.3 VRML的工作原理及特性</p><p>  VRML通過(guò)文本信息來(lái)描述三維場(chǎng)景,在網(wǎng)絡(luò)上進(jìn)行傳輸,再通過(guò)用戶機(jī)上的VRML的瀏覽器

43、解析生成三維場(chǎng)景。其實(shí)現(xiàn)過(guò)程如圖3.1所示。相較圖形文件而言,文本信息的網(wǎng)絡(luò)傳輸要方便快捷得多,將繁復(fù)的解析處理任務(wù)交給用戶機(jī),從而達(dá)到減輕網(wǎng)絡(luò)的負(fù)荷的目的。該工作機(jī)制使其在網(wǎng)絡(luò)應(yīng)用中發(fā)展迅速。</p><p>  圖2.1 VRML文件的實(shí)現(xiàn)過(guò)程</p><p>  VRML是基于Client/Server模式的訪問(wèn)模式,服務(wù)器提供VRML文件,客戶下載并通過(guò)本地瀏覽器對(duì)該文件所描述的虛

44、擬世界進(jìn)行訪問(wèn),如圖3.2所示。</p><p>  圖2.2基于Client/Server模式的VRML訪問(wèn)方式</p><p>  VRML作為一種標(biāo)準(zhǔn),并不能滿足所有的應(yīng)用需要。交互性、畫(huà)質(zhì)、復(fù)雜度的要求相互制約,加上用戶平臺(tái)硬件配置的不同,用戶需要自己去尋找中間的平衡點(diǎn)。VRML的可擴(kuò)展性顯得十分重要。與其他的三維建模語(yǔ)言相比,VRML具有如下優(yōu)勢(shì)。</p><

45、p><b> ?。?)平臺(tái)無(wú)關(guān)性</b></p><p>  基于ASCII的字符構(gòu)成,VRML被設(shè)計(jì)成與平臺(tái)無(wú)關(guān),通過(guò)VRML瀏覽器或相關(guān)插件,某個(gè)在網(wǎng)上傳輸?shù)腣RML文件可以應(yīng)用于多種平臺(tái)。</p><p> ?。?)VRWL瀏覽器</p><p>  VRML文件可以使用經(jīng)過(guò)安裝插件后普通IE瀏覽。專(zhuān)用的VRML瀏覽器如Corton

46、a,CosmoPlayer等具有更強(qiáng)的功能。大多數(shù)瀏覽器都提供了一個(gè)供用戶執(zhí)行改變視點(diǎn)、多方向行走的操作面板。</p><p> ?。?)三維幾何體生成方便</p><p>  除了基本造型之外,VRML還提供了一些高級(jí)造型方法以便創(chuàng)建復(fù)雜的三維模型。同時(shí)VRML與很多知名三維繪制軟件有標(biāo)準(zhǔn)接口,如AutoCAD、3DMAX、Canoma、Pro/E等,借助這些軟件可以創(chuàng)建生成更為復(fù)雜的模

47、型,然后導(dǎo)出*.wrl的VRML文件格式。</p><p>  (4)使用Script節(jié)點(diǎn)調(diào)用JavaScript腳本擴(kuò)展其功能</p><p>  將Java在Internet環(huán)境下編程的優(yōu)勢(shì)和VRML在虛擬現(xiàn)實(shí)場(chǎng)景構(gòu)造方面的優(yōu)勢(shì)相結(jié)合,可以開(kāi)發(fā)出交互性強(qiáng)且復(fù)雜度高的虛擬系統(tǒng)。</p><p>  2.2 VRML與JAVA</p><p&g

48、t;  Java是由Sun公司開(kāi)發(fā)的新一代面向?qū)ο?object-oriented)的編程語(yǔ)言,Java是一種簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、解釋性的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能優(yōu)異的、多線程的動(dòng)態(tài)語(yǔ)言,由于具有這些特點(diǎn),使得它已經(jīng)成為跨平臺(tái)應(yīng)用軟件開(kāi)發(fā)的一種規(guī)范,在世界范圍內(nèi)廣泛流行。</p><p>  Java語(yǔ)言是一種解釋性的語(yǔ)言,但不是直接對(duì)源代碼進(jìn)行解釋?zhuān)肑ava開(kāi)發(fā)出來(lái)的源程序還需要

49、進(jìn)行初步的編譯,源代碼以字符方式存放在*.java格式文件中,源代碼經(jīng)過(guò)Java編譯器(Java.exe)編譯后生成與機(jī)器無(wú)關(guān)的一個(gè)字節(jié)代碼(byte-code),存放在*.class的文件中,該字節(jié)代碼進(jìn)入本地系統(tǒng)或互聯(lián)網(wǎng)上的Web站點(diǎn)。字節(jié)代碼也不能在操作系統(tǒng)之上直接運(yùn)行,首先要經(jīng)過(guò)字節(jié)代碼檢驗(yàn)器檢驗(yàn),符合要求之后,字節(jié)代碼裝載器將字節(jié)代碼連同所需的類(lèi)庫(kù)一起裝入系統(tǒng),由解釋器把Java的字節(jié)碼翻譯成本機(jī)代碼,然后再執(zhí)行,這種層次結(jié)構(gòu)

50、保證了Java程序的可移植性。</p><p>  由于Java程序是運(yùn)行在Java虛擬機(jī)環(huán)境中的,它不依賴(lài)于特定操作系統(tǒng),</p><p>  所以編程人員只需一次性開(kāi)發(fā)一個(gè)“通用”的最終軟件即可在多個(gè)平臺(tái)環(huán)境中使</p><p>  用,這將大大加快軟件產(chǎn)品的開(kāi)發(fā)。</p><p>  2.2.1設(shè)置VRML Java執(zhí)行環(huán)境</

51、p><p>  Java提供了三個(gè)與VRML有關(guān)的package:vrml、vrml.node、vrml.field, 這些包中類(lèi)的方法被用來(lái)支持虛擬場(chǎng)景實(shí)體與Java程序之間的相互作用,Java還為VRML的各種數(shù)據(jù)結(jié)構(gòu)提供了相應(yīng)的類(lèi)封裝。在安裝VRML瀏覽器時(shí)會(huì)自動(dòng)安裝VRML Java類(lèi)。ParallelGraphics公司的Cortona VRML C1ient瀏覽器的Java Package 的缺省路徑為

52、:</p><p>  C:\ProgramFiies\CommonFiles\ParallelGraphics\cortona\corteai.zip和C:\Program Fiies\CommonFiles\ParallelGraphics\cortona\class.zip</p><p>  設(shè)置VRML Java類(lèi)執(zhí)行環(huán)境的方法是:</p><p> ?。?/p>

53、1)將以上Java Package的缺省路徑加到環(huán)境變量CLASSPATH中。</p><p>  (2)下載vrml97.jar軟件包后將其拷貝到j(luò)dk安裝目錄下的jre\lib\ext目錄。</p><p>  使用 Java EAI 運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò):java.1ang.NoclassDefFoundError,這是因?yàn)镃ortona VRML Client瀏覽器對(duì)Java程序支持

54、不夠,應(yīng)該是用微軟的Java虛擬機(jī),解決的辦法是:打開(kāi)IE瀏覽器的【工具】|【Internet選項(xiàng)】|【高級(jí)】,對(duì)Microsoft VM進(jìn)行如下設(shè)置:</p><p>  啟用Java JIT編譯器(需要重新啟動(dòng)) (no)</p><p>  啟用Java記錄(yes)</p><p>  啟用Java控制臺(tái)(需要重新啟動(dòng)) (yes)</p>&

55、lt;p>  2.2.2Script節(jié)點(diǎn)和Java腳本程序之間的數(shù)據(jù)通信</p><p>  在Script節(jié)點(diǎn)和Java程序代碼之間有兩種通信關(guān)聯(lián)方式:第一種方式是通過(guò)事件從Script節(jié)點(diǎn)傳遞數(shù)據(jù)到Java程序中去請(qǐng)求處理;另一種方式則是將Java程序處理后的結(jié)果數(shù)據(jù)返回到VRML場(chǎng)景中,從而動(dòng)態(tài)的改變場(chǎng)景。</p><p>  EventIn ge

56、t()方法傳入數(shù)據(jù)進(jìn)行處理</p><p>  EventOutset()方法傳出數(shù)據(jù)處理結(jié)果</p><p>  圖2.3 VRML與Java的數(shù)據(jù)通信</p><p> ?。?)從Script節(jié)點(diǎn)傳遞數(shù)據(jù)到Java腳本程序</p><p>  對(duì)Java程序而言,必須有一個(gè)Script節(jié)點(diǎn)的eventIn入事件來(lái)激發(fā)它才能夠執(zhí)行,否則,

57、Java程序一般不會(huì)自動(dòng)執(zhí)行,這就要求從Script節(jié)點(diǎn)傳遞數(shù)據(jù)到Java程序中去,以激發(fā)它的執(zhí)行。假定有一個(gè)以DEF語(yǔ)句命名的Example的VRML Script節(jié)點(diǎn),Example節(jié)點(diǎn)的url域指向一個(gè)JavaTest.class的文件,</p><p>  如下的程序代碼所示:</p><p>  DEF Example Script{</p><p>  

58、url”JavaTest.class”</p><p>  eventIn IsActive</p><p><b>  }</b></p><p>  JavaTest.class字節(jié)碼文件是通過(guò)Java編譯器編譯JavaTest.java文件</p><p>  得到的,其相應(yīng)的程序代碼為:</p>&

59、lt;p>  import vrml.*;</p><p>  import vrml.Field.*;</p><p>  import vrml.node.*;</p><p>  //引入所需要的Java類(lèi)包</p><p>  Public class JavaTest extends Script{</p>&l

60、t;p><b>  ……</b></p><p>  public void initialize0{</p><p><b>  ……</b></p><p><b>  }</b></p><p>  //場(chǎng)景初始化,獲取相關(guān)的域?qū)ο蟆⑷胧录?duì)象和出事件對(duì)象的引用&l

61、t;/p><p>  public void processEvent(Event e){</p><p><b>  }</b></p><p>  //使用processEvent(Event e)方法接收入事件,根據(jù)入事件的名字分別處理</p><p><b>  }</b></p>

62、<p>  在場(chǎng)景加載腳本的時(shí)候,瀏覽器根據(jù)Script節(jié)點(diǎn)url域指定的位置進(jìn)行尋找,url指定的腳本程序位置既可以使用相對(duì)路徑,也可以使用絕對(duì)路徑,還可能是一個(gè)URL列表,即存在多個(gè)class文件,但瀏覽器只是按照列表的優(yōu)先順序執(zhí)行第一個(gè)能夠被執(zhí)行的文件,即被傳遞的數(shù)據(jù)只能有一個(gè)Java程序,可是對(duì)于一個(gè)Java程序,可以有多個(gè)eventIn入事件接口,即可從多方面接收不同的數(shù)據(jù)。當(dāng)Script節(jié)點(diǎn)有多個(gè)eventIn入

63、事件時(shí),processEvent(Event e)方法將換成processEvents(int count Event events[])方法,count是入事件的個(gè)數(shù)。其語(yǔ)法定義為:</p><p>  public void processEvents(int count Event events[]){</p><p>  for(int i=O;i<count;i++){&l

64、t;/p><p>  processEvent(event[i]){</p><p><b>  ……</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b><

65、;/p><p>  被瀏覽器加載的腳本程序必須是公共類(lèi),而Java語(yǔ)言規(guī)定,公共類(lèi)必須在和它同名的文件中,所以該腳本程序的類(lèi)名必須和文件名相同,且必須是vrml.node.Script的子類(lèi)。</p><p>  VRML的Script節(jié)點(diǎn)中由用戶自定義的接口域都可以被Java腳本程序讀寫(xiě),所有的VRML數(shù)據(jù)類(lèi)型都有一個(gè)相應(yīng)的Java數(shù)據(jù)類(lèi)型與之匹配。主要的數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系如下表所示:<

66、/p><p>  瀏覽器成功加載Java腳本程序之后,當(dāng)一個(gè)事件經(jīng)過(guò)ROUTE語(yǔ)句傳遞到Script節(jié)點(diǎn)時(shí),就會(huì)自動(dòng)調(diào)用腳本對(duì)象的processEvent(Event e)方法進(jìn)行處理。因?yàn)閜rocessEvent(Event e)方法是所有入事件的公共輸入點(diǎn),所以如果有多個(gè)eventIn入事件,為了得到關(guān)于事件到達(dá)的具體信息,事件類(lèi)有以下方法:</p><p>  public String

67、 getName():返回一個(gè)字符串類(lèi)型值,表示Script節(jié)點(diǎn)eventIn入事件的名字。</p><p>  public ConstField getValue():返回一個(gè)封裝了入事件值的常量域?qū)ο螅毁N到域類(lèi)的只讀實(shí)例中,目的是不允許在獲得該對(duì)象的引用實(shí)例后,對(duì)其值進(jìn)行修改。</p><p>  public double getTimeStamp():返回一個(gè)以秒為單位的時(shí)間

68、戳,此時(shí)事件已經(jīng)在VRML場(chǎng)景中產(chǎn)生,這個(gè)調(diào)用能夠決定到達(dá)一個(gè)特殊節(jié)點(diǎn)的事件順序。</p><p>  field getField(String fieldName):返回一個(gè)名為fieldName的Script節(jié)點(diǎn)的參考值,這個(gè)參考值可被轉(zhuǎn)換成相應(yīng)的Java類(lèi)。</p><p>  field getEventOut(String eventName):VRML的Script節(jié)點(diǎn)的每一

69、個(gè)出事件接口都可以被讀寫(xiě),通過(guò)Script類(lèi)的getEventOut()方法獲得該出事件的引用,并且能映射到正確的Java類(lèi)。</p><p>  field getEventIn(String eventName):返回給eventIn入事件的一個(gè)參值,并且能映射到正確的Java類(lèi)。</p><p>  Java腳本程序接收一個(gè)VRML場(chǎng)景中的域值需要兩步:第一步是在Java程序中得到一

70、個(gè)參考值,并把它映射到VRML場(chǎng)景的對(duì)應(yīng)域中,即一個(gè)域類(lèi)的子類(lèi)的實(shí)例對(duì)象被引用,它依賴(lài)于訪問(wèn)的域的類(lèi)型;第二步就是讀取那個(gè)引用的實(shí)例的值。</p><p> ?。?)從Java腳本程序傳遞數(shù)據(jù)到Script節(jié)點(diǎn)</p><p>  VRML虛擬場(chǎng)景的域值被讀入Java腳本程序進(jìn)行處理以后,需要將其結(jié)果寫(xiě)回到Script節(jié)點(diǎn)中。為了達(dá)到這個(gè)目的,需要調(diào)用setValue()、setlValu

71、e()、addValue()或insertValue()方法設(shè)置Script節(jié)點(diǎn)出事件的值,改變后的值將存儲(chǔ)在域?qū)ο笾?,并產(chǎn)生一個(gè)發(fā)向Script節(jié)點(diǎn)的入事件,它對(duì)VRML虛擬場(chǎng)景的影響由相關(guān)的路由來(lái)確定。</p><p>  (3)在Java腳本程序中直接讀寫(xiě)VRML節(jié)點(diǎn)(Node)的字段</p><p>  要用Java腳本程序改變VRML場(chǎng)景,有兩種方法:第一種方法是通過(guò)Script

72、節(jié)點(diǎn)中的eventIn字段將數(shù)據(jù)傳入Java腳本程序中,經(jīng)過(guò)Java腳本程序處理后將數(shù)據(jù)傳回Script節(jié)點(diǎn),最后用ROUTE語(yǔ)句將處理后的Script節(jié)點(diǎn)的eventOut字段的值傳遞到想要影響的VIGIL節(jié)點(diǎn)中去;第二種方法是通過(guò)Java腳本程序直接讀寫(xiě)VRML節(jié)點(diǎn)的字段,利用VRML中的SFNode類(lèi)來(lái)完成。SFNode是作為節(jié)點(diǎn)指針的一個(gè)字段類(lèi)型,一個(gè)SFNode字段可以指向VRML虛擬場(chǎng)景中的任意一個(gè)節(jié)點(diǎn)。若Java腳本程序能

73、夠直接讀寫(xiě)一個(gè)VRML節(jié)點(diǎn),那么該節(jié)點(diǎn)的任何一個(gè)暴露域、入事件或出事件都可以通過(guò)在Java腳本程序中調(diào)用該節(jié)點(diǎn)對(duì)象的 getExposedField()、 getEventIn(string eventInName)或getEventOut(string eventOutName)方法進(jìn)行訪問(wèn)。類(lèi)Node還包括getType()和getBrowser()方法,其中g(shù)etType()方法用于返回一個(gè)VRML節(jié)點(diǎn)的類(lèi)型,如Transform

74、或Shape等,getBrowser()用</p><p>  2.2.3 JavaScript概述</p><p>  JavaScript是一種基于對(duì)象的腳本語(yǔ)言。JavaScript繼承了Java語(yǔ)言的面向?qū)ο?、跨平臺(tái)等多項(xiàng)特點(diǎn),它被認(rèn)為是為了快速、簡(jiǎn)單地編程而出現(xiàn)的微型Java語(yǔ)言。</p><p>  JavaScript在HTML頁(yè)面中以語(yǔ)句形式出現(xiàn),

75、并且可以執(zhí)行相應(yīng)的操作。它是Netscape公司為了擴(kuò)充N(xiāo)etscape Navigator瀏覽器功能而開(kāi)發(fā)的一種可以嵌入在Web主頁(yè)中的編程語(yǔ)言。早期稱(chēng)之為L(zhǎng)iveScript,后來(lái)為了利用Java的功能同時(shí)借用它的流行性,把它改名為JavaScript。它是一種腳本語(yǔ)占,它的標(biāo)識(shí)符形式上與C,C++,Pascal和Delphi十分類(lèi)似。目前Netscape Navigator 2.0及其更高版本和Internet Explorer

76、3.0及更高版本瀏覽器均支持JavaScript語(yǔ)言。</p><p>  2.2.4 VRML與JavaScript</p><p>  鑒于JavaScript在網(wǎng)頁(yè)設(shè)計(jì)中成功的應(yīng)用并成為主導(dǎo)編程語(yǔ)言,VRML也將JavaScfipt作為內(nèi)嵌編程語(yǔ)言的候選之一,大部分VRML瀏覽器都支持JavaScfipt編寫(xiě)的腳本程序。</p><p>  VRML與Jav

77、aScript的結(jié)合主要體現(xiàn)在VRML的Script腳本節(jié)點(diǎn)上。由于VRML本身不具備與外部交互的功能,無(wú)法完成分支、循環(huán)、轉(zhuǎn)折等程序設(shè)計(jì)的基本特征,所以必須和其他語(yǔ)言結(jié)合才能構(gòu)造出具備交互功能的三維場(chǎng)景。因此在語(yǔ)占中定義了Script節(jié)點(diǎn),在該節(jié)點(diǎn)中,可以使用JavaScript代碼,從而實(shí)現(xiàn)普通程序的轉(zhuǎn)折、循環(huán)等功能,擴(kuò)展VRML語(yǔ)言的功能。</p><p>  Script節(jié)點(diǎn)的動(dòng)作是由JavaScript

78、腳本來(lái)實(shí)現(xiàn)。由于Script節(jié)點(diǎn)只能按照預(yù)定的規(guī)則來(lái)改變場(chǎng)景,無(wú)法滿足更為復(fù)雜的交互操作,VRML提供了EAI(外部程序接口)來(lái)實(shí)現(xiàn)外部應(yīng)用程序與VRML場(chǎng)景的實(shí)時(shí)交互。</p><p> ?。?)通過(guò)Script節(jié)點(diǎn)擴(kuò)展VRML場(chǎng)景</p><p>  VRML中的Sensor節(jié)點(diǎn)只具有最基本的交互能力,由于缺乏普通程序設(shè)計(jì)語(yǔ)占的分支、循環(huán)、轉(zhuǎn)移等的基本特征,VRML無(wú)法構(gòu)建一個(gè)完整的應(yīng)

79、用系統(tǒng)。在實(shí)際應(yīng)用系統(tǒng)的設(shè)計(jì)中,通常會(huì)通過(guò)Script節(jié)點(diǎn)的Java類(lèi)來(lái)實(shí)現(xiàn)這些復(fù)雜的功能。在節(jié)點(diǎn)接受事件時(shí),對(duì)應(yīng)的Java類(lèi)將產(chǎn)生一系列動(dòng)作。通過(guò)與普通節(jié)點(diǎn)、Script節(jié)點(diǎn)、Sensor節(jié)點(diǎn)和事件路由的協(xié)作來(lái)構(gòu)建事件體系。</p><p>  通過(guò)Script節(jié)點(diǎn)可以定義和改變場(chǎng)景內(nèi)對(duì)象的外觀和行為。當(dāng)Script初始化時(shí)通過(guò)EventOut出事件將事件和節(jié)點(diǎn)從VRML傳遞至Java程序,而通過(guò)EventIn

80、入事件可以命令從Java程序傳遞至VRML場(chǎng)景中。Event事件在VRML場(chǎng)景中被檢測(cè)后到傳遞給Java程序,再由Java程序作出響應(yīng)。本身不包含動(dòng)作的Script節(jié)點(diǎn)通過(guò)程序腳本來(lái)實(shí)現(xiàn)其動(dòng)作。</p><p>  簡(jiǎn)要說(shuō)來(lái)Java與VRML的結(jié)合就是:</p><p>  A.事件通過(guò)EventIn傳給Script節(jié)點(diǎn)中的腳本;</p><p><b>

81、  B.腳本處理;</b></p><p>  C.將結(jié)果通過(guò)EventOut傳回Script節(jié)點(diǎn)。</p><p>  (2)利用EAI擴(kuò)展VRML場(chǎng)景</p><p>  Java和VRML間的雙向動(dòng)態(tài)溝通由EAI提供。Java程序通過(guò)EAI界面取得3D場(chǎng)景中物體的信息,由EAI控制場(chǎng)景中的物體。</p><p>  EAI是

82、一種創(chuàng)作接口,介于VRML世界和外部環(huán)境之間。用戶瀏覽VRML作品時(shí),在成為瀏覽者的同時(shí)也成為了一名參與者,可以根據(jù)自己的意識(shí)去改變看到的世界。EAI定義了一套針對(duì)瀏覽器的類(lèi),外部環(huán)境通過(guò)這些類(lèi)訪問(wèn)當(dāng)前的VRML世界,實(shí)現(xiàn)VRML世界內(nèi)部場(chǎng)景的外部控制和修改。</p><p>  在VRML事件模型中,一個(gè)節(jié)點(diǎn)的EventOut事件可通過(guò)Route被傳遞至另一節(jié)點(diǎn)的EventIn。當(dāng)某個(gè)節(jié)點(diǎn)產(chǎn)生一個(gè)EventOu

83、t事件時(shí),與之相關(guān)聯(lián)的EventIn事件將會(huì)收到并處理信息。在VRML事件模型的基礎(chǔ)上,EAI實(shí)現(xiàn)了三種對(duì)場(chǎng)景的訪問(wèn)類(lèi)型:訪問(wèn)節(jié)點(diǎn);發(fā)送EventIn事件給節(jié)點(diǎn);讀取節(jié)點(diǎn)的EventOut事件。</p><p>  2.3虛擬場(chǎng)景漫游系統(tǒng)關(guān)鍵技術(shù)</p><p>  漫游系統(tǒng)是一個(gè)具有逼真的視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)的特定的虛擬環(huán)境。這是一個(gè)真實(shí)空間或假想空間的實(shí)時(shí)仿真空間,用戶通過(guò)必要的交互設(shè)備

84、實(shí)現(xiàn)以自然的方式在虛擬空間中觀察,漫游,產(chǎn)生身臨其境的感覺(jué)。漫游系統(tǒng)的關(guān)鍵技術(shù)包含建筑場(chǎng)景的建模、繪制、碰撞檢測(cè)等方面。</p><p>  2.3.1建筑場(chǎng)景建模技術(shù)</p><p><b>  (1)幾何建模技術(shù)</b></p><p>  幾何建模技術(shù)利用現(xiàn)有的三維造型軟件,如3DsMax,通過(guò)設(shè)計(jì)者對(duì)虛擬環(huán)境和對(duì)象進(jìn)行建模,是構(gòu)造三維

85、虛擬場(chǎng)景的傳統(tǒng)方法。在設(shè)計(jì)過(guò)程中,用戶可以直觀地觀察物體的具體形狀。</p><p>  優(yōu)點(diǎn):模型構(gòu)建精確,可操作,方便用戶和虛擬對(duì)象進(jìn)行交互。</p><p>  缺點(diǎn):過(guò)程繁瑣,工作量大;擴(kuò)展性差,改動(dòng)困難:場(chǎng)景復(fù)雜度及逼真度受硬件條件影響,硬件要求較高。</p><p><b> ?。?)物理建模技術(shù)</b></p>&l

86、t;p>  物理建模是對(duì)虛擬對(duì)象的重量、質(zhì)量、硬度、外部紋理、形狀變化等特征的一種建模。物理特性的結(jié)合使得三維幾何模型更具真實(shí)感。在虛擬現(xiàn)實(shí)系統(tǒng)的建模中,物理建模層次較高,需要將計(jì)算機(jī)圖形學(xué)與物理學(xué)結(jié)合起來(lái),在力的作用下,體現(xiàn)出重量、軟硬度、表面變化等物理屬性剛。</p><p><b> ?。?)圖像建模技術(shù)</b></p><p>  圖像建模技術(shù)是通過(guò)預(yù)先

87、處理好的圖像,來(lái)實(shí)時(shí)地生成不同視點(diǎn)的場(chǎng)景畫(huà)面。采用圖像建模技術(shù)的的好處是圖形繪制速度忽略了場(chǎng)景復(fù)雜度,只與所要產(chǎn)生的畫(huà)面的分辨率相關(guān)。圖片來(lái)源限制少,可以是預(yù)先存儲(chǔ)的好圖像,計(jì)算機(jī)生成的圖像或者實(shí)拍的照片。對(duì)計(jì)算機(jī)硬件要求不高,個(gè)人計(jì)算機(jī)上即可實(shí)現(xiàn)復(fù)雜場(chǎng)景的實(shí)時(shí)繪制。缺點(diǎn)是對(duì)于不存在的場(chǎng)景難以獲取圖像,二維對(duì)象的交互方面限制較大,甚至無(wú)法交互。</p><p>  基于圖像的虛擬現(xiàn)實(shí)建模技術(shù)有著十分廣泛的應(yīng)用前景

88、,對(duì)于逼真度要求高的自然環(huán)境,建模難度大的模型場(chǎng)景尤為適用。常見(jiàn)應(yīng)用于建筑物的展示、飛機(jī)駕駛的模擬、交互式游戲、虛擬展館及虛擬景觀的導(dǎo)游等領(lǐng)域。</p><p>  2.3.2場(chǎng)景繪制技術(shù)</p><p>  基于圖形繪制面向景物的幾何模型,基于圖形的三維繪制技術(shù)的基礎(chǔ)數(shù)據(jù)是矢量幾何數(shù)據(jù),經(jīng)過(guò)三角剖分,用一定數(shù)量的三角面擬合景物幾何體。使用頂點(diǎn)數(shù)組的數(shù)據(jù)結(jié)構(gòu)描述所擬合的幾何體的描述如下:

89、</p><p>  Typedef struct{</p><p>  GLfloat u,v; //紋理坐標(biāo)</p><p>  GLfloat nx,ny,nz; //法向矢量</p><p>  GLfloat x,y,z; //頂點(diǎn)坐標(biāo)</p><p><b>  }VERTEX

90、;</b></p><p>  該頂點(diǎn)數(shù)組中每一個(gè)元素表示一個(gè)頂點(diǎn),(u,v)表示該頂點(diǎn)的紋理坐標(biāo),(nx,ny,nz)表示該頂點(diǎn)的法向量值,(x,y,z)是頂點(diǎn)坐標(biāo)。</p><p>  三個(gè)頂點(diǎn)構(gòu)成一個(gè)三角面,通過(guò)如下數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述:</p><p>  Typedef struct{</p><p>  GLuint p0

91、,pl,p2; //頂點(diǎn)序列索引</p><p>  }TRIANGLE;</p><p>  該結(jié)構(gòu)中存放的是三個(gè)頂點(diǎn)的索引值p0、p1、p2,而不是用來(lái)構(gòu)成這個(gè)三角面頂點(diǎn)坐標(biāo)。</p><p>  通過(guò)若干個(gè)三角面可以擬合任意的幾何體,并加入相應(yīng)的紋理數(shù)據(jù)。其數(shù)據(jù)結(jié)描述如下:</p><p>  Typedefstruct{</p

92、><p>  Int NumTriangles; //角形數(shù)量</p><p>  TRIANGLE*TrianglelndexList; //三角形陣列索引</p><p>  Char texturename; //紋理名稱(chēng)</p><p>  GLuint textureID;

93、 //紋理ID</p><p>  }GEOMETRY;</p><p>  2.3.3虛擬場(chǎng)景優(yōu)化技術(shù)</p><p>  為同時(shí)滿足虛擬場(chǎng)景的真實(shí)感和提高瀏覽速度,需要對(duì)虛擬場(chǎng)景模型進(jìn)行優(yōu)化。</p><p>  (1)場(chǎng)景模型的優(yōu)化</p><p>  和CAD場(chǎng)景的建立有很大的區(qū)別,虛擬現(xiàn)實(shí)的實(shí)時(shí)

94、性要求決定虛擬場(chǎng)景的建立強(qiáng)調(diào)模型簡(jiǎn)單化。當(dāng)場(chǎng)景的真實(shí)性要求和系統(tǒng)響應(yīng)速度發(fā)生沖突時(shí),在確保視覺(jué)感官上達(dá)到基本真實(shí)的前提條件下,需要損失部分真實(shí)性。常見(jiàn)的方法是采用簡(jiǎn)單框架取代復(fù)雜模型,通過(guò)貼圖的方式彌補(bǔ)視覺(jué)效果的不足,保證一定的真實(shí)性。所用貼圖可以使用繪畫(huà)軟件進(jìn)行手工繪制獲得,或?qū)ㄖ锏母饔^察面進(jìn)行拍攝獲得,通過(guò)掃描手段生成相關(guān)材質(zhì)的貼圖。</p><p>  使用繪畫(huà)軟件進(jìn)行手工繪制貼圖的方法將顏色位數(shù)限定在

95、256以?xún)?nèi),采用這種方法生成的貼圖壓縮比較大,文件較小,便于網(wǎng)絡(luò)傳輸,能較好地滿足實(shí)時(shí)性的要求。第二種方法相對(duì)視覺(jué)效果較好,但文件壓縮比小,生成的場(chǎng)景文件較大,在網(wǎng)絡(luò)傳輸速度和實(shí)時(shí)性方面不如前者。在畫(huà)面質(zhì)量和存儲(chǔ)文件大小允許的范圍內(nèi),貼圖規(guī)格通常采用320*240像素、分辨率72dpi,經(jīng)過(guò)最高壓縮比的JPEG格式壓縮后文件大小約為20K字節(jié)。對(duì)于部分大型場(chǎng)景而言,建筑密度大,數(shù)據(jù)量高,為了提高渲染效率和漫游速度,可以對(duì)場(chǎng)景進(jìn)行分割,將

96、大型場(chǎng)景分割成若干小塊分別進(jìn)行處理,完成之后組合成整個(gè)系統(tǒng)。</p><p> ?。?)層次細(xì)節(jié)技術(shù)和多細(xì)節(jié)層次模型</p><p>  層次細(xì)節(jié)LOD技術(shù)通過(guò)一組有著不同細(xì)節(jié)復(fù)雜度等級(jí)的實(shí)體模型來(lái)描述對(duì)象,在仿真過(guò)程中根據(jù)設(shè)計(jì)者要求在這些LOD模型間進(jìn)行切替,實(shí)時(shí)改變場(chǎng)景的復(fù)雜度,是控制場(chǎng)景復(fù)雜度的一種非常有效方法。</p><p>  三角面片是傳統(tǒng)圖形系統(tǒng)中最

97、通用的繪圖元語(yǔ)。幾何模型包含的三角形數(shù)量越多,圖像質(zhì)量就越高,繪制速度也就越慢,對(duì)于部分過(guò)于復(fù)雜的場(chǎng)景不能實(shí)時(shí)渲染,LOD的應(yīng)用可以較好地解決這個(gè)問(wèn)題。其基本思想是:對(duì)場(chǎng)景中的對(duì)象,采用不同的細(xì)節(jié)描述方法??紤]人類(lèi)肉眼的細(xì)節(jié)分辨能力,選取的細(xì)節(jié)等級(jí)模型根據(jù)視點(diǎn)變化而變化,如果物體距離視點(diǎn)較遠(yuǎn),或者個(gè)體較小,渲染時(shí)就可以用一個(gè)可以表現(xiàn)其主要輪廓的粗略LOD模型;如果物體距離視點(diǎn)較近,或者個(gè)體較大,渲染時(shí)就采用較精細(xì)的LOD模型。</

98、p><p>  目前虛擬環(huán)境中涉及的場(chǎng)景復(fù)雜度越來(lái)越高,為場(chǎng)景對(duì)象提供不同的LOD描述可以有效地控制場(chǎng)景復(fù)雜度,加速畫(huà)面繪制速度。在虛擬現(xiàn)實(shí)、快速繪制復(fù)雜三維場(chǎng)景、飛行模擬和3D動(dòng)畫(huà)等領(lǐng)域已經(jīng)開(kāi)始廣泛應(yīng)用LOD技術(shù)?,F(xiàn)在,建立不同層次細(xì)節(jié)的模型和相鄰層次模型之間形成光滑的視覺(jué)過(guò)渡是LOD的研究的主要方向。</p><p><b> ?。?)實(shí)例引用</b></p&g

99、t;<p>  所謂實(shí)例引用是指在多個(gè)造型中引用同一個(gè)實(shí)例。如果我們將構(gòu)成造型的節(jié)點(diǎn)稱(chēng)為子節(jié)點(diǎn),而若干個(gè)造型的集合稱(chēng)為父節(jié)點(diǎn)。實(shí)際使用過(guò)程中,子節(jié)點(diǎn)數(shù)據(jù)存放于內(nèi)存中,父節(jié)點(diǎn)通過(guò)變換三維坐標(biāo)產(chǎn)生新的物體,父節(jié)點(diǎn)中僅需存儲(chǔ)用于定義物體的變換參數(shù)。父節(jié)點(diǎn)生成的物體,將隨著子節(jié)點(diǎn)中數(shù)據(jù)的變化而發(fā)生改變。采用實(shí)例引用技術(shù)可有效降低系統(tǒng)內(nèi)存的耗費(fèi),節(jié)約系統(tǒng)資源,在虛擬漫游系統(tǒng)中應(yīng)用廣泛。</p><p><

100、;b> ?。?)碰撞檢測(cè)技術(shù)</b></p><p>  要使用戶以更自然、更真實(shí)的方式與三維場(chǎng)景中的虛擬對(duì)象進(jìn)行交互,碰撞檢測(cè)是很重要的環(huán)節(jié)。若系統(tǒng)忽略碰撞檢測(cè),一個(gè)對(duì)象碰到另一個(gè)對(duì)象的時(shí)候就會(huì)發(fā)生穿墻而過(guò)這種在現(xiàn)實(shí)生活中不合理的現(xiàn)象。虛擬場(chǎng)景漫游系統(tǒng)中動(dòng)、靜態(tài)對(duì)象之間交互的基礎(chǔ)就是碰撞檢測(cè),在構(gòu)造系統(tǒng)的時(shí)候,需要實(shí)時(shí)準(zhǔn)確地判斷虛擬場(chǎng)景中的對(duì)象間是否發(fā)了碰撞。</p><p

101、>  碰撞問(wèn)題涉及碰撞檢測(cè)和碰撞響應(yīng)兩個(gè)部分。按運(yùn)動(dòng)對(duì)象所處空間劃分,碰撞檢測(cè)可分為二維平面和三維空間的碰撞檢測(cè)。相較而言,由于三維物體的構(gòu)造比較復(fù)雜,其碰撞檢測(cè)算法相應(yīng)更困難一些。</p><p>  采用包裹著物體對(duì)象的包圍盒(bounding boxes)是進(jìn)行碰撞檢測(cè)的一個(gè)常見(jiàn)方法。包圍盒可以理解為包裹虛擬對(duì)象所需最小的長(zhǎng)方體,其個(gè)線段與空間坐標(biāo)軸平行?;舅悸肥鞘褂煤?jiǎn)單的包圍盒如長(zhǎng)方體,將復(fù)雜的幾

102、何對(duì)象圍起來(lái),進(jìn)行碰撞檢測(cè)時(shí),先檢測(cè)二者的包圍盒是否有交集。若檢測(cè)結(jié)果不相交,則說(shuō)明二者沒(méi)有產(chǎn)生碰撞,否則需要對(duì)而者作進(jìn)一步的檢測(cè)。通過(guò)這種方式可以快速排除不相交物體,從而達(dá)到加速運(yùn)算的目的。</p><p>  雖然采用包圍盒算法可以實(shí)現(xiàn)快速碰撞檢測(cè),但在虛擬漫游系統(tǒng)的實(shí)際應(yīng)用中,僅靠包圍盒進(jìn)行碰撞檢測(cè)就想做到自然的交互還是遠(yuǎn)遠(yuǎn)不夠的。基于包圍盒的碰撞檢測(cè)并不十分精確,包圍盒僅僅是物體邊界的一個(gè)粗略表示,兩個(gè)物

103、體的包圍盒相交并不代表這兩個(gè)物體一定相交。為了解決這個(gè)問(wèn)題,還應(yīng)采用若干個(gè)多邊形輔助表示包圍盒,此時(shí)虛擬對(duì)象的邊界就由一組多邊形來(lái)表示,從而實(shí)行進(jìn)一步的精確的碰撞檢測(cè)。在判斷兩個(gè)物體是否相交時(shí),先判斷粗略包圍盒是否相交,確定相交之后再判斷兩個(gè)物體的多邊形集是否相交。</p><p>  3系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  運(yùn)用三維建模技術(shù)在計(jì)算機(jī)中創(chuàng)建一個(gè)逼真的現(xiàn)實(shí)校園場(chǎng)景的虛擬世界

104、是構(gòu)建虛擬校園的主要工作之一。心理學(xué)家研究表明:人們通過(guò)視覺(jué)系統(tǒng)獲得的外界信息約占全部信息的83%,我們構(gòu)建的虛擬校園的逼真程度決定了其沉浸感,因此虛擬校園模型的構(gòu)建在整個(gè)虛擬校園系統(tǒng)中的地位非常重要。選擇合適的建模工具和三維模型渲染技術(shù)將有助于提高虛擬現(xiàn)實(shí)場(chǎng)景中模型的逼真程度。</p><p><b>  3.1系統(tǒng)設(shè)計(jì)</b></p><p>  天空與地面的建

105、模較為簡(jiǎn)單,主要是用VRML自帶的Background節(jié)點(diǎn)來(lái)實(shí)現(xiàn),實(shí)現(xiàn)代碼如下:</p><p>  Background{</p><p>  skyAngle [1.0 1.3 1.571] #天空著色所需球角體范圍1.57弧度指90°。</p><p>  skyColor [0.2 0.2 1.0 #天空的顏色設(shè)置</p>

106、<p>  0.3 0.3 1.0</p><p>  0.6 0.6 1.0</p><p>  0.8 0.8 1.0]</p><p>  groundAngle [1.4 1.571] #地面著色所需球角體范圍</p><p>  groundColor [0.0 0.0 0.0 #地面顏色設(shè)置&

107、lt;/p><p>  0.6 0.7 0.1</p><p>  0.0 1.00.0]</p><p><b>  }</b></p><p>  3.1.1建筑模型建立</p><p>  對(duì)于外形輪廓規(guī)則(如長(zhǎng)方體)的建筑物,可以將事先拍攝好的該建筑的各個(gè)立面的照片作為對(duì)比圖,提高場(chǎng)景讀入的

108、速率的效果。但是相對(duì)的,逼真感將會(huì)比真實(shí)的三維模型建筑降低。而對(duì)于復(fù)雜的不規(guī)則建筑則要進(jìn)行具體的建模,但要注意的是盡量在保證可視性的情</p><p>  況下降低模型的精度。</p><p>  具體到校園建模,采用的方法是,對(duì)標(biāo)志性的建筑進(jìn)行精確建模。</p><p>  模型的建造流程如下圖3.1所示:</p><p>  圖3.1模型

109、建造流程</p><p><b>  具體步驟如下:</b></p><p> ?。?)在3D MAX進(jìn)行粗略建模:主要是根據(jù)圖紙建出建筑的大體輪廓,</p><p>  (2)細(xì)化模型:該步驟圭要是將模型進(jìn)行細(xì)致處理,在保持文件大小前提下光滑表面,調(diào)整部分節(jié)點(diǎn),加入建筑細(xì)節(jié),使其更加接近真實(shí)。</p><p> ?。?

110、)簡(jiǎn)化處理:該步驟主要是刪減最終模型中不必要的部分降低模型的精度,使最總文件盡量小。生成最終效果如圖3.2</p><p><b>  圖3.2館外效果圖</b></p><p><b>  圖3.3館內(nèi)效果圖</b></p><p> ?。?)導(dǎo)出生成VRML文件。</p><p>  使用3D

111、MAX將生成的效果圖導(dǎo)出*.wrl格式文件。</p><p>  3.1.2漫游設(shè)計(jì)</p><p>  本漫游系統(tǒng)是用來(lái)實(shí)現(xiàn)校園區(qū)域場(chǎng)景的漫游,通過(guò)本漫游系統(tǒng)將校園的VRML場(chǎng)景漫游鏈接到網(wǎng)絡(luò)上,實(shí)現(xiàn)用戶可以足不出戶,在網(wǎng)絡(luò)上了解校園布局與校園景觀。為了符合網(wǎng)絡(luò)虛擬世界交互性和沉浸感的要求,同時(shí)結(jié)合校園觀賞的需要,設(shè)計(jì)目標(biāo)如下:</p><p> ?。?)用戶可

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論