![虛擬現(xiàn)實(shí)與VRML-VRML編程_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/94e62f5a-5852-4280-9869-b7ed983c9270/94e62f5a-5852-4280-9869-b7ed983c92701.gif)
![虛擬現(xiàn)實(shí)與VRML-VRML編程_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/94e62f5a-5852-4280-9869-b7ed983c9270/94e62f5a-5852-4280-9869-b7ed983c92702.gif)
![虛擬現(xiàn)實(shí)與VRML-VRML編程_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/94e62f5a-5852-4280-9869-b7ed983c9270/94e62f5a-5852-4280-9869-b7ed983c92703.gif)
![虛擬現(xiàn)實(shí)與VRML-VRML編程_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/94e62f5a-5852-4280-9869-b7ed983c9270/94e62f5a-5852-4280-9869-b7ed983c92704.gif)
![虛擬現(xiàn)實(shí)與VRML-VRML編程_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/94e62f5a-5852-4280-9869-b7ed983c9270/94e62f5a-5852-4280-9869-b7ed983c92705.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一一VRML是什么是什么 二二VRML的歷史的歷史 三三VRML設(shè)計(jì)理念設(shè)計(jì)理念 四四VRML語言概念語言概念 五五VRML文件處理過程文件處理過程 六六VRML的應(yīng)用軟件的應(yīng)用軟件 七七VRML的解決問題的解決問題 八八VRML的未來的未來 九九VRML使用使用例子例子 3.共享虛擬世界 : VRML最早的動(dòng)機(jī)之一就是能 夠在一個(gè)虛擬空間中工作和交談,這個(gè)空間就 是虛擬世界(Cyberspace)。通過VRML 97, 已經(jīng)可以部分地實(shí)現(xiàn)這一構(gòu)想。 4.基于Internet : 與以往的3D應(yīng)用不同,VRML規(guī) 范考慮的第一件事就是通過Internet共享3D實(shí)體 和場(chǎng)景。實(shí)際上,VRML規(guī)
2、范本身就是通過 Internet探討、研究和發(fā)布的。 日 期主 要 內(nèi) 容 1994 5月第1次 Web會(huì)議 開始使用VRML用語 6月開始VRML Mailing List Mark Pesce 等 10月 第2次 Web會(huì)議 發(fā)布VRML草案 11月 發(fā)布VRML 1.0草案 1995 4月發(fā)布VRML瀏覽器 WebSpace TGS,SGI 5月發(fā)布VRML 1.0規(guī)約 8月第1次 VRML Architecture Group 會(huì)議 12月 發(fā)布VRML 1.1規(guī)約 日 期主 要 內(nèi) 容 1996 4月Moving World 提案 VRML 2.0規(guī)約 8月發(fā)布VRML 2.0規(guī)約
3、12月 組成VRML協(xié)會(huì)(參與35個(gè)公司),跟 VAG統(tǒng)合 199712月 VRML 2.0規(guī)約代替于國(guó)際標(biāo)準(zhǔn)VRML97 199812月 VRML協(xié)會(huì)改稱于Web3D協(xié)會(huì) 1999 2月VRML的開發(fā)版本命名于X3D 11月 發(fā)布VRML200 x-X3D 草案規(guī)約 1.平臺(tái)獨(dú)立性 (Platform Independence) 2.擴(kuò)充性 (Extensibility) 3.能運(yùn)作于低頻寬的網(wǎng)絡(luò)上(Ability to work well over low bandwidth connections) 同時(shí),VRML在制定上與HTML有所區(qū)別, 不被視為HTML的延伸,因?yàn)閮烧卟徽撛?資料
4、形式或網(wǎng)絡(luò)需求上都有所不同。規(guī) 格制定時(shí)避免了將VRML視為HTML的延 伸,以免限制了VRML未來的發(fā)展 。 1.坐標(biāo)系統(tǒng)坐標(biāo)系統(tǒng) :VRML采用的是卡氏右手立 體坐標(biāo)系統(tǒng)(Cartesian Right-Handed dimensional System),測(cè)量長(zhǎng)度和距離的 基本單位是公尺,而測(cè)量角度的基本單 位是弧度。 2.節(jié)點(diǎn)節(jié)點(diǎn)(Nodes) : VRML以節(jié)點(diǎn)為基礎(chǔ),每個(gè)節(jié) 點(diǎn)都具有以下四項(xiàng)特性 。 a) 節(jié)點(diǎn)種類 : 如Box、Cone、Cylinder 等一 共有60種節(jié)點(diǎn) 。 b) 域(Fields) : 節(jié)點(diǎn)可以有零或多個(gè)域值。 c) 節(jié)點(diǎn)名稱 : VRML中的節(jié)點(diǎn)不一定要
5、指定 名稱但若指定名稱則必須唯一。 d) 子節(jié)點(diǎn) : 節(jié)點(diǎn)與節(jié)點(diǎn)之間可以有階層式的 從屬關(guān)系。具有子節(jié)點(diǎn)的節(jié)點(diǎn)稱為父 節(jié)點(diǎn);父節(jié)點(diǎn)可以有零或多個(gè)子節(jié)點(diǎn)。 3.節(jié)點(diǎn)的分類節(jié)點(diǎn)的分類 a)形狀節(jié)點(diǎn)形狀節(jié)點(diǎn) (Shape Nodes) : 指的是幾何特 性,如圓錐體、立方體、球體等;包含 顯示ASCII字串的節(jié)點(diǎn)。 b)屬性節(jié)點(diǎn)屬性節(jié)點(diǎn) (Property nodes) : 屬性節(jié)點(diǎn)會(huì) 影響節(jié)點(diǎn)呈現(xiàn)的方式,又細(xì)分為幾何屬 性與外觀/矩陣及轉(zhuǎn)換/攝影機(jī)/光源四類。 c)群節(jié)點(diǎn)群節(jié)點(diǎn) (Group Nodes) : 集合其他節(jié)點(diǎn), 以單一節(jié)點(diǎn)的形式呈現(xiàn)。 4.域域 (Fields) 所含域的數(shù)目分為兩類
6、 : 只含單一的單值 與含多個(gè)值的多值,分別以“SF” 與 “MF”為名稱的開頭。 SF開頭的數(shù)值只是 一個(gè)單一的數(shù)或數(shù)組,而MF開頭的是一個(gè) 數(shù)或數(shù)組的列表。各有11個(gè)和7個(gè)種類。 例)SFBool : 開關(guān)值 SFFloat/MFFloat : 浮點(diǎn)值 SFString/MFString : 字符串 1。VRML瀏覽器的處理模型瀏覽器的處理模型 2。用。用VRML瀏覽器要求瀏覽器要求VRML文件的過程文件的過程 3。用。用VRML瀏覽器接受瀏覽器接受VRML文件的過程文件的過程 P 1. VRML 瀏覽器瀏覽器 目前共有四家公司開發(fā)出支援VRML 2.0的 工具,分別是 : 1)Cosmo
7、 Software 的 Cosmo Player。 2)InterVista Software Inc. WorldView。 3)Paper Inc. 的 WebFx -后來被 Netscape 公司合并以后改稱Live3D。 4)Temlplate Graphics Software Inc.的 WebSpace 2. VRML 編輯器編輯器 目前有較多的編輯器,其中下面的四個(gè) 編輯器使用率比較高 : 1)Cosmo Software 的 Cosmo World。 2)ParallelGraphics 的 Internet Space Builder (ISB)。 3)Superscape
8、 的 3D Webmaster。 4)Ligos的 V-Realm Builder(VRB)。 1.首先是VRML的文件格式。目前VRML采用 的是文本格式,文件都很大,而且在很多時(shí) 候包含大量的空余空間和無用信息。解決辦 法是為VRML文件定義一種二進(jìn)制文件格式。 這將提供幾個(gè)優(yōu)點(diǎn): l減少文件長(zhǎng)度 : 一個(gè)好的壓縮軟件能把VRML 壓縮到原來的40%。 l一定的保密性 : 由于每個(gè)人都可以看到文本文 件的內(nèi)容,當(dāng)采用二進(jìn)制文件格式時(shí),別人 在沒有得到允許的情況下不能拷貝VRML場(chǎng) 景內(nèi)容的。 2.第二個(gè)問題是要解決編碼時(shí)的便利性。用已 存在的編輯器作出較簡(jiǎn)單的物體時(shí)比較容易, 但要做比較復(fù)
9、雜的形狀的物體時(shí)不容易。有 這樣的情況時(shí),一般先用3DMax等軟件做 完以后,轉(zhuǎn)換成VRML文件。 l減少調(diào)用時(shí)間 : VRML在第一次加載瀏覽器時(shí) 必須被解釋以使瀏覽器能夠構(gòu)造一個(gè)內(nèi)部場(chǎng) 景結(jié)構(gòu)。二進(jìn)制文件更容易被高效解釋,因 為它包含瀏覽器構(gòu)造內(nèi)部結(jié)構(gòu)的最基本的數(shù) 據(jù)。 lVRML繼續(xù)發(fā)展:增加新的節(jié)點(diǎn)與功能,如用于 數(shù)字化地球的GeoVRML,分布式計(jì)算的DIS等。 lX3D : 基于XML的VRMLNG,已有提案與演示。 lMPEG4 : 用于數(shù)字化影視的新技術(shù),基于VRML。 lVRML2002 : X3D與VRML溶合的產(chǎn)物,并希望 在2002年通過ISO認(rèn)證。 1. 基本造型的例
10、子 (1.25k,92行) 2. 加動(dòng)作的例子 (9.40k,369行) 3. 加觸點(diǎn)的列子 (3.39k,81行) 4. 換視點(diǎn)的例子 (13.6k,742行) 5. 一間屋子 (376k,13891行) 6. 茶葉博物館(515k,19508行) lVRML文件包括:文件包括: - 文件頭文件頭 /描述版本和編碼集描述版本和編碼集 - 注釋注釋 - 節(jié)點(diǎn)(節(jié)點(diǎn)(Nodes)/描述場(chǎng)景內(nèi)容描述場(chǎng)景內(nèi)容 - 域域 (Fields)/ 節(jié)點(diǎn)的屬性節(jié)點(diǎn)的屬性 - 值值 (Values)/屬性值屬性值 - 等等等等. . . l其中每一部分其中每一部分均區(qū)分大小寫。均區(qū)分大小寫。 #VRML V2.
11、0 utf8 # A Cylinder Shape appearance Appearance material Material geometry Cylinder height 2.0 radius 1.5 l幾何形狀的建立幾何形狀的建立 l顏色、紋理、光源及環(huán)境顏色、紋理、光源及環(huán)境 l視點(diǎn)、導(dǎo)航及用戶感知視點(diǎn)、導(dǎo)航及用戶感知 l動(dòng)畫動(dòng)畫 l聲音聲音 l程序腳本程序腳本 l基本體素的建立基本體素的建立 - Shape節(jié)點(diǎn)節(jié)點(diǎn) - 形狀幾何由形狀幾何由幾何節(jié)點(diǎn)描述,如幾何節(jié)點(diǎn)描述,如Box, Cone, Cylinder等。等。 l復(fù)雜形狀的建立復(fù)雜形狀的建立 - 動(dòng)物、植物、地表、機(jī)械零
12、件,等等動(dòng)物、植物、地表、機(jī)械零件,等等. - 可借助點(diǎn)、線、面來構(gòu)建可借助點(diǎn)、線、面來構(gòu)建 - 對(duì)于地表等,甚至有特定的節(jié)點(diǎn)描述,如對(duì)于地表等,甚至有特定的節(jié)點(diǎn)描述,如 ElevationGrid節(jié)點(diǎn)節(jié)點(diǎn) lPointSet Shape appearance Appearance . . . geometry PointSet coord Coordinate point . . . lIndexedLineSet Shape appearance Appearance . . . geometry IndexedLineSet coord Coordinate point . . . co
13、ordIndex . . . lIndexedFaceSet Shape appearance Appearance . . . geometry IndexedFaceSet coord Coordinate . . . coordIndex . . . solid TRUE ccw TRUE convex TRUE lElevationGrid Shape appearance Appearance . . . geometry ElevationGrid xDimension 3 zDimension 2 xSpacing 1.0 zSpacing 1.0 height . . . lE
14、xtrusion - 條形、管形、環(huán)形條形、管形、環(huán)形 - 可由可由 Extrusion Extrusion 節(jié)點(diǎn)建立節(jié)點(diǎn)建立 l語法語法 Shape appearance Appearance . . . geometry Extrusion crossSection . . . spine . . . endCap TRUE beginCap TRUE solid TRUE ccw TRUE convex TRUE scale . . . orientation . . . l將簡(jiǎn)單形狀組合為復(fù)雜形狀將簡(jiǎn)單形狀組合為復(fù)雜形狀 l組合節(jié)點(diǎn):組合節(jié)點(diǎn): - Group . . . - Swit
15、ch . . . - Transform . . . - Billboard . . . - Anchor . . . - Inline . . . #VRML V2.0 utf8 # A Cylinder Shape appearance Appearance material Material geometry Cylinder height 2.0 radius 1.5 lAppearance 節(jié)點(diǎn)描述外觀節(jié)點(diǎn)描述外觀 - 可通過可通過Material 節(jié)點(diǎn)控制材料屬性,如顏節(jié)點(diǎn)控制材料屬性,如顏 色、高色、高 光、透明度等。光、透明度等。 - 可通過可通過紋理映射為表面增添細(xì)節(jié)。紋理映
16、射為表面增添細(xì)節(jié)。 ImageTexture, PixelTexture, MovieTexture lMaterial節(jié)點(diǎn)示例節(jié)點(diǎn)示例 Shape appearance Appearance material Material diffuseColor 0.8 0.8 0.8 emissiveColor 0.1 0.1 0.1 transparency 0.0 specularColor 0.71 0.70 0.56 shininess 0.16 ambientIntensity 0.4 geometry . . . lImageTexture節(jié)點(diǎn)示例節(jié)點(diǎn)示例 Shape appearanc
17、e Appearance material Material texture ImageTexture url wood.jpg geometry . . . lImageTexture節(jié)點(diǎn)示例節(jié)點(diǎn)示例 Shape appearance Appearance material Material texture PixelTexture image 2 1 3 /width, height, bytes 0 xFFFF00 0 xFF0000 /pixel, pixel values geometry . . . lMovieTexture節(jié)點(diǎn)示例節(jié)點(diǎn)示例 Shape appearance Ap
18、pearance material Material texture MovieTexture url movie.mpg loop TRUE speed 1.0 startTime 0.0 stopTime 0.0 geometry . . . l紋理圖象在紋理坐標(biāo)系中表示,可紋理圖象在紋理坐標(biāo)系中表示,可 用用 texCoordIndex綁定到表面上。綁定到表面上。 Shape appearance Appearance . . . geometry IndexedFaceSet coord Coordinate . . . coordIndex . . . texCoord Textur
19、eCoordinate . . . texCoordIndex . . . l紋理變換可以改變紋理在表面上的紋理變換可以改變紋理在表面上的 位置、方向及大小位置、方向及大小 Shape appearance Appearance material Material . . . texture ImageTexture . . . textureTransform TextureTransform translation 0.0 0.0 rotation 0.0 scale 3.0 3.0 l缺省狀態(tài)下,有一個(gè)光源(在觀察缺省狀態(tài)下,有一個(gè)光源(在觀察 者頭部的位置)。者頭部的位置)。為達(dá)到更好
20、的視為達(dá)到更好的視 覺效果,可加入多個(gè)光源。覺效果,可加入多個(gè)光源。 l光源類型:光源類型: point, directional, spot - 共同屬性:共同屬性:開開/關(guān)關(guān), 強(qiáng)度強(qiáng)度, 顏色顏色 - Point and spot lights:位置:位置,半徑半徑, 衰減衰減 - Directional and spot lights:方向:方向 l光源不能投射陰影光源不能投射陰影。 l背景的作用:豐富場(chǎng)景背景的作用:豐富場(chǎng)景 l背景包括:背景包括: - 天空與地面天空與地面 - 全景包圍盒全景包圍盒 l利用背景的好處:與使用模型相比,利用背景的好處:與使用模型相比, 生成速度快生成速
21、度快 l背景背景示例示例 Background skyColor 0.0 0.2 0.7, 0.0 0.5 1.0, 1.0 1.0 1.0 skyAngle 1.309, 1.571 groundColor 0.1 0.10 0.0, 0.4 0.25 0.2, 0.6 0.60 0.6, groundAngle 1.309, 1.571 frontUrl mountns.png backUrl mountns.png leftUrl mountns.png rightUrl mountns.png” # no top or bottom images l霧的作用:霧的作用: - 增強(qiáng)真實(shí)感
22、增強(qiáng)真實(shí)感 - 減少開發(fā)時(shí)間和繪制時(shí)間(遮擋用戶視線)減少開發(fā)時(shí)間和繪制時(shí)間(遮擋用戶視線) l霧有顏色、類型和可視范圍霧有顏色、類型和可視范圍 l示例代碼示例代碼 Fog color 1.0 1.0 1.0 fogType LINEAR visibilityRange 10.0 l霧效果示例霧效果示例 l視點(diǎn)(視點(diǎn)(viewpoint節(jié)點(diǎn)節(jié)點(diǎn))包括:包括: - position,orientation,fieldOfView l缺省視點(diǎn)位置:缺省視點(diǎn)位置: (0.0, 0.0, 10.0) l視點(diǎn)可改變視點(diǎn)可改變 l文件中的第一個(gè)文件中的第一個(gè)viewpoint即是即是entry point
23、. l示例代碼示例代碼 Viewpoint position 0.0 0.0 10.0 orientation 0.0 0.0 1.0 0.0 fieldOfView 0.785 description Entry View” / description for viewpoint menu l不同的場(chǎng)景需要不同的導(dǎo)航方式不同的場(chǎng)景需要不同的導(dǎo)航方式 - 室內(nèi)、地形、室內(nèi)、地形、CAD模型模型, . l用戶可指定導(dǎo)航方式:用戶可指定導(dǎo)航方式:walk, fly, examine, none, any l用戶可描述觀察者的大小及運(yùn)動(dòng)速度用戶可描述觀察者的大小及運(yùn)動(dòng)速度 l示例代碼示例代碼 Nav
24、igationInfo type WALK, ANY avatarSize 0.25, 1.6, 0.75 speed 1.0 headlight TRUE l用戶感知是通過三個(gè)傳感器用戶感知是通過三個(gè)傳感器 (Sensor)節(jié)點(diǎn)節(jié)點(diǎn)來實(shí)現(xiàn)的:來實(shí)現(xiàn)的: - VisibilitySensor :觀察者能否看到某一區(qū)域:觀察者能否看到某一區(qū)域 - ProximitySensor: 觀察者是否在某一區(qū)域內(nèi)觀察者是否在某一區(qū)域內(nèi) - Collision: 觀察者是否與物體碰撞觀察者是否與物體碰撞 l主要作用:觸發(fā)動(dòng)畫主要作用:觸發(fā)動(dòng)畫 l特點(diǎn):隨時(shí)間改變特點(diǎn):隨時(shí)間改變 - 位置、方向、顏色等位置、
25、方向、顏色等 - VRML中:不斷改變節(jié)點(diǎn)的某個(gè)域的值中:不斷改變節(jié)點(diǎn)的某個(gè)域的值 l兩個(gè)基本的控制條件:兩個(gè)基本的控制條件: - 何時(shí)開始、何時(shí)結(jié)束何時(shí)開始、何時(shí)結(jié)束 - 變化速度變化速度 lVRML是一種解釋性語言,它既無是一種解釋性語言,它既無 局部變量也無全局變量用于在局部變量也無全局變量用于在 VRML的世界間傳遞信息。的世界間傳遞信息。 lVRML采用事件采用事件(Events)作為兩個(gè)作為兩個(gè) 不同節(jié)點(diǎn)間傳輸數(shù)據(jù)的方式。不同節(jié)點(diǎn)間傳輸數(shù)據(jù)的方式。 lVRML的節(jié)點(diǎn)中,有的能生成事件的節(jié)點(diǎn)中,有的能生成事件 (eventOut),有的可接收事件),有的可接收事件 (eventIn)
26、,有的既能生成也能接收,有的既能生成也能接收 (exposedField)。 l第一個(gè)事件一般由外部影響觸發(fā)。第一個(gè)事件一般由外部影響觸發(fā)。 外部影響的形式不一(如時(shí)間、用外部影響的形式不一(如時(shí)間、用 戶在物體上點(diǎn)擊等)。而一旦初始戶在物體上點(diǎn)擊等)。而一旦初始 事件產(chǎn)生后,它將觸發(fā)其他事件,事件產(chǎn)生后,它將觸發(fā)其他事件, 產(chǎn)生多米諾效應(yīng)。產(chǎn)生多米諾效應(yīng)。 l要設(shè)置動(dòng)畫,我們需要:要設(shè)置動(dòng)畫,我們需要: - 發(fā)送事件的節(jié)點(diǎn)發(fā)送事件的節(jié)點(diǎn) - 接收事件的節(jié)點(diǎn)接收事件的節(jié)點(diǎn) - 連接上述兩個(gè)節(jié)點(diǎn)的路由(連接上述兩個(gè)節(jié)點(diǎn)的路由(route) l輸出示例輸出示例 - OrientationInter
27、polator 節(jié)點(diǎn)的節(jié)點(diǎn)的 eventOut: - value_changed 輸出旋轉(zhuǎn)參數(shù)值輸出旋轉(zhuǎn)參數(shù)值 - PositionInterpolator節(jié)點(diǎn)的節(jié)點(diǎn)的 eventOut: - value_changed輸出位置輸出位置 (平移平移)參數(shù)參數(shù) 值值 - TimeSensor節(jié)點(diǎn)的節(jié)點(diǎn)的eventOut: - time 輸出時(shí)間值輸出時(shí)間值 l輸入示例輸入示例 - Transform 節(jié)點(diǎn)的節(jié)點(diǎn)的 eventIn: - set_translation - set_rotation - set_scale - Material 節(jié)點(diǎn)的節(jié)點(diǎn)的 eventIn: - set_diffu
28、seColor - set_emissiveColor - set_transparency l路由路由(ROUTE)將兩個(gè)節(jié)點(diǎn)連接起將兩個(gè)節(jié)點(diǎn)連接起 來:來: - 輸出節(jié)點(diǎn)的名稱和輸出節(jié)點(diǎn)的名稱和eventOut域的名稱域的名稱 - 輸入節(jié)點(diǎn)的名稱和輸入節(jié)點(diǎn)的名稱和eventIn域的名稱域的名稱 l示例示例 - ROUTE MySender.rotation_changed TO MyReceiver.set_rotation lROUTE 和和TO 必須大寫必須大寫 lDemo l聲音將使得虛擬世界更加精彩聲音將使得虛擬世界更加精彩 - 聲音可由觀察者觸發(fā),如按門鈴聲音可由觀察者觸發(fā),如按
29、門鈴 - 聲音也可以是連續(xù)的背景音樂聲音也可以是連續(xù)的背景音樂 l聲音有兩個(gè)組成部分:聲音有兩個(gè)組成部分: - 聲源:聲源:提供聲音信號(hào),由提供聲音信號(hào),由AudioClip節(jié)點(diǎn)指定節(jié)點(diǎn)指定 - 發(fā)射器發(fā)射器(emitter): 將信號(hào)轉(zhuǎn)換成虛擬聲音,主要設(shè)置將信號(hào)轉(zhuǎn)換成虛擬聲音,主要設(shè)置 一些與聲音位置等有關(guān)的參數(shù),在一些與聲音位置等有關(guān)的參數(shù),在Sound 節(jié)點(diǎn)中指節(jié)點(diǎn)中指 定定 lSound節(jié)點(diǎn)示例節(jié)點(diǎn)示例 Sound source AudioClip url myfile.wav pitch 1.0 startTime 0.0 stopTime 0.0 loop FALSE locat
30、ion 0.0 0.0 0.0 direction 0.0 0.0 1.0 intensity 1.0 spatialize TRUE priority 0.0 minFront 1.0 minBack 1.0 maxFront 10.0 maxBack 10.0 l聲音的觸發(fā)聲音的觸發(fā) Group children Shape . . . DEF C4 TouchSensor Sound source DEF PitchC4 AudioClip url tone1.wav pitch 1.0 maxFront 100.0 maxBack 100.0 ROUTE C4.touchTime TO
31、 PitchC4.set_startTime l真正意義上的交互和復(fù)雜的動(dòng)畫是真正意義上的交互和復(fù)雜的動(dòng)畫是 由程序腳本來實(shí)現(xiàn)的。由程序腳本來實(shí)現(xiàn)的。 l程序腳本的代碼可用程序腳本的代碼可用 JavaScript, Java, VRMLscript或其他語言來或其他語言來 寫寫 - JavaScript 易于學(xué)習(xí)易于學(xué)習(xí) - Java功能更強(qiáng)功能更強(qiáng) - VRMLscript=JavaScript l用戶能否與用戶能否與VRML世界進(jìn)行流暢的世界進(jìn)行流暢的 交互,至少取決與以下兩個(gè)因素:交互,至少取決與以下兩個(gè)因素: - 文件的下載速度:文件大小文件的下載速度:文件大小 - 繪制速度:場(chǎng)景描述
32、的復(fù)雜程度繪制速度:場(chǎng)景描述的復(fù)雜程度 l兩個(gè)問題:兩個(gè)問題: - 如何有效地減少文件大?。咳绾斡行У販p少文件大小? - 如何有效地描述場(chǎng)景?如何有效地描述場(chǎng)景? l減少文件大小減少文件大小 - 消除空白間隔消除空白間隔 - 浮點(diǎn)數(shù)取整浮點(diǎn)數(shù)取整 - 使用壓縮文件使用壓縮文件 - 盡可能使用基本體素盡可能使用基本體素 - 盡可能使用已有的法向量盡可能使用已有的法向量 - 對(duì)于反復(fù)使用的物體,可先對(duì)其命名對(duì)于反復(fù)使用的物體,可先對(duì)其命名(DEF), 然然 后再重復(fù)使用后再重復(fù)使用(USE)。 - . l有效地描述場(chǎng)景有效地描述場(chǎng)景 - 用盡可能少的多邊形描述物體用盡可能少的多邊形描述物體 - 在
33、可能的情況下,多利用紋理在可能的情況下,多利用紋理 - 合理地利用光源合理地利用光源 - 將將LOD節(jié)點(diǎn)和節(jié)點(diǎn)和Inline節(jié)點(diǎn)有機(jī)結(jié)合使用節(jié)點(diǎn)有機(jī)結(jié)合使用 - 依據(jù)物體的空間位置將其合理地放置在文件中依據(jù)物體的空間位置將其合理地放置在文件中 - 借助腳本隱藏多余的物體或動(dòng)畫借助腳本隱藏多余的物體或動(dòng)畫 - 有節(jié)制地使用碰撞檢測(cè)有節(jié)制地使用碰撞檢測(cè) - . l一致、可預(yù)測(cè)的事件模型一致、可預(yù)測(cè)的事件模型 l更一般、一致的更一般、一致的SAISAI l支持鍵盤設(shè)備支持鍵盤設(shè)備 l支持高精度數(shù)據(jù)支持高精度數(shù)據(jù) l支持支持NURBS NURBS 、支持曲面、支持曲面 l支持與支持與VRMLVRML內(nèi)
34、嵌的內(nèi)嵌的webweb頁面的通訊頁面的通訊 l. l采用采用XMLXML編碼編碼(X3D)(X3D)以與以與WebWeb緊密集緊密集 成成 l1999年上半年,年上半年,Web3D Consortium即發(fā)布新聞表達(dá)了建即發(fā)布新聞表達(dá)了建 立立 VRML200X -X3D(簡(jiǎn)稱(簡(jiǎn)稱X3D) 的意圖。的意圖。 l其目的是與其目的是與VRML2.0VRML2.0向下兼容,集向下兼容,集 成成XMLXML以提高其可擴(kuò)充性以提高其可擴(kuò)充性。 lXML(可擴(kuò)展標(biāo)記語言),描述了一類(可擴(kuò)展標(biāo)記語言),描述了一類 稱為稱為XML文件的數(shù)據(jù)對(duì)象,同時(shí)也部分文件的數(shù)據(jù)對(duì)象,同時(shí)也部分 地描述了處理這些數(shù)據(jù)對(duì)
35、象的計(jì)算機(jī)程地描述了處理這些數(shù)據(jù)對(duì)象的計(jì)算機(jī)程 序的動(dòng)作。序的動(dòng)作。 - XML是是SGML針對(duì)特定應(yīng)用領(lǐng)域的一個(gè)子集,或者說是針對(duì)特定應(yīng)用領(lǐng)域的一個(gè)子集,或者說是 SGML的一種受限形式。根據(jù)定義,的一種受限形式。根據(jù)定義,XML文件是合乎規(guī)文件是合乎規(guī) 范范 的的SGML文件。文件。 lXML的設(shè)計(jì)既考慮了實(shí)現(xiàn)的方便性,同的設(shè)計(jì)既考慮了實(shí)現(xiàn)的方便性,同 時(shí)也顧及了與時(shí)也顧及了與SGML和和HTML的互操作的互操作 性。性。 lW3C推薦將推薦將XML用于結(jié)構(gòu)信息交換用于結(jié)構(gòu)信息交換 (structured information exchange),目目 前已得到較為廣泛的應(yīng)用。前已得到較
36、為廣泛的應(yīng)用。 lXML設(shè)計(jì)目標(biāo)設(shè)計(jì)目標(biāo) - XML應(yīng)該可以直接用于因特網(wǎng)應(yīng)該可以直接用于因特網(wǎng)(Internet)。 - XML應(yīng)該支持大量不同的應(yīng)用。應(yīng)該支持大量不同的應(yīng)用。 - XML應(yīng)該與應(yīng)該與SGML兼容。兼容。 - 處理處理XML文件的程序應(yīng)該容易編寫。文件的程序應(yīng)該容易編寫。 - XML中的可選項(xiàng)應(yīng)無條件地保持最少,理想狀況下中的可選項(xiàng)應(yīng)無條件地保持最少,理想狀況下 應(yīng)該為應(yīng)該為0個(gè)。個(gè)。 - XML文件應(yīng)該是人可直接閱讀的,應(yīng)是條理清楚的。文件應(yīng)該是人可直接閱讀的,應(yīng)是條理清楚的。 - XML的設(shè)計(jì)應(yīng)快速完成。的設(shè)計(jì)應(yīng)快速完成。 - XML的設(shè)計(jì)應(yīng)該是形式化的,簡(jiǎn)潔的。的設(shè)計(jì)應(yīng)
37、該是形式化的,簡(jiǎn)潔的。 - XML文件應(yīng)易于創(chuàng)建。文件應(yīng)易于創(chuàng)建。 - XML標(biāo)記的簡(jiǎn)潔性是最后考慮的目標(biāo)。標(biāo)記的簡(jiǎn)潔性是最后考慮的目標(biāo)。 l采用采用XML編碼使得編碼使得VRML有一個(gè)有一個(gè) 堅(jiān)實(shí)的基礎(chǔ)。其優(yōu)點(diǎn)主要有堅(jiān)實(shí)的基礎(chǔ)。其優(yōu)點(diǎn)主要有: - 堅(jiān)實(shí)的國(guó)際化基礎(chǔ)堅(jiān)實(shí)的國(guó)際化基礎(chǔ) (sound basis for internationalization) - 強(qiáng)有力的結(jié)構(gòu)化能力強(qiáng)有力的結(jié)構(gòu)化能力(structuring capability) - 基于基于XML的語法對(duì)于實(shí)現(xiàn)而言是開放的的語法對(duì)于實(shí)現(xiàn)而言是開放的(open to implementation) 該如何瀏覽VRML呢?首先當(dāng)
38、然必須擁有可 以上網(wǎng)的電腦,並且有安裝Microsoft的 Internet Explorer瀏覽器或網(wǎng)景的Netscape瀏 覽器,還要再安裝一個(gè)可以讓瀏覽器具備 瀏覽VRML功能的外掛程式(plug-in)。如此 就可以透過一般的瀏覽器來瀏覽VRML所建 立的虛擬實(shí)境。(以上所述是在PC作業(yè)平臺(tái) 和MS Windows作業(yè)系統(tǒng)的架構(gòu)上,當(dāng)然也 可以使用其它的作業(yè)平臺(tái)和作業(yè)系統(tǒng))。 下表列出了目前常見的VRML瀏覽外掛程式 的名稱、可瀏覽之3D語言和作業(yè)系統(tǒng)與平 臺(tái): 我們來安裝一個(gè)外掛程式的實(shí)例: 產(chǎn)品名稱:Cortona 發(fā)展公司:ParallelGraphics 作業(yè)系統(tǒng):Window
39、s98 程式來源:網(wǎng)路下載、光碟片 1.網(wǎng)路下載: 網(wǎng)址:http:/ 第一步:先透過WWW瀏覽器連到上述網(wǎng)址。 第二步:連上這個(gè)網(wǎng)頁後,點(diǎn)選download這個(gè)項(xiàng) 目。 第三步:在Cortona VRML Client個(gè)標(biāo)題下,點(diǎn)選 或 去下載外掛程式 cortvrml.exe。點(diǎn)選確定後,再選擇儲(chǔ)存位置, 就完成下載動(dòng)作。 2.開始安裝: 第一步:找到之前下載的cortvrml.exe位置 或從本書所附之光碟片尋找此檔。 第二步:點(diǎn)選此檔後開始安裝,只需要選 擇accept接受合約後,繼續(xù)選擇next。 第三步:選擇Typical或Custom的安裝方式, 建議選擇Typical,接著按下
40、next。 第四部:選擇DirectX renderer,再按下 next,接著選擇Finish則安裝完成。 3.安裝是否成功: 第一步:選擇“開始”“程式 集”ParallelGraphics“Cortona VRML ClientView scene of the day。 第二步:這樣一個(gè)VRML瀏覽器,如果有 個(gè)虛擬物件在畫面中,如此就表示安裝 成功。 Cortona VRML瀏覽器的控制功能,左 側(cè)和下側(cè)各有一工具列。 左側(cè)工具列:左側(cè)工具列共有兩組按 鈕,一組為WALK、FLY、STUDY, 另一組為PLAN、PAN、TURN、 ROLL,這兩組只能各選取一個(gè)按鈕, 絀合的功能如下
41、: 按鈕被點(diǎn)選後即會(huì)發(fā)亮,選定方法之後使 用滑鼠的左鍵做拖曳的動(dòng)作,拖曳的越遠(yuǎn) 則轉(zhuǎn)動(dòng)或移動(dòng)的速度越快。 因?yàn)閂RML的檔案格式是一般文字檔,所以 基本上使用任何的純文字編輯器,都可以 編輯VRML的檔案。在這一節(jié)中,介紹筆者 所習(xí)慣使用的VRML編輯器,叫做 VrmlPad它是由ParallelGraphics這家公 司發(fā)行的,而這家公司也就是2-1節(jié)中所介 紹的VRML外掛程式Cortona是同一家。所 以檔案下載的方式和之前相同,也附在本 書的光碟片中。 VrmlPad目前的版本是2.0版,下載的程式和 光碟中所附的程式都是試用版。圖2-6是這 個(gè)VrmlPad的編輯畫面。 左半部的視窗
42、是Scene Tree,可以看出這個(gè) 檔案使用了哪些節(jié)點(diǎn)(Node),含其包含的子 節(jié)點(diǎn)(Child Node);也可以換成Resources和 File List等子視窗。右半部的視窗就是 VRML檔案的程式碼。每當(dāng)你在右邊的視窗 鍵入一個(gè)新的節(jié)點(diǎn)(Node),左半部的視窗 Scene Tree就會(huì)出先一個(gè)相同的節(jié)點(diǎn)(Node) 圖示。 在這個(gè)編輯器中,檔案第一行#VRML V2.0 utf8會(huì)自動(dòng)地寫上。另外它還有一項(xiàng)強(qiáng)大 的功能:就是程式編寫輔助視窗。例如:當(dāng)你 要輸入Shape這個(gè)節(jié)點(diǎn)時(shí),只輸入S時(shí),程 式編寫輔助視窗會(huì)自動(dòng)出現(xiàn),列出所有S開 頭的節(jié)點(diǎn)讓你選擇。如此可以節(jié)省撰寫程 式時(shí)
43、間,也可以降低指令被撰寫錯(cuò)誤的機(jī) 率。所以筆者建議,剛?cè)腴T的讀者使用 VrmlPad來撰寫VRML的程式。 VRML的檔案就和大部分程式語言的 檔案相同,是個(gè)文字?jǐn)⑹?textual description)的檔案。所以可以使用任 何的文字編輯器來撰寫VRML,只要 存檔時(shí),存成file.wrl即可。而.wrl通 常讀成dot world,由副檔名可以感 受到VRML的目的就是去建造一個(gè)世 界(world)。 圖3-1 這個(gè)範(fàn)例是一個(gè)很典型的VRML程式, 包含檔案標(biāo)頭、註解、節(jié)點(diǎn)、欄位等, 透過瀏覽器我們將可以看見程式執(zhí)行 的結(jié)果如圖3-1。將在下列各節(jié)對(duì)這些 構(gòu)成VRML檔案的基本項(xiàng)目做更
44、詳細(xì) 的說明與介紹。 範(fàn)例3-1的第一行 #VRMLV2.0utf8 這就是VRML的檔案標(biāo)頭,在任何VRML程 式的第一行一定要寫上這個(gè)標(biāo)頭。 VRML的檔案標(biāo)頭對(duì)這個(gè)檔案有以下的描述: 它是個(gè)VRML的檔案。 它是使用VRML2.0版的規(guī)格來完成。 檔案是使用國(guó)際UTF-8的字元集合。 在很多語言中,UTF-8字元集合是一 個(gè)標(biāo)準(zhǔn)的字元集合,包含英文。它使 得VRML能夠支援英文字元,例如:A 到Z。只要是能在鍵盤上找到的字元, UTF-8字元集合都包含在內(nèi),所以能 鍵入任何ASCII碼在一個(gè)UTF-8的 VRML檔案中。 UTF的是UCS Transform Format的所寫, 而UC
45、S是Universal Multiple-Octet Coded Character Set。UTF8是由ISO ( International Organization for Standards)的規(guī)範(fàn)ISO/IEC 10646- 1:1993)所提出。 我們看到範(fàn)例3-1的第二行 #Drawthecolumn 這是一個(gè)VRML的檔案註解,註明了這個(gè)程式的目 的是“畫柱子”。相信有寫過程式的人都應(yīng)該知道 註解的目的: 它可以幫助程式設(shè)計(jì)師紀(jì)錄本段程式的意義,以便日後修 正。 它可以幫助程式設(shè)計(jì)師除錯(cuò)(debug)時(shí),先將部分程式轉(zhuǎn)成 註解。 它可以幫助非此程式設(shè)計(jì)者閱讀此程式時(shí),了解程式的
46、目 的。 在VRML的程式中,註解的使用方式就是在每行程 式的開頭加上#,#之後該行的文字便失去了程 式執(zhí)行的功能,變成註解。 Node在本書中翻譯成節(jié)點(diǎn)。節(jié)點(diǎn)(Node)是 VRML檔案中最基本的單位,每個(gè)節(jié)點(diǎn)還包 含子節(jié)點(diǎn)(Child Node)和描述節(jié)點(diǎn)屬性的欄 位(Fields)。 以Shape節(jié)點(diǎn)為例,它是一個(gè)用來形容物件 幾何型狀(Geometry Node,例如:球體、長(zhǎng) 方體、圓柱體)和外觀(Appearance Node,例 如:表面的顏色、透明度、光滑度)的節(jié)點(diǎn)。 由圖3-2可以清楚地看到Shape節(jié)點(diǎn)包 含了許多相關(guān)的節(jié)點(diǎn)(Node和欄位 (Field),所以Shape節(jié)
47、點(diǎn)是一個(gè)非常重 要的節(jié)點(diǎn),將會(huì)在第四章和第五章裡 再詳細(xì)地說明。 以下是範(fàn)例3-1中,所使用的一個(gè)節(jié)點(diǎn)。 geometry Cylinder radius 0.5 height 4.0 由以上可知一個(gè)節(jié)點(diǎn)通常包含: 1.節(jié)點(diǎn)的名稱(例如:Cylinder)。 2.一對(duì)大括號(hào)“。 3.欄位和欄位值(例如:radius 0.5) 所以在日後的各節(jié)中,將會(huì)介紹很多節(jié)點(diǎn) (Node)的語法(Syntax),先看下面Cone節(jié)點(diǎn) 的語法: 其中欄位值,如:SFFloat、SFBoo1等的意義將在3-4 節(jié)中說明。 關(guān)於節(jié)點(diǎn)的分類方法,其實(shí)並沒有一定的 分類方式,但依照規(guī)範(fàn)的節(jié)點(diǎn)種類,可以 分成群節(jié)點(diǎn)(G
48、rouping Nodes)和子節(jié)點(diǎn)(Child Nodes)。 群節(jié)點(diǎn)(Grouping Nodes)可以將其它的節(jié)點(diǎn) 放在這個(gè)群節(jié)點(diǎn)中。例如:在範(fàn)例3-1中, Transform節(jié)點(diǎn)是一個(gè)群節(jié)點(diǎn),它包含了 Shape這個(gè)子節(jié)點(diǎn),Transform節(jié)點(diǎn)可以控制 在其節(jié)點(diǎn)內(nèi)之子節(jié)點(diǎn)的位置、方位和尺寸, 從範(fàn)例3-1中可以了解。 而子節(jié)點(diǎn)(Child Nodes)又該如何定義呢?所 有的節(jié)點(diǎn)都可以視為子節(jié)點(diǎn),當(dāng)然也包括 群節(jié)點(diǎn)。 哪些節(jié)點(diǎn)是群節(jié)點(diǎn)(Grouping Nodes)呢?其實(shí) 並不多只有八個(gè),在第六章將會(huì)介紹所有 的群節(jié)點(diǎn)。由圖3-3可以看出哪些是群節(jié)點(diǎn) (Grouping Nodes
49、)和不是群節(jié)點(diǎn)的子節(jié)點(diǎn) (Child Nodes)。 本書各章的分類,是依照各節(jié)點(diǎn)的特徵性質(zhì)來區(qū)分, 共分成八類,從第四章到第十一章,如表3-1所示。 在這一節(jié)中主要是介紹欄位的語法和欄位 值的型態(tài)。一個(gè)節(jié)點(diǎn)是由欄位和欄位值所 組成,它們是用來描述節(jié)點(diǎn)的屬性。 欄位可以分成兩類:一類是欄位只包含一個(gè) 單獨(dú)的值,開頭的名稱為SF (Single-value fields);另一類則是包含多重的值,開頭名稱 為MF (Multiple-valued fields)。 多重值的欄位值是有順序地寫在中括號(hào) 裡。假如欄位沒有任何值,只需列出中括 號(hào);假如只有一個(gè)值就將中括號(hào)省略。 例如:有一個(gè)欄位值型態(tài)
50、為MFInt32的多重欄 位叫做foo,但它只含一個(gè)欄位值1,有以下 表示方式: foo 1 foo1, foo1 在範(fàn)例3-1中,欄位和欄位值如下 geometry Cylinder radius 0.5 height 4.0 Cylinder節(jié)點(diǎn)的欄位有radius和height, 而欄位值(Field Value)0.5、4.0皆為浮 點(diǎn)數(shù)(Float),欄位值的型態(tài)為SFFloat。 在一個(gè)節(jié)點(diǎn)的標(biāo)準(zhǔn)語法(Syntax)中: 欄位值(Field Value) SFFloat和SFBool所代表的意 義是什麼呢?由以下的介紹,將可以對(duì)於各種不同 欄位值的型態(tài)更加了解。 它是一個(gè)布林值或邏
51、輯值。它的值不是 TRUE就是FALSE。常被使用去開啟或關(guān)閉 一個(gè)節(jié)點(diǎn)的性質(zhì)特徵。例如:Cone這個(gè)節(jié)點(diǎn) 的side和bottom這兩個(gè)欄位,它們的欄位值 就是布林值,用來決定四週或底部是否顯 現(xiàn)。例如: fooBool FALSE fooBool是一個(gè)值為SFBool的欄位,它定義 的布林值為FALSE。一個(gè)值為SFBool的 eventOut事件,它的初始布林值為FALSE。 它總共包含三個(gè)浮點(diǎn)值,分別介於(0,1)之 間,各自所描述的長(zhǎng)紅、綠、藍(lán)(R-G-B), 經(jīng)由三個(gè)不同值的混合可以顯現(xiàn)出不同的 顏色。常被使用在描述一個(gè)幾何外型或光 線的顏色。例如:1.0 0.0 0.0是紅色;0
52、.75 0.75 0.75是灰色。下面有一個(gè)R-G-B三原色混何 參考表(表3-2)。 fooColor 1.0 0.0 0.0 , 0.0 1.0 0.0 , 0.0 0.0 1.0 fooColor是一個(gè)值為MFColor的欄位,它包 含三組主要的顏色,分別為紅、綠、藍(lán)。 一個(gè)值為SFColor的eventOut事件,它的初 始值為(0 0 0)。一個(gè)值為MFColor的 eventOut事件,它的初始值為空的中括號(hào) 。 基本上,所有的色彩皆由紅、綠、藍(lán)三種 顏色混合組成的,稱之為三原色。以下為 一個(gè)三原色混合的參考表: 值是浮點(diǎn)數(shù)。它可以是正值或負(fù)值,可以 有小數(shù)點(diǎn),值分布在(-,+ )
53、,例如:88.75、 -333.111等。 , fooFloat 3.1415926 , 133.5e-5 , 0.00006 fooFloat是一個(gè)欄位值為MFFloat的欄位,它 包含三組浮點(diǎn)數(shù)值。若一個(gè)值為SFFloat的 eventOut事件,它的初始值為0.0。一個(gè)值 為MFFloat的eventOut事件,它的初始值為 空的中括號(hào)。 用來描述數(shù)位圖片的一列值??梢员硎疽?個(gè)物體外觀的表面紋路顏色。 fooImage 其中 為 整數(shù)值;是用十六進(jìn)位法 (hexadecimal)表示。例如: fooImage 1 2 1 0 xFF 0 x00 fooImage是一個(gè)值為SFImage
54、的欄位。 它定義了一個(gè)1個(gè)圖素(pixel)寬和2個(gè) 圖素(Pixels)高的圖片,只含一個(gè)元件 圖片,底部的圖素是白(0 xFF),頂部 的圖素是黑(0 x00)。一個(gè)值為SFImage 的eventOut事件,它的初始值為(0 0 0)。 值是32bit的整數(shù)值。它可以是正值或負(fù)值, 不可以有小數(shù)點(diǎn),例如:123、-963等。值為 SFInt32和MFInt32的欄位和事件,其值可以 用十進(jìn)位或十六進(jìn)位的格式來表示。例如: fooIt32 17 , -0 xE20 , -518820 fooInt32是一個(gè)值為MFInt32的欄位,它包 含了三組整數(shù)值(十進(jìn)位或十六進(jìn)位)。值為 SFInt
55、32的eventOut事件,它的初始值是0。 值為MFInt32的eventOut事件,它的初始值 是空的中括號(hào)。 值為SFNode的欄位就是一個(gè)VRML的節(jié)點(diǎn)。值 為MFNode的欄位可以是零或多個(gè)節(jié)點(diǎn)。例如: fooNode Transform transltin 1 0 0 DEF CUBE BOX USE CUBE USE SOME_OTHER_NODE fooNode是一個(gè)值為MFNode的欄位,它定義了 四組節(jié)點(diǎn)。若一個(gè)值為SFNode的eventOut事件, 它的初始值為NULL。一個(gè)值為MFNode的 eventOut事件,它的初始值是空的中括號(hào)。 它是由四個(gè)浮點(diǎn)值構(gòu)成的欄位值
56、。前三個(gè)值定 義出旋轉(zhuǎn)軸,根據(jù)右手定則(圖3-4);最後一個(gè) 值定義出旋轉(zhuǎn)角度,單位以弧度(radian)表示。 通常被使用在定義一個(gè)物體的方位。例如: fooRotation 0.0 1.0 0.0 3.14159265 fooRotation是個(gè)值為SFRotation的欄位,它表 示對(duì)y軸旋轉(zhuǎn)(180度)的意思。若一個(gè)值為 SFRotation的eventOut事件,它的初始值為(0 1 0)。一個(gè)值為MFRotation的eventOut事件,它 的初始值是空的中括號(hào)。 它的一個(gè)欄位值是由在一對(duì)雙引號(hào)中的字元所 構(gòu)成(string)。它通常被用來表示一些選項(xiàng)的 名字或描述事物。例如:
57、fooStringOne, Two, Three,She is a cute girl fooString是一個(gè)值為MFString的欄位,它包含 了兩組字串。若一個(gè)值為SFString的eventOut 事件,它的初始值為空的雙引號(hào)“”。一個(gè)值 為MFString的eventOut事件,它的初始值是空 的中括號(hào)。 它是一個(gè)浮點(diǎn)值。時(shí)間值是使用真實(shí)世界中的 絕對(duì)時(shí)間,單位是用秒來表示,從某一個(gè)特別 的時(shí)間(西元1970年,1月1日。子夜00:00:00 GMT)開始計(jì)算。通常是被應(yīng)用在動(dòng)畫中,決 定何時(shí)開始或停止。例如: fooTime 0.0 fooTime是一個(gè)值為SFTime的欄位,表示
58、一個(gè) 0.0秒的時(shí)間。一個(gè)值為SFTime的eventOut事件, 它的初始值為-1。一個(gè)值為MFTime的eventOut 事件,它的初始值是空的中括號(hào)。 欄位值是一個(gè)二維的浮點(diǎn)數(shù)向量。由兩個(gè)浮點(diǎn) 數(shù)構(gòu)成一組欄位值。通常被使用來表示一個(gè)2- D的位置。例如: fooVec2f91 44.91, 26 94 fooVec2f是一個(gè)值為MFVec2f的欄位,它包含 兩組向量。一個(gè)值為SFVec2f的eventOut事件, 它的初始值為(0 0)。一個(gè)值為MFVec2f的 eventOut事件,它的初始值是空的中括號(hào)。 欄位值是一個(gè)三維的浮點(diǎn)數(shù)向量。由三個(gè)浮點(diǎn) 數(shù)構(gòu)成一組欄位值。通常被使用來表示一
59、個(gè)3- D的位置。例如: fooVec3f66 0.5 30 ,69 11 22 fooVec2f是一個(gè)值為MFVec2f的欄位,它包含 兩組向量。一個(gè)值為SFVec3f的eventOut事件, 它的初始值為(0 0 0)。一個(gè)值為MFVec3f的 eventOut事件,它的初始值是空的中括號(hào)。 將介紹如何定義一節(jié)點(diǎn)的名字。首先先來想想為什麼 會(huì)有這個(gè)功能呢? 最大的功能就是增加重用性。當(dāng)我們建構(gòu)一棟房子時(shí), 房子一定會(huì)用到很多的柱、樑、窗戶和門等,可以發(fā) 現(xiàn)絕大多數(shù)的柱、樑、窗戶和門的尺寸或外觀是相同 的,只是位置不同,所以一開始要先定義一根標(biāo)準(zhǔn) 柱、一根標(biāo)準(zhǔn)樑、一個(gè)標(biāo)準(zhǔn)窗、一個(gè)標(biāo)準(zhǔn)門,把柱
60、、 樑、窗戶和門都視為單一的物件,而他們的屬性、尺 寸也都設(shè)定在其中。接下來在建構(gòu)這房子時(shí),只要用 組合的方式,將以上定義的各種物件放置於正確的位 置即可。圖3-6是一根標(biāo)準(zhǔn)柱,圖3-7是一個(gè)標(biāo)準(zhǔn)樑, 而圖3-8則是由標(biāo)準(zhǔn)柱和標(biāo)準(zhǔn)樑構(gòu)成的樑柱結(jié)構(gòu)系統(tǒng)。 圖3-6 標(biāo)準(zhǔn)柱 圖3-7 標(biāo)準(zhǔn)樑 DEF node-name node-type. 去定義一個(gè)節(jié)點(diǎn)來當(dāng)作重用案例,要在節(jié)點(diǎn)之前,加 上“DEF”和所要定義的節(jié)點(diǎn)名稱“node-name”。在 VRML的檔案中,可以定義任意個(gè)節(jié)點(diǎn)名稱,但是不 能重複定義相同的名稱在同一個(gè)VRML的檔案中。 node-name可以是任何你覺得方便的字串名稱,有大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版私人二手房購(gòu)房定金支付與房產(chǎn)交易糾紛解決合同2篇
- 冠狀動(dòng)脈瘤樣擴(kuò)張患者的臨床特點(diǎn)及相關(guān)危險(xiǎn)因素分析
- 二零二五年度個(gè)人住房貸款合同編制細(xì)則2篇
- 2025版物業(yè)租賃安全生產(chǎn)安全責(zé)任保險(xiǎn)理賠服務(wù)合同3篇
- 提升財(cái)務(wù)運(yùn)營(yíng)效益的探索與實(shí)踐
- 應(yīng)急指揮系統(tǒng)的建設(shè)與完善
- 民族醫(yī)科護(hù)士工作總結(jié)
- 二零二五年度行政單位內(nèi)部職員服務(wù)合同范本3篇
- 美食行業(yè)烹飪技巧培訓(xùn)回顧
- 塑料行業(yè)塑料工工作總結(jié)
- 2023-2024學(xué)年西安市高二數(shù)學(xué)第一學(xué)期期末考試卷附答案解析
- 【京東倉(cāng)庫(kù)出庫(kù)作業(yè)優(yōu)化設(shè)計(jì)13000字(論文)】
- 監(jiān)獄監(jiān)舍門方案
- 煤礦安全生產(chǎn)方針及法律法規(guī)課件
- 宮頸癌后裝治療護(hù)理查房課件
- 員工內(nèi)部眾籌方案
- 復(fù)變函數(shù)與積分變換期末考試試卷及答案
- 初中班級(jí)成績(jī)分析課件
- 勞務(wù)合同樣本下載
- 聰明格練習(xí)題(初、中級(jí))
- 小批量試制總結(jié)報(bào)告
評(píng)論
0/150
提交評(píng)論