版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 虛擬現(xiàn)實(Virtual Reality)技術(shù)是用現(xiàn)代計算機技術(shù)創(chuàng)建的一個酷似客觀環(huán)境又超越客觀時空、既能沉浸又能駕馭的和諧人機環(huán)境。虛擬校園是在計算機環(huán)境中,利用虛擬現(xiàn)實技術(shù)再現(xiàn)校園的景觀,來訪者足不出戶就可以進入到虛擬的校園之中訪問漫游,盡情領(lǐng)略校園的文化風(fēng)情。</p><p> 本文研究了虛擬現(xiàn)實
2、技術(shù),特別是虛擬現(xiàn)實在數(shù)字化校園建設(shè)中的國內(nèi)外的先進理論,以此為基礎(chǔ)深入探究了虛擬校園的基本要素、基本特征以及虛擬校園的軟、硬件實現(xiàn)架構(gòu),同時也對當前比較流行的幾種桌面虛擬現(xiàn)實技術(shù)做了對比研究。</p><p> 結(jié)合xxxx大學(xué)的開發(fā)與建設(shè),本文用3dsMax等軟件開發(fā)了虛擬校園的三維模型,使用Inline節(jié)點來統(tǒng)一整合場景模型,將高精度建模與低精度建模有機結(jié)合,保證視覺效果及其瀏覽速度;利用JavaScri
3、pt與導(dǎo)航、路由等節(jié)點相結(jié)合實現(xiàn)自動漫游、交互漫游。</p><p> 關(guān)鍵詞:虛擬現(xiàn)實,虛擬校園,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ù)的研究現(xiàn)狀4</p><p> 1.2.1國外虛擬現(xiàn)實技術(shù)研究現(xiàn)狀4</p><p> 1.2.2國內(nèi)虛擬現(xiàn)實技術(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)實語言VRML6</p><p> 2.1.1 VRML的發(fā)展簡史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é)點和Java腳本程序之間的數(shù)據(jù)通信12</p><p> 2.2.3 JavaScript概述16</p><p> 2.2.4 VRML與JavaScript16</p>&
14、lt;p> 2.3虛擬場景漫游系統(tǒng)關(guān)鍵技術(shù)17</p><p> 2.3.1建筑場景建模技術(shù)17</p><p> 2.3.2場景繪制技術(shù)18</p><p> 2.3.3虛擬場景優(yōu)化技術(shù)19</p><p> 3系統(tǒng)的設(shè)計與實現(xiàn)21</p><p> 3.1系統(tǒng)設(shè)計21<
15、;/p><p> 3.1.1建筑模型建立22</p><p> 3.1.2漫游設(shè)計23</p><p> 3.2漫游功能的實現(xiàn)24</p><p> 3.2.1自動漫游的實現(xiàn)25</p><p> 3.2.2交互式漫游的實現(xiàn)25</p><p> 3.3漫游過程中碰
16、撞檢測26</p><p> 3.3.1漫游過程中碰撞檢測的流程27</p><p> 3.3.2碰撞檢測27</p><p> 3.4虛擬場景在Internet上的發(fā)布27</p><p> 3.4.1VRML文件的MIME類型27</p><p> 3.4.2VRML場景文件與HTML
17、網(wǎng)頁文件的結(jié)合28</p><p> 4總結(jié)和展望29</p><p> 4.1論文總結(jié)29</p><p><b> 4.2展望29</b></p><p><b> 參考文獻31</b></p><p><b> 1緒論</b&
18、gt;</p><p> 1.1論文研究背景及意義</p><p> 隨著信息技術(shù)的發(fā)展及其應(yīng)用的不斷深入,數(shù)字化信息管理和實物虛擬化已經(jīng)在當前的信息技術(shù)應(yīng)用領(lǐng)域占據(jù)了相當重要地位。虛擬現(xiàn)實是在現(xiàn)實客觀世界的基礎(chǔ)上,利用先進的信息化工具,構(gòu)建一個可以模擬的現(xiàn)實世界的虛擬空間,在此基礎(chǔ)上甚至可以進一步拓展現(xiàn)實世界的時空維度,從而擴展現(xiàn)實世界的功能,最終建立一個優(yōu)于現(xiàn)實世界的計算機世界虛
19、擬空間。</p><p> 1.2虛擬現(xiàn)實技術(shù)的研究現(xiàn)狀</p><p> 虛擬現(xiàn)實(Virtual Reality)技術(shù),別稱臨境技術(shù),是采用現(xiàn)代先進的計算機技術(shù)創(chuàng)建一個酷似現(xiàn)實世界卻又跨越時空的虛擬世界,是一個用戶可以沉浸其中并隨心駕馭的和諧人機環(huán)境。在一些列傳感輔助設(shè)備,如覺、聽覺以及觸覺設(shè)備的幫助下,用戶通過自然的方式向計算機傳遞各種動作信息,感受三維虛擬世界。當前,與虛擬現(xiàn)
20、實技術(shù)相關(guān)聯(lián)的內(nèi)容主要包含自然模擬和逼真體驗的技術(shù)與方法,實現(xiàn)真實的體驗和方便自然的人機交互是虛擬現(xiàn)實技術(shù)的重要目標。最顯而易見的是讓使用者獲得沉浸感,即令人產(chǎn)生身處于虛擬環(huán)境的感覺。借助沉浸感,用戶可以方便地獲取周邊環(huán)境的全面化印象,確定自己在環(huán)境中的位置,實現(xiàn)在虛擬環(huán)境中逼真漫游。</p><p> 1.2.1國外虛擬現(xiàn)實技術(shù)研究現(xiàn)狀</p><p> 通過實際的應(yīng)用,虛擬現(xiàn)實技
21、術(shù)展現(xiàn)出了令人期待的前景。世界各國特別是一些發(fā)達國家,在多個領(lǐng)域都對其進行了廣泛深入的研究。這里主要介紹一下具有代表性的美國的研究現(xiàn)狀。</p><p><b> ?。?)政府的資助</b></p><p> 虛擬現(xiàn)實技術(shù)的發(fā)源地是美國。其虛擬現(xiàn)實的研究技術(shù)的水平代表著國際虛擬現(xiàn)實技術(shù)發(fā)展的水平。美國在VR研究的領(lǐng)域主要集中于感知、用戶界面、硬件和后臺軟件這四個方面
22、。美國政府對虛擬現(xiàn)實技術(shù)的研究進行了巨大的資助,國家科學(xué)基金會(NSF)下設(shè)計算機、信息科學(xué)與工程學(xué)部(CISE)資助的VR技術(shù)項目最多,CISE每年的平均研發(fā)經(jīng)費約為5億美元。</p><p><b> ?。?)高校的推動</b></p><p> 北卡羅來納大學(xué)計算機系是最早進行虛擬現(xiàn)實研究也是最著名的大學(xué)。他們主要從事分子建模、建筑仿真、航空駕駛、外科手術(shù)仿
23、真等研究。</p><p> 麻省理工學(xué)院對人工智能、計算機圖形學(xué)及動畫方面研究走在了世界的前沿,這些研究即是VR技術(shù)的基礎(chǔ)。麻理用于進行虛擬環(huán)境的研究媒體實驗室成立于1985年,在實驗室里創(chuàng)建了BOLIO測試環(huán)境,并在該虛擬環(huán)境下創(chuàng)建了對象運動跟蹤動態(tài)系統(tǒng)。</p><p> 密歇根大學(xué)于80年代成功開發(fā)了Agent建模環(huán)境Soar,該項目基于符號表示和規(guī)則推理,之后在行為建模、人工
24、智能和人機接口等方面的研究中被廣泛應(yīng)用。Soar的目的是為仿真空軍軍力提供改進,并在改進后擴充LORAL MODSAF。該計劃的使用使得美國國防部在虛擬戰(zhàn)役中具備了智能化的多目標感知和管理能力、時態(tài)推理能力,并使用來管理和操縱敵方部隊的人員減少到最低。</p><p><b> (3)企業(yè)的推動</b></p><p> 微軟公司開發(fā)了大量VR技術(shù):能夠讓用戶將一
25、組具有相似性的照片生成一個3D場景的Photosynth軟件;支持3D效果的Silverlight插件;具有麥克風(fēng)輸入、語音辨識、動態(tài)捕捉、影像辨識等功能的三維體感攝影機Project Natal4;用來瀏覽美國各大主要城市的全方位3D圖片的Virtual Earth 3D。IBM公司在互聯(lián)網(wǎng)和VR技術(shù)的研發(fā)上投入上億資金。Bluegrass這個虛擬現(xiàn)實應(yīng)用程序,令用戶能夠建立虛擬會議室,實現(xiàn)遠程會議。</p><p
26、> 波音公司“波音777運輸機"的設(shè)計完全無紙化,利用其開發(fā)的VR系統(tǒng)將虛擬環(huán)境投射于真實的環(huán)境之上,工人根據(jù)投射在工件上的虛擬模板尺寸進行部件加工,大大簡化了加工流程。</p><p> 美國的企業(yè)對VR技術(shù)不僅僅著眼于研發(fā)方面,更多面向市場、面向用戶的VR商品顯示了VR技術(shù)在商業(yè)化應(yīng)用領(lǐng)域取得了很好的效果。</p><p> 1.2.2國內(nèi)虛擬現(xiàn)實技術(shù)研究現(xiàn)狀&
27、lt;/p><p> 我國VR技術(shù)的研究起步于20世紀90年代初,和部分發(fā)達國家相比還有很大差距。隨著計算機圖形學(xué)等技術(shù)的高速發(fā)展,VR技術(shù)得到了國家科技部和困防科工委的重視。國內(nèi)諸多機構(gòu)部開始進行VR的研究和應(yīng)用,并取得了一系列不錯的成果。</p><p> 北京航空航天大學(xué)是國內(nèi)進行VR研究最早的單位之一,北航計算機系的虛擬實現(xiàn)與可視化新技術(shù)研究室集成了分布式虛擬環(huán)境,可提供實時三維動
28、態(tài)數(shù)據(jù)庫,虛擬現(xiàn)實演示環(huán)境,供飛行員訓(xùn)練的虛擬現(xiàn)實系統(tǒng)等。并在虛擬現(xiàn)實下的視覺接口方面的硬件開發(fā),相關(guān)算法及實現(xiàn),分布式虛擬環(huán)境的網(wǎng)絡(luò)設(shè)計等方面取得了成果。</p><p> 武漢理工大學(xué)智能制造與控制研究所主要研究使用虛擬現(xiàn)實技術(shù)進行機械虛擬制造,包括虛擬布局、虛擬裝配和產(chǎn)品原型快速生成等。</p><p> 浙江大學(xué)CAD&CG國家重點實驗室開發(fā)了一套桌面型虛擬建筑環(huán)境實時
29、漫游系統(tǒng)。</p><p> 近年來中國在VR相關(guān)技術(shù)領(lǐng)域的研究取得了快速的發(fā)展,VR技術(shù)潛力大,應(yīng)用面廣,前景光明,但仍然存在一些尚未解決的理論、技術(shù)障礙。</p><p> 1.2.3虛擬校園研究現(xiàn)狀</p><p> 虛擬校園正是采用虛擬現(xiàn)實技術(shù)構(gòu)建而成的,其目的是將學(xué)校風(fēng)光和地圖進行有機結(jié)合起來,可以使來訪者足不出戶便可覽校園風(fēng)光,為學(xué)校樹立良好的對
30、外形象,也可以作為校園建設(shè)的輔助規(guī)劃工具,供校園內(nèi)外的師生和熱心人士出謀劃策。虛擬校園與學(xué)校信息的有機結(jié)合,可以一改過去陳舊呆板的操作界面,提供給師生一個具有新鮮感、三維化的信息介紹與查詢環(huán)境。</p><p> 研究虛擬校園的建設(shè),將對學(xué)校的發(fā)展對學(xué)校的數(shù)字化信息化有重要的現(xiàn)實意義。因此本文將結(jié)合xxxx大學(xué)虛擬校園的開發(fā)與探索,對虛擬校園建設(shè)作初步的研究與探索,并采用VRML+JavaScript這一種當前
31、最為方便、靈活的桌面虛擬技術(shù)作為實現(xiàn)技術(shù)。</p><p> 1.3論文研究主要內(nèi)容和目的</p><p> 本文通過對虛擬現(xiàn)實及其建模語言VRML系統(tǒng)的學(xué)習(xí),分析了基于VRML的虛擬漫游系統(tǒng)的特點和應(yīng)用。對當前國內(nèi)外虛擬場景漫游系統(tǒng)的實現(xiàn)技術(shù)進行了分析和對比,對三維場景漫游系統(tǒng)中涉及的關(guān)鍵技術(shù)進行了理論分析和應(yīng)用研究。在此基礎(chǔ)上,基于VRML語言和JavaScript腳本語占實現(xiàn)了
32、一個基于Web的虛擬場景漫游導(dǎo)航系統(tǒng)。</p><p><b> 2系統(tǒng)技術(shù)分析</b></p><p> 2.1虛擬現(xiàn)實語言VRML</p><p> VRML是Virtual Reality Modeling Language的縮寫,即虛擬現(xiàn)實建模語言,它是虛擬現(xiàn)實和WWW結(jié)合的產(chǎn)物,是一種可以用來創(chuàng)建現(xiàn)實世界的場景模型或者虛構(gòu)世
33、界的三維場景建模。VRML是一種跨平臺的語言,可以發(fā)布用來3D網(wǎng)頁,用戶可以在瀏覽的時候可以參與和探索,在交互性、動態(tài)效果、延續(xù)性等方面感受到比瀏覽普通網(wǎng)頁更自然的體驗方式。</p><p> VRML使得虛擬現(xiàn)實走進了普通百姓的生活,出現(xiàn)了多媒體技術(shù)、因特網(wǎng)技術(shù)和虛擬現(xiàn)實相結(jié)合產(chǎn)生的第二代萬維網(wǎng),用戶在網(wǎng)絡(luò)上獲取豐富信息的同時如同置身于真實世界中。</p><p> VRML的基本目
34、標是在因特網(wǎng)上建立具有三維化、分布式、交互性、多媒體集成性和環(huán)境逼真性等特點的三維媒體。</p><p> 2.1.1 VRML的發(fā)展簡史</p><p> 1994年5月,Mark Pesce和Tony Parisi在瑞士日內(nèi)瓦召開的萬維網(wǎng)會議上介紹了可以在網(wǎng)絡(luò)上運行的虛擬現(xiàn)實界面。第一次在網(wǎng)絡(luò)上出現(xiàn)的三維界面?zhèn)涫荜P(guān)注,BOF小組組建并開發(fā)了一種可以連接網(wǎng)絡(luò)的場景描述語言,并制定了
35、VRML標準。</p><p> 同年10月,第二次萬維網(wǎng)會議于芝加哥召開。會上公布了VRMLl.0的規(guī)范草案。</p><p> 1996年初,VRML委員會評審并票決出SGI的Moving World作為VRML2.0規(guī)范的工作文檔。同年8月,公布了VRML2.0規(guī)范的第一版。</p><p> 1997年12月,在VRML2.0的基礎(chǔ)上經(jīng)過修訂和部分功能
36、調(diào)整后,VRML作為國際性標準正式發(fā)布,VRML97是該標準的通稱。</p><p> 1999年底,整合了XML、Java、流技術(shù)等新技術(shù)的VRML的編碼方案X3D出爐。</p><p> 2000年之后,VRML進入了一個嶄新的時代。</p><p> 2.1.2 VRML文件的組成</p><p> VRML文件由四部分組成,
37、即:文件頭語句、節(jié)點語句、事件路由語句和注釋語句構(gòu)成。</p><p> ?。?)VRML文件頭</p><p> VRML文件必須包含文件頭,其語法格式如下:</p><p> #VRMI V2.0 utf8</p><p> utf8是指該文件使用的字符集,包含了任何計算機鍵盤上能夠找到的字符。</p><p&g
38、t;<b> ?。?)VRML節(jié)點</b></p><p> 節(jié)點(Node)是VRML中的基本單位。節(jié)點可以是3D造型、材質(zhì)或者動畫定時器、傳感器等。節(jié)點通常由節(jié)點類型,描述節(jié)點屬性的域和域值這幾個部分組成。</p><p><b> 以Box為例:</b></p><p><b> Box{</b
39、></p><p> size 2 2 2</p><p><b> }</b></p><p> Box是一個長方體幾何節(jié)點,域為size,2 2 2相對應(yīng)長方體的寬、高和深度。</p><p> 每個域值歸屬于特定的域類型,一般分為單值類型和多值類型。在VRML2.0中共定義了54種節(jié)點類型和20種域類
40、型。常見的功能及節(jié)點如表3.1所示。</p><p> 表2.1 VRML常用功能及節(jié)點</p><p> VRML文件中以定義某個節(jié)點并反復(fù)引用該節(jié)點。</p><p> 定義節(jié)點的語法為:DEF_節(jié)點名稱_節(jié)點{}。</p><p> 引用節(jié)點的語法為:USE_節(jié)點名稱。</p><p> 同一個節(jié)點中的
41、域具有無序性和可選性這兩個特性。各個域排列次序的不同不會影響最終得到的虛擬場景的結(jié)果;各個域有缺省值,可根據(jù)需要選擇并創(chuàng)建造型。</p><p> 場景圖中節(jié)點和節(jié)點間的關(guān)系可以通過節(jié)點語義,或者用組節(jié)點把若干節(jié)點嵌套組合的方式來確立。本系統(tǒng)中用到的主要節(jié)點介紹表3.2所示:</p><p> 表2.2本漫游導(dǎo)航系統(tǒng)中主要節(jié)點介紹</p><p> ?。?)VR
42、ML事件和路由</p><p> 場景圖中有一類節(jié)點參與事件的產(chǎn)生和路由圖的形成,這類節(jié)點用來確定在事件觸發(fā)過程中場景的動態(tài)變化,并以此為依據(jù)修改場景圖。這類節(jié)點是虛擬空間交互性和動態(tài)性實現(xiàn)的基礎(chǔ)。</p><p> 2.1.3 VRML的工作原理及特性</p><p> VRML通過文本信息來描述三維場景,在網(wǎng)絡(luò)上進行傳輸,再通過用戶機上的VRML的瀏覽器
43、解析生成三維場景。其實現(xiàn)過程如圖3.1所示。相較圖形文件而言,文本信息的網(wǎng)絡(luò)傳輸要方便快捷得多,將繁復(fù)的解析處理任務(wù)交給用戶機,從而達到減輕網(wǎng)絡(luò)的負荷的目的。該工作機制使其在網(wǎng)絡(luò)應(yīng)用中發(fā)展迅速。</p><p> 圖2.1 VRML文件的實現(xiàn)過程</p><p> VRML是基于Client/Server模式的訪問模式,服務(wù)器提供VRML文件,客戶下載并通過本地瀏覽器對該文件所描述的虛
44、擬世界進行訪問,如圖3.2所示。</p><p> 圖2.2基于Client/Server模式的VRML訪問方式</p><p> VRML作為一種標準,并不能滿足所有的應(yīng)用需要。交互性、畫質(zhì)、復(fù)雜度的要求相互制約,加上用戶平臺硬件配置的不同,用戶需要自己去尋找中間的平衡點。VRML的可擴展性顯得十分重要。與其他的三維建模語言相比,VRML具有如下優(yōu)勢。</p><
45、p><b> ?。?)平臺無關(guān)性</b></p><p> 基于ASCII的字符構(gòu)成,VRML被設(shè)計成與平臺無關(guān),通過VRML瀏覽器或相關(guān)插件,某個在網(wǎng)上傳輸?shù)腣RML文件可以應(yīng)用于多種平臺。</p><p> (2)VRWL瀏覽器</p><p> VRML文件可以使用經(jīng)過安裝插件后普通IE瀏覽。專用的VRML瀏覽器如Corton
46、a,CosmoPlayer等具有更強的功能。大多數(shù)瀏覽器都提供了一個供用戶執(zhí)行改變視點、多方向行走的操作面板。</p><p> ?。?)三維幾何體生成方便</p><p> 除了基本造型之外,VRML還提供了一些高級造型方法以便創(chuàng)建復(fù)雜的三維模型。同時VRML與很多知名三維繪制軟件有標準接口,如AutoCAD、3DMAX、Canoma、Pro/E等,借助這些軟件可以創(chuàng)建生成更為復(fù)雜的模
47、型,然后導(dǎo)出*.wrl的VRML文件格式。</p><p> (4)使用Script節(jié)點調(diào)用JavaScript腳本擴展其功能</p><p> 將Java在Internet環(huán)境下編程的優(yōu)勢和VRML在虛擬現(xiàn)實場景構(gòu)造方面的優(yōu)勢相結(jié)合,可以開發(fā)出交互性強且復(fù)雜度高的虛擬系統(tǒng)。</p><p> 2.2 VRML與JAVA</p><p&g
48、t; Java是由Sun公司開發(fā)的新一代面向?qū)ο?object-oriented)的編程語言,Java是一種簡單的、面向?qū)ο蟮?、分布式的、解釋性的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能優(yōu)異的、多線程的動態(tài)語言,由于具有這些特點,使得它已經(jīng)成為跨平臺應(yīng)用軟件開發(fā)的一種規(guī)范,在世界范圍內(nèi)廣泛流行。</p><p> Java語言是一種解釋性的語言,但不是直接對源代碼進行解釋,用Java開發(fā)出來的源程序還需要
49、進行初步的編譯,源代碼以字符方式存放在*.java格式文件中,源代碼經(jīng)過Java編譯器(Java.exe)編譯后生成與機器無關(guān)的一個字節(jié)代碼(byte-code),存放在*.class的文件中,該字節(jié)代碼進入本地系統(tǒng)或互聯(lián)網(wǎng)上的Web站點。字節(jié)代碼也不能在操作系統(tǒng)之上直接運行,首先要經(jīng)過字節(jié)代碼檢驗器檢驗,符合要求之后,字節(jié)代碼裝載器將字節(jié)代碼連同所需的類庫一起裝入系統(tǒng),由解釋器把Java的字節(jié)碼翻譯成本機代碼,然后再執(zhí)行,這種層次結(jié)構(gòu)
50、保證了Java程序的可移植性。</p><p> 由于Java程序是運行在Java虛擬機環(huán)境中的,它不依賴于特定操作系統(tǒng),</p><p> 所以編程人員只需一次性開發(fā)一個“通用”的最終軟件即可在多個平臺環(huán)境中使</p><p> 用,這將大大加快軟件產(chǎn)品的開發(fā)。</p><p> 2.2.1設(shè)置VRML Java執(zhí)行環(huán)境</
51、p><p> Java提供了三個與VRML有關(guān)的package:vrml、vrml.node、vrml.field, 這些包中類的方法被用來支持虛擬場景實體與Java程序之間的相互作用,Java還為VRML的各種數(shù)據(jù)結(jié)構(gòu)提供了相應(yīng)的類封裝。在安裝VRML瀏覽器時會自動安裝VRML Java類。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類執(zhí)行環(huán)境的方法是:</p><p> (
53、1)將以上Java Package的缺省路徑加到環(huán)境變量CLASSPATH中。</p><p> ?。?)下載vrml97.jar軟件包后將其拷貝到j(luò)dk安裝目錄下的jre\lib\ext目錄。</p><p> 使用 Java EAI 運行的時候會報錯:java.1ang.NoclassDefFoundError,這是因為Cortona VRML Client瀏覽器對Java程序支持
54、不夠,應(yīng)該是用微軟的Java虛擬機,解決的辦法是:打開IE瀏覽器的【工具】|【Internet選項】|【高級】,對Microsoft VM進行如下設(shè)置:</p><p> 啟用Java JIT編譯器(需要重新啟動) (no)</p><p> 啟用Java記錄(yes)</p><p> 啟用Java控制臺(需要重新啟動) (yes)</p>&
55、lt;p> 2.2.2Script節(jié)點和Java腳本程序之間的數(shù)據(jù)通信</p><p> 在Script節(jié)點和Java程序代碼之間有兩種通信關(guān)聯(lián)方式:第一種方式是通過事件從Script節(jié)點傳遞數(shù)據(jù)到Java程序中去請求處理;另一種方式則是將Java程序處理后的結(jié)果數(shù)據(jù)返回到VRML場景中,從而動態(tài)的改變場景。</p><p> EventIn ge
56、t()方法傳入數(shù)據(jù)進行處理</p><p> EventOutset()方法傳出數(shù)據(jù)處理結(jié)果</p><p> 圖2.3 VRML與Java的數(shù)據(jù)通信</p><p> ?。?)從Script節(jié)點傳遞數(shù)據(jù)到Java腳本程序</p><p> 對Java程序而言,必須有一個Script節(jié)點的eventIn入事件來激發(fā)它才能夠執(zhí)行,否則,
57、Java程序一般不會自動執(zhí)行,這就要求從Script節(jié)點傳遞數(shù)據(jù)到Java程序中去,以激發(fā)它的執(zhí)行。假定有一個以DEF語句命名的Example的VRML Script節(jié)點,Example節(jié)點的url域指向一個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é)碼文件是通過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類包</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> //場景初始化,獲取相關(guān)的域?qū)ο?、入事件對象和出事件對象的引?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> 在場景加載腳本的時候,瀏覽器根據(jù)Script節(jié)點url域指定的位置進行尋找,url指定的腳本程序位置既可以使用相對路徑,也可以使用絕對路徑,還可能是一個URL列表,即存在多個class文件,但瀏覽器只是按照列表的優(yōu)先順序執(zhí)行第一個能夠被執(zhí)行的文件,即被傳遞的數(shù)據(jù)只能有一個Java程序,可是對于一個Java程序,可以有多個eventIn入事件接口,即可從多方面接收不同的數(shù)據(jù)。當Script節(jié)點有多個eventIn入
63、事件時,processEvent(Event e)方法將換成processEvents(int count Event events[])方法,count是入事件的個數(shù)。其語法定義為:</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> 被瀏覽器加載的腳本程序必須是公共類,而Java語言規(guī)定,公共類必須在和它同名的文件中,所以該腳本程序的類名必須和文件名相同,且必須是vrml.node.Script的子類。</p><p> VRML的Script節(jié)點中由用戶自定義的接口域都可以被Java腳本程序讀寫,所有的VRML數(shù)據(jù)類型都有一個相應(yīng)的Java數(shù)據(jù)類型與之匹配。主要的數(shù)據(jù)類型對應(yīng)關(guān)系如下表所示:<
66、/p><p> 瀏覽器成功加載Java腳本程序之后,當一個事件經(jīng)過ROUTE語句傳遞到Script節(jié)點時,就會自動調(diào)用腳本對象的processEvent(Event e)方法進行處理。因為processEvent(Event e)方法是所有入事件的公共輸入點,所以如果有多個eventIn入事件,為了得到關(guān)于事件到達的具體信息,事件類有以下方法:</p><p> public String
67、 getName():返回一個字符串類型值,表示Script節(jié)點eventIn入事件的名字。</p><p> public ConstField getValue():返回一個封裝了入事件值的常量域?qū)ο?,它被貼到域類的只讀實例中,目的是不允許在獲得該對象的引用實例后,對其值進行修改。</p><p> public double getTimeStamp():返回一個以秒為單位的時間
68、戳,此時事件已經(jīng)在VRML場景中產(chǎn)生,這個調(diào)用能夠決定到達一個特殊節(jié)點的事件順序。</p><p> field getField(String fieldName):返回一個名為fieldName的Script節(jié)點的參考值,這個參考值可被轉(zhuǎn)換成相應(yīng)的Java類。</p><p> field getEventOut(String eventName):VRML的Script節(jié)點的每一
69、個出事件接口都可以被讀寫,通過Script類的getEventOut()方法獲得該出事件的引用,并且能映射到正確的Java類。</p><p> field getEventIn(String eventName):返回給eventIn入事件的一個參值,并且能映射到正確的Java類。</p><p> Java腳本程序接收一個VRML場景中的域值需要兩步:第一步是在Java程序中得到一
70、個參考值,并把它映射到VRML場景的對應(yīng)域中,即一個域類的子類的實例對象被引用,它依賴于訪問的域的類型;第二步就是讀取那個引用的實例的值。</p><p> ?。?)從Java腳本程序傳遞數(shù)據(jù)到Script節(jié)點</p><p> VRML虛擬場景的域值被讀入Java腳本程序進行處理以后,需要將其結(jié)果寫回到Script節(jié)點中。為了達到這個目的,需要調(diào)用setValue()、setlValu
71、e()、addValue()或insertValue()方法設(shè)置Script節(jié)點出事件的值,改變后的值將存儲在域?qū)ο笾?,并產(chǎn)生一個發(fā)向Script節(jié)點的入事件,它對VRML虛擬場景的影響由相關(guān)的路由來確定。</p><p> ?。?)在Java腳本程序中直接讀寫VRML節(jié)點(Node)的字段</p><p> 要用Java腳本程序改變VRML場景,有兩種方法:第一種方法是通過Script
72、節(jié)點中的eventIn字段將數(shù)據(jù)傳入Java腳本程序中,經(jīng)過Java腳本程序處理后將數(shù)據(jù)傳回Script節(jié)點,最后用ROUTE語句將處理后的Script節(jié)點的eventOut字段的值傳遞到想要影響的VIGIL節(jié)點中去;第二種方法是通過Java腳本程序直接讀寫VRML節(jié)點的字段,利用VRML中的SFNode類來完成。SFNode是作為節(jié)點指針的一個字段類型,一個SFNode字段可以指向VRML虛擬場景中的任意一個節(jié)點。若Java腳本程序能
73、夠直接讀寫一個VRML節(jié)點,那么該節(jié)點的任何一個暴露域、入事件或出事件都可以通過在Java腳本程序中調(diào)用該節(jié)點對象的 getExposedField()、 getEventIn(string eventInName)或getEventOut(string eventOutName)方法進行訪問。類Node還包括getType()和getBrowser()方法,其中g(shù)etType()方法用于返回一個VRML節(jié)點的類型,如Transform
74、或Shape等,getBrowser()用</p><p> 2.2.3 JavaScript概述</p><p> JavaScript是一種基于對象的腳本語言。JavaScript繼承了Java語言的面向?qū)ο蟆⒖缙脚_等多項特點,它被認為是為了快速、簡單地編程而出現(xiàn)的微型Java語言。</p><p> JavaScript在HTML頁面中以語句形式出現(xiàn),
75、并且可以執(zhí)行相應(yīng)的操作。它是Netscape公司為了擴充Netscape Navigator瀏覽器功能而開發(fā)的一種可以嵌入在Web主頁中的編程語言。早期稱之為LiveScript,后來為了利用Java的功能同時借用它的流行性,把它改名為JavaScript。它是一種腳本語占,它的標識符形式上與C,C++,Pascal和Delphi十分類似。目前Netscape Navigator 2.0及其更高版本和Internet Explorer
76、3.0及更高版本瀏覽器均支持JavaScript語言。</p><p> 2.2.4 VRML與JavaScript</p><p> 鑒于JavaScript在網(wǎng)頁設(shè)計中成功的應(yīng)用并成為主導(dǎo)編程語言,VRML也將JavaScfipt作為內(nèi)嵌編程語言的候選之一,大部分VRML瀏覽器都支持JavaScfipt編寫的腳本程序。</p><p> VRML與Jav
77、aScript的結(jié)合主要體現(xiàn)在VRML的Script腳本節(jié)點上。由于VRML本身不具備與外部交互的功能,無法完成分支、循環(huán)、轉(zhuǎn)折等程序設(shè)計的基本特征,所以必須和其他語言結(jié)合才能構(gòu)造出具備交互功能的三維場景。因此在語占中定義了Script節(jié)點,在該節(jié)點中,可以使用JavaScript代碼,從而實現(xiàn)普通程序的轉(zhuǎn)折、循環(huán)等功能,擴展VRML語言的功能。</p><p> Script節(jié)點的動作是由JavaScript
78、腳本來實現(xiàn)。由于Script節(jié)點只能按照預(yù)定的規(guī)則來改變場景,無法滿足更為復(fù)雜的交互操作,VRML提供了EAI(外部程序接口)來實現(xiàn)外部應(yīng)用程序與VRML場景的實時交互。</p><p> ?。?)通過Script節(jié)點擴展VRML場景</p><p> VRML中的Sensor節(jié)點只具有最基本的交互能力,由于缺乏普通程序設(shè)計語占的分支、循環(huán)、轉(zhuǎn)移等的基本特征,VRML無法構(gòu)建一個完整的應(yīng)
79、用系統(tǒng)。在實際應(yīng)用系統(tǒng)的設(shè)計中,通常會通過Script節(jié)點的Java類來實現(xiàn)這些復(fù)雜的功能。在節(jié)點接受事件時,對應(yīng)的Java類將產(chǎn)生一系列動作。通過與普通節(jié)點、Script節(jié)點、Sensor節(jié)點和事件路由的協(xié)作來構(gòu)建事件體系。</p><p> 通過Script節(jié)點可以定義和改變場景內(nèi)對象的外觀和行為。當Script初始化時通過EventOut出事件將事件和節(jié)點從VRML傳遞至Java程序,而通過EventIn
80、入事件可以命令從Java程序傳遞至VRML場景中。Event事件在VRML場景中被檢測后到傳遞給Java程序,再由Java程序作出響應(yīng)。本身不包含動作的Script節(jié)點通過程序腳本來實現(xiàn)其動作。</p><p> 簡要說來Java與VRML的結(jié)合就是:</p><p> A.事件通過EventIn傳給Script節(jié)點中的腳本;</p><p><b>
81、 B.腳本處理;</b></p><p> C.將結(jié)果通過EventOut傳回Script節(jié)點。</p><p> ?。?)利用EAI擴展VRML場景</p><p> Java和VRML間的雙向動態(tài)溝通由EAI提供。Java程序通過EAI界面取得3D場景中物體的信息,由EAI控制場景中的物體。</p><p> EAI是
82、一種創(chuàng)作接口,介于VRML世界和外部環(huán)境之間。用戶瀏覽VRML作品時,在成為瀏覽者的同時也成為了一名參與者,可以根據(jù)自己的意識去改變看到的世界。EAI定義了一套針對瀏覽器的類,外部環(huán)境通過這些類訪問當前的VRML世界,實現(xiàn)VRML世界內(nèi)部場景的外部控制和修改。</p><p> 在VRML事件模型中,一個節(jié)點的EventOut事件可通過Route被傳遞至另一節(jié)點的EventIn。當某個節(jié)點產(chǎn)生一個EventOu
83、t事件時,與之相關(guān)聯(lián)的EventIn事件將會收到并處理信息。在VRML事件模型的基礎(chǔ)上,EAI實現(xiàn)了三種對場景的訪問類型:訪問節(jié)點;發(fā)送EventIn事件給節(jié)點;讀取節(jié)點的EventOut事件。</p><p> 2.3虛擬場景漫游系統(tǒng)關(guān)鍵技術(shù)</p><p> 漫游系統(tǒng)是一個具有逼真的視覺、聽覺、觸覺的特定的虛擬環(huán)境。這是一個真實空間或假想空間的實時仿真空間,用戶通過必要的交互設(shè)備
84、實現(xiàn)以自然的方式在虛擬空間中觀察,漫游,產(chǎn)生身臨其境的感覺。漫游系統(tǒng)的關(guān)鍵技術(shù)包含建筑場景的建模、繪制、碰撞檢測等方面。</p><p> 2.3.1建筑場景建模技術(shù)</p><p><b> ?。?)幾何建模技術(shù)</b></p><p> 幾何建模技術(shù)利用現(xiàn)有的三維造型軟件,如3DsMax,通過設(shè)計者對虛擬環(huán)境和對象進行建模,是構(gòu)造三維
85、虛擬場景的傳統(tǒng)方法。在設(shè)計過程中,用戶可以直觀地觀察物體的具體形狀。</p><p> 優(yōu)點:模型構(gòu)建精確,可操作,方便用戶和虛擬對象進行交互。</p><p> 缺點:過程繁瑣,工作量大;擴展性差,改動困難:場景復(fù)雜度及逼真度受硬件條件影響,硬件要求較高。</p><p><b> ?。?)物理建模技術(shù)</b></p>&l
86、t;p> 物理建模是對虛擬對象的重量、質(zhì)量、硬度、外部紋理、形狀變化等特征的一種建模。物理特性的結(jié)合使得三維幾何模型更具真實感。在虛擬現(xiàn)實系統(tǒng)的建模中,物理建模層次較高,需要將計算機圖形學(xué)與物理學(xué)結(jié)合起來,在力的作用下,體現(xiàn)出重量、軟硬度、表面變化等物理屬性剛。</p><p><b> ?。?)圖像建模技術(shù)</b></p><p> 圖像建模技術(shù)是通過預(yù)先
87、處理好的圖像,來實時地生成不同視點的場景畫面。采用圖像建模技術(shù)的的好處是圖形繪制速度忽略了場景復(fù)雜度,只與所要產(chǎn)生的畫面的分辨率相關(guān)。圖片來源限制少,可以是預(yù)先存儲的好圖像,計算機生成的圖像或者實拍的照片。對計算機硬件要求不高,個人計算機上即可實現(xiàn)復(fù)雜場景的實時繪制。缺點是對于不存在的場景難以獲取圖像,二維對象的交互方面限制較大,甚至無法交互。</p><p> 基于圖像的虛擬現(xiàn)實建模技術(shù)有著十分廣泛的應(yīng)用前景
88、,對于逼真度要求高的自然環(huán)境,建模難度大的模型場景尤為適用。常見應(yīng)用于建筑物的展示、飛機駕駛的模擬、交互式游戲、虛擬展館及虛擬景觀的導(dǎo)游等領(lǐng)域。</p><p> 2.3.2場景繪制技術(shù)</p><p> 基于圖形繪制面向景物的幾何模型,基于圖形的三維繪制技術(shù)的基礎(chǔ)數(shù)據(jù)是矢量幾何數(shù)據(jù),經(jīng)過三角剖分,用一定數(shù)量的三角面擬合景物幾何體。使用頂點數(shù)組的數(shù)據(jù)結(jié)構(gòu)描述所擬合的幾何體的描述如下:
89、</p><p> Typedef struct{</p><p> GLfloat u,v; //紋理坐標</p><p> GLfloat nx,ny,nz; //法向矢量</p><p> GLfloat x,y,z; //頂點坐標</p><p><b> }VERTEX
90、;</b></p><p> 該頂點數(shù)組中每一個元素表示一個頂點,(u,v)表示該頂點的紋理坐標,(nx,ny,nz)表示該頂點的法向量值,(x,y,z)是頂點坐標。</p><p> 三個頂點構(gòu)成一個三角面,通過如下數(shù)據(jù)結(jié)構(gòu)進行描述:</p><p> Typedef struct{</p><p> GLuint p0
91、,pl,p2; //頂點序列索引</p><p> }TRIANGLE;</p><p> 該結(jié)構(gòu)中存放的是三個頂點的索引值p0、p1、p2,而不是用來構(gòu)成這個三角面頂點坐標。</p><p> 通過若干個三角面可以擬合任意的幾何體,并加入相應(yīng)的紋理數(shù)據(jù)。其數(shù)據(jù)結(jié)描述如下:</p><p> Typedefstruct{</p
92、><p> Int NumTriangles; //角形數(shù)量</p><p> TRIANGLE*TrianglelndexList; //三角形陣列索引</p><p> Char texturename; //紋理名稱</p><p> GLuint textureID;
93、 //紋理ID</p><p> }GEOMETRY;</p><p> 2.3.3虛擬場景優(yōu)化技術(shù)</p><p> 為同時滿足虛擬場景的真實感和提高瀏覽速度,需要對虛擬場景模型進行優(yōu)化。</p><p> (1)場景模型的優(yōu)化</p><p> 和CAD場景的建立有很大的區(qū)別,虛擬現(xiàn)實的實時
94、性要求決定虛擬場景的建立強調(diào)模型簡單化。當場景的真實性要求和系統(tǒng)響應(yīng)速度發(fā)生沖突時,在確保視覺感官上達到基本真實的前提條件下,需要損失部分真實性。常見的方法是采用簡單框架取代復(fù)雜模型,通過貼圖的方式彌補視覺效果的不足,保證一定的真實性。所用貼圖可以使用繪畫軟件進行手工繪制獲得,或?qū)ㄖ锏母饔^察面進行拍攝獲得,通過掃描手段生成相關(guān)材質(zhì)的貼圖。</p><p> 使用繪畫軟件進行手工繪制貼圖的方法將顏色位數(shù)限定在
95、256以內(nèi),采用這種方法生成的貼圖壓縮比較大,文件較小,便于網(wǎng)絡(luò)傳輸,能較好地滿足實時性的要求。第二種方法相對視覺效果較好,但文件壓縮比小,生成的場景文件較大,在網(wǎng)絡(luò)傳輸速度和實時性方面不如前者。在畫面質(zhì)量和存儲文件大小允許的范圍內(nèi),貼圖規(guī)格通常采用320*240像素、分辨率72dpi,經(jīng)過最高壓縮比的JPEG格式壓縮后文件大小約為20K字節(jié)。對于部分大型場景而言,建筑密度大,數(shù)據(jù)量高,為了提高渲染效率和漫游速度,可以對場景進行分割,將
96、大型場景分割成若干小塊分別進行處理,完成之后組合成整個系統(tǒng)。</p><p> ?。?)層次細節(jié)技術(shù)和多細節(jié)層次模型</p><p> 層次細節(jié)LOD技術(shù)通過一組有著不同細節(jié)復(fù)雜度等級的實體模型來描述對象,在仿真過程中根據(jù)設(shè)計者要求在這些LOD模型間進行切替,實時改變場景的復(fù)雜度,是控制場景復(fù)雜度的一種非常有效方法。</p><p> 三角面片是傳統(tǒng)圖形系統(tǒng)中最
97、通用的繪圖元語。幾何模型包含的三角形數(shù)量越多,圖像質(zhì)量就越高,繪制速度也就越慢,對于部分過于復(fù)雜的場景不能實時渲染,LOD的應(yīng)用可以較好地解決這個問題。其基本思想是:對場景中的對象,采用不同的細節(jié)描述方法??紤]人類肉眼的細節(jié)分辨能力,選取的細節(jié)等級模型根據(jù)視點變化而變化,如果物體距離視點較遠,或者個體較小,渲染時就可以用一個可以表現(xiàn)其主要輪廓的粗略LOD模型;如果物體距離視點較近,或者個體較大,渲染時就采用較精細的LOD模型。</
98、p><p> 目前虛擬環(huán)境中涉及的場景復(fù)雜度越來越高,為場景對象提供不同的LOD描述可以有效地控制場景復(fù)雜度,加速畫面繪制速度。在虛擬現(xiàn)實、快速繪制復(fù)雜三維場景、飛行模擬和3D動畫等領(lǐng)域已經(jīng)開始廣泛應(yīng)用LOD技術(shù)。現(xiàn)在,建立不同層次細節(jié)的模型和相鄰層次模型之間形成光滑的視覺過渡是LOD的研究的主要方向。</p><p><b> ?。?)實例引用</b></p&g
99、t;<p> 所謂實例引用是指在多個造型中引用同一個實例。如果我們將構(gòu)成造型的節(jié)點稱為子節(jié)點,而若干個造型的集合稱為父節(jié)點。實際使用過程中,子節(jié)點數(shù)據(jù)存放于內(nèi)存中,父節(jié)點通過變換三維坐標產(chǎn)生新的物體,父節(jié)點中僅需存儲用于定義物體的變換參數(shù)。父節(jié)點生成的物體,將隨著子節(jié)點中數(shù)據(jù)的變化而發(fā)生改變。采用實例引用技術(shù)可有效降低系統(tǒng)內(nèi)存的耗費,節(jié)約系統(tǒng)資源,在虛擬漫游系統(tǒng)中應(yīng)用廣泛。</p><p><
100、;b> (4)碰撞檢測技術(shù)</b></p><p> 要使用戶以更自然、更真實的方式與三維場景中的虛擬對象進行交互,碰撞檢測是很重要的環(huán)節(jié)。若系統(tǒng)忽略碰撞檢測,一個對象碰到另一個對象的時候就會發(fā)生穿墻而過這種在現(xiàn)實生活中不合理的現(xiàn)象。虛擬場景漫游系統(tǒng)中動、靜態(tài)對象之間交互的基礎(chǔ)就是碰撞檢測,在構(gòu)造系統(tǒng)的時候,需要實時準確地判斷虛擬場景中的對象間是否發(fā)了碰撞。</p><p
101、> 碰撞問題涉及碰撞檢測和碰撞響應(yīng)兩個部分。按運動對象所處空間劃分,碰撞檢測可分為二維平面和三維空間的碰撞檢測。相較而言,由于三維物體的構(gòu)造比較復(fù)雜,其碰撞檢測算法相應(yīng)更困難一些。</p><p> 采用包裹著物體對象的包圍盒(bounding boxes)是進行碰撞檢測的一個常見方法。包圍盒可以理解為包裹虛擬對象所需最小的長方體,其個線段與空間坐標軸平行?;舅悸肥鞘褂煤唵蔚陌鼑腥玳L方體,將復(fù)雜的幾
102、何對象圍起來,進行碰撞檢測時,先檢測二者的包圍盒是否有交集。若檢測結(jié)果不相交,則說明二者沒有產(chǎn)生碰撞,否則需要對而者作進一步的檢測。通過這種方式可以快速排除不相交物體,從而達到加速運算的目的。</p><p> 雖然采用包圍盒算法可以實現(xiàn)快速碰撞檢測,但在虛擬漫游系統(tǒng)的實際應(yīng)用中,僅靠包圍盒進行碰撞檢測就想做到自然的交互還是遠遠不夠的?;诎鼑械呐鲎矙z測并不十分精確,包圍盒僅僅是物體邊界的一個粗略表示,兩個物
103、體的包圍盒相交并不代表這兩個物體一定相交。為了解決這個問題,還應(yīng)采用若干個多邊形輔助表示包圍盒,此時虛擬對象的邊界就由一組多邊形來表示,從而實行進一步的精確的碰撞檢測。在判斷兩個物體是否相交時,先判斷粗略包圍盒是否相交,確定相交之后再判斷兩個物體的多邊形集是否相交。</p><p> 3系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 運用三維建模技術(shù)在計算機中創(chuàng)建一個逼真的現(xiàn)實校園場景的虛擬世界
104、是構(gòu)建虛擬校園的主要工作之一。心理學(xué)家研究表明:人們通過視覺系統(tǒng)獲得的外界信息約占全部信息的83%,我們構(gòu)建的虛擬校園的逼真程度決定了其沉浸感,因此虛擬校園模型的構(gòu)建在整個虛擬校園系統(tǒng)中的地位非常重要。選擇合適的建模工具和三維模型渲染技術(shù)將有助于提高虛擬現(xiàn)實場景中模型的逼真程度。</p><p><b> 3.1系統(tǒng)設(shè)計</b></p><p> 天空與地面的建
105、模較為簡單,主要是用VRML自帶的Background節(jié)點來實現(xiàn),實現(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> 對于外形輪廓規(guī)則(如長方體)的建筑物,可以將事先拍攝好的該建筑的各個立面的照片作為對比圖,提高場景讀入的
108、速率的效果。但是相對的,逼真感將會比真實的三維模型建筑降低。而對于復(fù)雜的不規(guī)則建筑則要進行具體的建模,但要注意的是盡量在保證可視性的情</p><p> 況下降低模型的精度。</p><p> 具體到校園建模,采用的方法是,對標志性的建筑進行精確建模。</p><p> 模型的建造流程如下圖3.1所示:</p><p> 圖3.1模型
109、建造流程</p><p><b> 具體步驟如下:</b></p><p> ?。?)在3D MAX進行粗略建模:主要是根據(jù)圖紙建出建筑的大體輪廓,</p><p> ?。?)細化模型:該步驟圭要是將模型進行細致處理,在保持文件大小前提下光滑表面,調(diào)整部分節(jié)點,加入建筑細節(jié),使其更加接近真實。</p><p> (3
110、)簡化處理:該步驟主要是刪減最終模型中不必要的部分降低模型的精度,使最總文件盡量小。生成最終效果如圖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è)計</p><p> 本漫游系統(tǒng)是用來實現(xiàn)校園區(qū)域場景的漫游,通過本漫游系統(tǒng)將校園的VRML場景漫游鏈接到網(wǎng)絡(luò)上,實現(xiàn)用戶可以足不出戶,在網(wǎng)絡(luò)上了解校園布局與校園景觀。為了符合網(wǎng)絡(luò)虛擬世界交互性和沉浸感的要求,同時結(jié)合校園觀賞的需要,設(shè)計目標如下:</p><p> ?。?)用戶可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于arcgis構(gòu)建三維校園-畢業(yè)論文
- 畢業(yè)論文---校園三維建模
- 三維校園的開發(fā)與設(shè)計即全景校園虛擬漫游技術(shù)的實現(xiàn)畢業(yè)論文設(shè)計
- 三維設(shè)計畢業(yè)論文
- 基于VRML的虛擬三維倉庫管理系統(tǒng)研究.pdf
- 基于VRML的虛擬三維網(wǎng)頁技術(shù)應(yīng)用研究.pdf
- 基于VRML虛擬校園網(wǎng)設(shè)計.pdf
- 基于三維掃描的古廟虛擬漫游系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)論文
- 三維虛擬校園的設(shè)計與實現(xiàn).pdf
- 基于VRML的虛擬校園系統(tǒng).pdf
- 基于VRML的三維迷宮導(dǎo)航.pdf
- 衣夾的三維造型設(shè)計-畢業(yè)論文
- 基于VRML的三維虛擬場景與二維地圖互響應(yīng)研究.pdf
- 基于web的三維虛擬漫游系統(tǒng)——樓體模塊,校園場景,會議室,多媒體教室---畢業(yè)論文
- 基于VRML的虛擬現(xiàn)實中三維建模技術(shù)的研究.pdf
- 基于GIS的三維虛擬校園的設(shè)計與實現(xiàn).pdf
- 基于proe的豆?jié){機三維設(shè)計畢業(yè)論文
- 三維動畫畢業(yè)論文
- 畢業(yè)設(shè)計基于3dsmax虛擬校園三維動畫設(shè)計與制作
- 畢業(yè)設(shè)計三維校園虛擬現(xiàn)實平臺的設(shè)計與實現(xiàn)
評論
0/150
提交評論