虛擬現(xiàn)實技術(shù)- VRML環(huán)境下圖形系統(tǒng)的設(shè)計_第1頁
虛擬現(xiàn)實技術(shù)- VRML環(huán)境下圖形系統(tǒng)的設(shè)計_第2頁
虛擬現(xiàn)實技術(shù)- VRML環(huán)境下圖形系統(tǒng)的設(shè)計_第3頁
虛擬現(xiàn)實技術(shù)- VRML環(huán)境下圖形系統(tǒng)的設(shè)計_第4頁
虛擬現(xiàn)實技術(shù)- VRML環(huán)境下圖形系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第10章 VRML環(huán)境以下圖形系統(tǒng)的設(shè)計 2022/7/27110.1 虛擬現(xiàn)實簡介 它通過計算機創(chuàng)立一種虛擬環(huán)境(Virtual Environment),通過視覺、聽覺、觸覺、味覺、嗅覺等作用,使用戶產(chǎn)生和現(xiàn)實中一樣的感覺,從而到達身臨其境的感覺,并可實現(xiàn)用戶與該環(huán)境直接進行交互。虛擬現(xiàn)實技術(shù)有3個根本特征:沉浸感,交互感,設(shè)想。 2022/7/27210.2 VRML概述 VRML(Virtual Reality Modeling Language)即虛擬現(xiàn)實建模語言。該語言就是通過創(chuàng)立一個虛擬場景以到達現(xiàn)實中的效果。VRML被廣泛應(yīng)用于Internet上創(chuàng)立虛擬三維空間,利用VRML可

2、以隨意創(chuàng)立任何虛擬的物體,像建筑物、城市、山脈、星體等對象。當(dāng)然也可以在虛擬空間中添加聲音、動畫,使之更加生動,更接近現(xiàn)實。 2022/7/27310.2 VRML概述用cortvrml插件在Microsoft的IE 6.0瀏覽器中可以瀏覽VRML網(wǎng)頁。Walk的瀏覽方式為模擬人在虛擬三維世界中的走動和轉(zhuǎn)向等Fly的瀏覽方式為模擬人在虛擬三維世界中的飛行和轉(zhuǎn)向等 Study的瀏覽方式為在瀏覽者的面前以不同的方向和不同的角度來旋轉(zhuǎn)一個或多個漂浮在空間中的對象 Plan的瀏覽方式為模擬在虛擬三維世界中的一個平面內(nèi)的平移。Pan的瀏覽方式為模擬在三維世界中的垂直的上下或者左右的平移。 2022/7/

3、27410.2 VRML概述Turn的瀏覽方式為改變?yōu)g覽者的視角Roll的瀏覽方式為在虛擬三維世界中的一個垂直平面上實現(xiàn)順時針或者逆時針方向的視角變化。 Goto的瀏覽方式為走近你所要觀察的對象 View試點控制。 Restore視點控制。 2022/7/27510.2 VRML概述在瀏覽器窗口中的任意位置單擊鼠標(biāo)右鍵便會彈出如圖10.2所示的菜單圖10.2 cortvrml的彈出菜單 2022/7/27610.3 VRML根本語法 10.3.1 VRML的通用語法結(jié)構(gòu) VRML文件是要創(chuàng)立的空間的文本性描述,VRML的通用語法由VRML文件來約定。VRML文件對語法有以下幾條約定: 每個VR

4、ML文件都必須以#VRML V2.0 utf8 作為文件頭。 文件中的任何節(jié)點的第一個字母都要大寫 節(jié)點的域都必須位于括號里面。 2022/7/27710.3.2 VRML的根本概念 1. 節(jié)點 節(jié)點用來描述造型和造型的屬性。2. 域和域值 域定義節(jié)點的屬性,域值是對屬性的具體描述。 3. 事件 事件是按照指定的路由從一個節(jié)點發(fā)往另一個節(jié)點的消息。 4. 路由 5. 交互和腳本 2022/7/27810.3.3 VRML空間計量單位 1) 長度單位 長度單位也叫VRML單位,簡稱單位,用來計量造型的尺寸和位置。 2) 角度單位 角度單位是用來計量坐標(biāo)旋轉(zhuǎn)角度的大小的。在VRML中,角度單位通常

5、使用的是弧度制。 2022/7/27910.3.4 VRML的節(jié)點簡介 1. 外形節(jié)點Shape 在創(chuàng)立一個造型時,必須使用Shape節(jié)點,它有兩個域,分別為appearance域和geometry域。Appearance節(jié)點將定義造型外觀的顏色和紋理。geometry域值是一個定義空間造型幾何尺寸大小的造型節(jié)點,它包括Box、Cylinder、Cone、Sphere等根本的幾何節(jié)點 2022/7/271010.3.4 VRML的節(jié)點簡介2. 組節(jié)點Group Group節(jié)點有5個域,分別是children域、bboxCenter域、bboxSize域、addChildren域和removeC

6、hildren域。Group節(jié)點是將根本造型節(jié)點組織在一起,編成一組中的多個節(jié)點將相互交迭,從而創(chuàng)立復(fù)雜的空間造型,編組后的節(jié)點可以作為一個單獨的對象來進行各種操作,包括和其他的對象一起編成一個新的組。 2022/7/271110.3.5 域 域有兩種類型:單值類型和多值類型。單值類型的命名以“SF開頭,只包含單一的值,像一個數(shù)字、一種顏色、一個向量等。多值類型的命名以“MF開頭,包含多個值,像一組數(shù)字的列表、一組顏色的列表。例:SFFloat 和 MFFloat 一個SFFloat域含有一個ANSIC格式的單精度浮點數(shù)。一個MFFLoat域含有零個或多個ANSI C格式的單精度浮點數(shù)。即允許

7、空白,不賦任何值。 2022/7/271210.4 在場景中添加幾何體 10.4.1 Shape節(jié)點對幾何體的封裝Shape節(jié)點對幾何體的封裝是通過geometry域來實現(xiàn)的。即geometry + 幾何體造型節(jié)點。不僅如此,Shape節(jié)點還可以實現(xiàn)對文本造型的封裝。 2022/7/271310.4.2 添加長方體 在場景中添加一個立方體造型要用到Box節(jié)點,Box節(jié)點是創(chuàng)立一個以坐標(biāo)原點為中心的長方體的節(jié)點,有一個域,即size域。size域的域值類型為SFVec3f類型,size域值為長方體的長、寬、高的大小,通過改變長、寬、高的大小可以創(chuàng)立不同的長方體,如果長、寬、高的大小相同,那么該長

8、方體是立方體。 2022/7/271410.4.3 添加球體 在場景中添加球體造型要用到Sphere節(jié)點, Sphere節(jié)點創(chuàng)立的是一個以坐標(biāo)原點為中心的球體,有一個域,即radius域。域值類型為SFFloat類型,球體的半徑由域radius的域值確定,radius的默認(rèn)域值為1.0個單位。 2022/7/271510.4.4 添加圓柱體 在場景中添加圓柱體造型要用到Cylinder節(jié)點,Cylinder節(jié)點創(chuàng)立的是一個以坐標(biāo)原點為中心,由底面(bottom),頂面(top)和側(cè)面(side)三個局部組成的圓柱體。該節(jié)點有5個域,即radius域、height域、bottom域、top域和s

9、ide域。 2022/7/271610.4.5 添加圓錐體 先看一個在三維空間場景中添加圓錐體的實例。 圖10.6 在場景中添加的圓錐體造型 2022/7/271710.4.5 添加圓錐體在場景中添加圓錐體造型要用到Cone節(jié)點,Cone節(jié)點創(chuàng)立的是一個以空間坐標(biāo)系y軸為對稱軸,原點為中心的圓錐體。該圓錐體由兩局部組成:底面(bottom)和錐面(side)。該節(jié)點有4個域,即bottomRadius域、height域、side域和bottom域 2022/7/271810.4.6 添加文本 在場景中添加文本是通過使用Shape節(jié)點實現(xiàn)的,將Text節(jié)點作為geometry域的域值,下面看一個

10、在場景中添加文本造型的例子。 圖10.7 在場景中添加文本 2022/7/271910.5 幾何體的幾何變換 10.5.1 理解VRML空間 坐標(biāo)系是VRML場景創(chuàng)立的一個很重要的依據(jù),這里的坐標(biāo)系由x、y、z三個坐標(biāo)方向構(gòu)成,其方向可以用右手規(guī)那么來確定。有了父坐標(biāo)系的嵌套,就可以在任何地方創(chuàng)立自己想要的造型,這些造型通過坐標(biāo)系的嵌套,組合在一起構(gòu)成各種很復(fù)雜的VRML場景,從而形成多姿多彩的三維世界。 2022/7/272010.5.1 理解VRML空間1. 平移坐標(biāo)系的理解平移坐標(biāo)系是通過對Transform節(jié)點的translation域的使用創(chuàng)立的一個新的子坐標(biāo)系,每次平移通過Tran

11、sform節(jié)點的translation域指定平移距離,平移距離是指新的子坐標(biāo)系原點和父坐標(biāo)系原點的分別在x、y、z三個坐標(biāo)軸的距離(這里的距離是以VRML單位度量的)。新的子坐標(biāo)系確定后,要在新坐標(biāo)系創(chuàng)立的造型的位置也就被確定了。2022/7/272110.5.1 理解VRML空間2. 旋轉(zhuǎn)坐標(biāo)系的理解 (1) 確定旋轉(zhuǎn)坐標(biāo)系的兩個因素。一是旋轉(zhuǎn)軸。二是旋轉(zhuǎn)角度。 (2) 坐標(biāo)系的旋轉(zhuǎn)方向。3. 縮放坐標(biāo)系的理解縮放坐標(biāo)系是通過對Transform節(jié)點的scale和scaleOrientation域的使用而創(chuàng)立的新的子坐標(biāo)系。 2022/7/272210.5.3 平移幾何體 幾何體的平移實際上

12、是坐標(biāo)系的平移,而將幾何體平移實際上就是通過使用節(jié)點Transform的translation域,相對原坐標(biāo)系形成新的子坐標(biāo)系,再在子坐標(biāo)系中創(chuàng)立所要平移的幾何體就到達了我們平移幾何體的目的。 2022/7/272310.5.4 旋轉(zhuǎn)幾何體 旋轉(zhuǎn)幾何體是通過使用節(jié)點Transform的rotation和center域,指定旋轉(zhuǎn)軸或者旋轉(zhuǎn)點、旋轉(zhuǎn)角度,形成新的旋轉(zhuǎn)子坐標(biāo)系,再在子坐標(biāo)系中創(chuàng)立需要的造型。1. 繞軸的旋轉(zhuǎn)Transform節(jié)點的rotation域設(shè)定父子坐標(biāo)系原點的連線作為旋轉(zhuǎn)軸,同時還設(shè)定了旋轉(zhuǎn)的角度 。 2022/7/272410.5.4 旋轉(zhuǎn)幾何體2. 圍繞中心的旋轉(zhuǎn) 有時候

13、單一地圍繞某個軸旋轉(zhuǎn)來創(chuàng)立造型并不很方便,通過使用Transform節(jié)點的center域,就可以使幾何體圍繞某個中心點旋轉(zhuǎn),這種旋轉(zhuǎn)有時會比圍繞軸旋轉(zhuǎn)更自然靈活。 2022/7/272510.5.5 縮放幾何體 1. 在不同方向上的縮放 通過對Transform節(jié)點的scale和scaleOrientation域的使用,可以沿任何方向縮放需要的造型 2. 圍繞中心點的縮放 使用Transform的center域可以指定一個縮放中心,使要創(chuàng)立的造型根據(jù)需要相對該點來進行縮放,像旋轉(zhuǎn)中心一樣,圍繞點的縮放有時會對造型的創(chuàng)立提供比在不同方向上的縮放更大的方便。 2022/7/272610.6 真實感

14、場景創(chuàng)立 10.6.1 光照 在VRML中添加并控制光照是通過PointLight節(jié)點、DirectionalLight節(jié)點和SpotLight節(jié)點來實現(xiàn)的。VRML通過對物體外表的明暗分布的計算,使物體同環(huán)境產(chǎn)生明暗比照,這樣,物體看起來就像是在發(fā)光。 2022/7/272710.6.1 光照1. PointLight節(jié)點 PointLight節(jié)點生成一個點光源,即生成的光線是向四周發(fā)散的。2. DirectionalLight節(jié)點 DirectionalLight節(jié)點生成一個平行光源,即生成的光線是平行向前發(fā)射的。3. SpotLight節(jié)點 SpotLight節(jié)點創(chuàng)立了一個錐光源,即從一

15、個光點位置呈錐狀向一個特定的方向照射。 2022/7/272810.6.2 紋理 大多數(shù)的VRML瀏覽器所支持的外表材質(zhì)的幾種圖像格式為JPEG、MPEG、GIF和PNG,被稱為VRML材質(zhì)貼圖文件的標(biāo)準(zhǔn)格式。在VRML中,用于指定材質(zhì)外表貼圖的節(jié)點主要有ImageTexture(圖片紋理節(jié)點)、MovieTexture(影象紋理節(jié)點)、PixeTexture(像素紋理節(jié)點)。下面分別介紹這三種節(jié)點。 2022/7/272910.6.2 紋理1. ImageTexture節(jié)點 ImageTexture是圖像紋理節(jié)點,指定了紋理映射屬性,通常作為Appearance節(jié)點的texture域的域值。

16、2022/7/273010.6.2 紋理例10.17,我們?yōu)檎襟w貼上了黃山松的圖片,如圖10.16所示。 圖10.16 外表貼上紋理圖的正方體 2022/7/273110.6.2 紋理2. MovieTexture節(jié)點Pixe Texture節(jié)點是像素紋理節(jié)點,用來指定紋理映射屬性。從圖10.17中可以看出不同像素局部顏色的灰度程度的差異。 圖10.17 不同灰度紋理 2022/7/2732 霧化 VRML允許在空間添加大氣效果,通過設(shè)定大氣的狀態(tài)增加場景的朦朧效果。如果場景中按遠近有一系列的物體,空間距離只能影響它們在瀏覽器中的大小而不能表達現(xiàn)實中因遠近引起的清晰度的差異。如果在場景中添加

17、霧化效果,這一差異就能得到表達,從而使造型顯得更加逼真。 2022/7/2733 霧化下面給出霧化的一個例子,結(jié)果如圖10.18所示。 圖10.18 參加霧化效果的場景圖 2022/7/273410.7 一個VRML虛擬漫游系統(tǒng)的設(shè)計 10.7.1 物體模型的設(shè)計1. Collision節(jié)點 Collision組節(jié)點觀測觀察者和組中的造型發(fā)生碰撞。2022/7/273510.7.1 物體模型的設(shè)計2. 椅子的設(shè)計如下:先設(shè)計座位局部,為一Box節(jié)點 設(shè)計椅子的腿和靠背都是長方體,代碼和座位局部類似,就不詳細列出了設(shè)計椅子的兩個扶手,扶手是由三個長方體組合成的,所采用的節(jié)點為Box。 圖10.1

18、9 椅子的模型 2022/7/273610.7.1 物體模型的設(shè)計3. 桌子桌面為一長方體,采用Box節(jié)點,首先是外側(cè)的擋板,為一長方體,柜子的擋板和手柄都是簡單的長方體,代碼和外側(cè)擋板類似。設(shè)計好之后就可以通過坐標(biāo)的變換把右腿也構(gòu)造出來,從而構(gòu)造出桌子 圖10.20 桌子的模型 2022/7/273710.7.1 物體模型的設(shè)計4. 顯示器顯示器的模型如圖10.21所示。 圖10.21 顯示器的模型 2022/7/273810.7.2 漫游場景的最終生成 要將物體模型組合起來,需要將模型的文件都包含到場景文件中,這需要用到Inline節(jié)點。漫游場景的示意圖如圖10.23所示。 2022/7/273910.7.2 漫游場景的最終生成首先要設(shè)計瀏覽者的視角,使得虛擬人出現(xiàn)在房間內(nèi)的位置。為了能將整個場景都照亮,需要在房間中設(shè)置光源,這里采用點光源。生成房子的地板為一長方體,并給它貼上圖片紋理。 天花板也為一矩形,墻壁也為簡單的矩形,不使用貼圖 。 2022/7/2740

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論