版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、山東理工大學(xué)虛擬現(xiàn)實(shí)實(shí)驗(yàn)室 虛擬現(xiàn)實(shí)與VRML,虛擬現(xiàn)實(shí)與VRML,第四章 VRML編程,第一節(jié)概述,VRML是什么 VRML的歷史 VRML設(shè)計(jì)理念 VRML語(yǔ)言概念 VRML文件處理過(guò)程 VRML的應(yīng)用軟件 VRML的解決問(wèn)題 VRML的未來(lái) VRML使用例子,一。VRML是什么,開(kāi)放式標(biāo)準(zhǔn) : VRML的最新國(guó)際標(biāo)準(zhǔn)是ISO/IEC-14772-1:1997。能夠被ISO接受這一點(diǎn)就足以說(shuō)明該標(biāo)準(zhǔn)所處的地位和現(xiàn)實(shí)意義,現(xiàn)在,ISO已把它作為未來(lái)標(biāo)準(zhǔn)發(fā)展的重要模型加以開(kāi)發(fā)和研究。 3D多媒體 : 在成為國(guó)際標(biāo)準(zhǔn)以前,VRML已經(jīng)是 CAD、動(dòng)畫(huà)制作以及3D建模軟件等領(lǐng)域的數(shù)據(jù)共享 和數(shù)據(jù)發(fā)
2、布的事實(shí)上的標(biāo)準(zhǔn) - 這些軟件有的直接 輸出VRML格式的文檔,有的提供實(shí)用工具或插件實(shí)現(xiàn)這種變換。,VRML是一種用于在Internet上構(gòu)筑3D多媒體和共享虛擬世界的開(kāi)放式語(yǔ)言標(biāo)準(zhǔn)。它具有以下4個(gè)要點(diǎn):,共享虛擬世界 : VRML最早的動(dòng)機(jī)之一就是能夠在一個(gè)虛擬空間中工作和交談,這個(gè)空間就是虛擬世界(Cyberspace)。通過(guò)VRML 97,已經(jīng)可以部分地實(shí)現(xiàn)這一構(gòu)想。 基于Internet : 與以往的3D應(yīng)用不同,VRML規(guī)范考慮的第一件事就是通過(guò)Internet共享3D實(shí)體和場(chǎng)景。實(shí)際上,VRML規(guī)范本身就是通過(guò)Internet探討、研究和發(fā)布的。,二。VRML的歷史,三。VRML
3、設(shè)計(jì)理念,平臺(tái)獨(dú)立性 (Platform Independence) 擴(kuò)充性 (Extensibility) 能運(yùn)作于低頻寬的網(wǎng)絡(luò)上(Ability to work well over low bandwidth connections) 同時(shí),VRML在制定上與HTML有所區(qū)別,不被視為HTML的延伸,因?yàn)閮烧卟徽撛谫Y料形式或網(wǎng)絡(luò)需求上都有所不同。規(guī)格制定時(shí)避免了將VRML視為HTML的延伸,以免限制了VRML未來(lái)的發(fā)展 。,四。VRML語(yǔ)言概念,坐標(biāo)系統(tǒng) :VRML采用的是卡氏右手立體坐標(biāo)系統(tǒng)(Cartesian Right-Handed dimensional System),測(cè)量長(zhǎng)度和
4、距離的基本單位是公尺,而測(cè)量角度的基本單位是弧度。,從最抽象化的層次來(lái)看,VRML是用節(jié)點(diǎn)來(lái)實(shí)現(xiàn),而節(jié)點(diǎn)可以是立體幾何圖形、MIDI咨詢(xún)、JPEG圖像等。,節(jié)點(diǎn)(Nodes) : VRML以節(jié)點(diǎn)為基礎(chǔ),每個(gè)節(jié)點(diǎn)都具有以下四項(xiàng)特性 。 節(jié)點(diǎn)種類(lèi) : 如Box、Cone、Cylinder 等一共有60種節(jié)點(diǎn) 。 域(Fields) : 節(jié)點(diǎn)可以有零或多個(gè)域值。 節(jié)點(diǎn)名稱(chēng) : VRML中的節(jié)點(diǎn)不一定要指定名稱(chēng)但若指定名稱(chēng)則必須唯一。 子節(jié)點(diǎn) : 節(jié)點(diǎn)與節(jié)點(diǎn)之間可以有階層式的從屬關(guān)系。具有子節(jié)點(diǎn)的節(jié)點(diǎn)稱(chēng)為父節(jié)點(diǎn);父節(jié)點(diǎn)可以有零或多個(gè)子節(jié)點(diǎn)。,節(jié)點(diǎn)的分類(lèi) 形狀節(jié)點(diǎn) (Shape Nodes) : 指的是
5、幾何特性,如圓錐體、立方體、球體等;包含顯示ASCII字串的節(jié)點(diǎn)。 屬性節(jié)點(diǎn) (Property nodes) : 屬性節(jié)點(diǎn)會(huì)影響節(jié)點(diǎn)呈現(xiàn)的方式,又細(xì)分為幾何屬性與外觀/矩陣及轉(zhuǎn)換/攝影機(jī)/光源四類(lèi)。 群節(jié)點(diǎn) (Group Nodes) : 集合其他節(jié)點(diǎn),以單一節(jié)點(diǎn)的形式呈現(xiàn)。,域 (Fields) 所含域的數(shù)目分為兩類(lèi) : 只含單一的單值與含多個(gè)值的多值,分別以“SF” 與 “MF”為名稱(chēng)的開(kāi)頭。 SF開(kāi)頭的數(shù)值只是一個(gè)單一的數(shù)或數(shù)組,而MF開(kāi)頭的是一個(gè)數(shù)或數(shù)組的列表。各有11個(gè)和7個(gè)種類(lèi)。 例)SFBool : 開(kāi)關(guān)值 SFFloat/MFFloat : 浮點(diǎn)值 SFString/MFSt
6、ring : 字符串,五. VRML文件處理過(guò)程,1。VRML瀏覽器的處理模型,2。用VRML瀏覽器要求VRML文件的過(guò)程,3。用VRML瀏覽器接受VRML文件的過(guò)程,P,六。VRML的應(yīng)用軟件,VRML 瀏覽器 目前共有四家公司開(kāi)發(fā)出支援VRML 2.0的工具,分別是 : 1)Cosmo Software 的 Cosmo Player。 2)InterVista Software Inc. WorldView。 3)Paper Inc. 的 WebFx -后來(lái)被 Netscape 公司合并以后改稱(chēng)Live3D。 4)Temlplate Graphics Software Inc.的 WebS
7、pace,VRML 編輯器 目前有較多的編輯器,其中下面的四個(gè)編輯器使用率比較高 : 1)Cosmo Software 的 Cosmo World。 2)ParallelGraphics 的 Internet Space Builder (ISB)。 3)Superscape 的 3D Webmaster。 4)Ligos的 V-Realm Builder(VRB)。,七。VRML的解決問(wèn)題,首先是VRML的文件格式。目前VRML采用的是文本格式,文件都很大,而且在很多時(shí)候包含大量的空余空間和無(wú)用信息。解決辦法是為VRML文件定義一種二進(jìn)制文件格式。這將提供幾個(gè)優(yōu)點(diǎn):,減少文件長(zhǎng)度 : 一個(gè)好
8、的壓縮軟件能把VRML壓縮到原來(lái)的40%。 一定的保密性 : 由于每個(gè)人都可以看到文本文件的內(nèi)容,當(dāng)采用二進(jìn)制文件格式時(shí),別人在沒(méi)有得到允許的情況下不能拷貝VRML場(chǎng)景內(nèi)容的。,第二個(gè)問(wèn)題是要解決編碼時(shí)的便利性。用已存在的編輯器作出較簡(jiǎn)單的物體時(shí)比較容易,但要做比較復(fù)雜的形狀的物體時(shí)不容易。有這樣的情況時(shí),一般先用3DMax等軟件做完以后,轉(zhuǎn)換成VRML文件。,減少調(diào)用時(shí)間 : VRML在第一次加載瀏覽器時(shí)必須被解釋以使瀏覽器能夠構(gòu)造一個(gè)內(nèi)部場(chǎng)景結(jié)構(gòu)。二進(jìn)制文件更容易被高效解釋?zhuān)驗(yàn)樗瑸g覽器構(gòu)造內(nèi)部結(jié)構(gòu)的最基本的數(shù)據(jù)。,八。VRML的未來(lái),VRML繼續(xù)發(fā)展:增加新的節(jié)點(diǎn)與功能,如用于數(shù)字化
9、地球的GeoVRML,分布式計(jì)算的DIS等。 X3D : 基于XML的VRMLNG,已有提案與演示。 MPEG4 : 用于數(shù)字化影視的新技術(shù),基于VRML。 VRML2002 : X3D與VRML溶合的產(chǎn)物,并希望在2002年通過(guò)ISO認(rèn)證。,1995年以來(lái),到1998年中期開(kāi)始流行VRML將死亡的說(shuō)法,不過(guò)更多的人則開(kāi)始考慮VRML-NG(新一代VRML),以及VRML與其它3D技術(shù)的溶合??偟膩?lái)說(shuō),VRML有以下發(fā)展趨勢(shì) :,山東理工大學(xué)虛擬現(xiàn)實(shí)實(shí)驗(yàn)室 虛擬現(xiàn)實(shí)與VRML,九。VRML 使用例子,基本造型的例子 (1.25k,92行) 加動(dòng)作的例子 (9.40k,369行) 加觸點(diǎn)的列子
10、(3.39k,81行) 換視點(diǎn)的例子 (13.6k,742行) 一間屋子 (376k,13891行) 茶葉博物館(515k,19508行),VRML簡(jiǎn)單場(chǎng)景示例,VRML文件結(jié)構(gòu),VRML文件包括: - 文件頭 /描述版本和編碼集 - 注釋 - 節(jié)點(diǎn)(Nodes)/描述場(chǎng)景內(nèi)容 - 域 (Fields)/ 節(jié)點(diǎn)的屬性 - 值 (Values)/屬性值 - 等等. . . 其中每一部分均區(qū)分大小寫(xiě)。,VRML文件示例,#VRML V2.0 utf8 # A Cylinder Shape appearance Appearance material Material geometry Cylind
11、er height 2.0 radius 1.5 ,建立一個(gè)虛擬世界,幾何形狀的建立 顏色、紋理、光源及環(huán)境 視點(diǎn)、導(dǎo)航及用戶(hù)感知 動(dòng)畫(huà) 聲音 程序腳本,幾何形狀的建立,基本體素的建立 - Shape節(jié)點(diǎn) - 形狀幾何由幾何節(jié)點(diǎn)描述,如Box, Cone, Cylinder等。,幾何形狀的建立(續(xù)1.1),復(fù)雜形狀的建立 - 動(dòng)物、植物、地表、機(jī)械零件,等等. - 可借助點(diǎn)、線(xiàn)、面來(lái)構(gòu)建 - 對(duì)于地表等,甚至有特定的節(jié)點(diǎn)描述,如 ElevationGrid節(jié)點(diǎn),幾何形狀的建立(續(xù)1.2),PointSet Shape appearance Appearance . . . geometry P
12、ointSet coord Coordinate point . . . IndexedLineSet Shape appearance Appearance . . . geometry IndexedLineSet coord Coordinate point . . . coordIndex . . . ,幾何形狀的建立(續(xù)1.3),IndexedFaceSet Shape appearance Appearance . . . geometry IndexedFaceSet coord Coordinate . . . coordIndex . . . solid TRUE ccw T
13、RUE convex TRUE ElevationGrid Shape appearance Appearance . . . geometry ElevationGrid xDimension 3 zDimension 2 xSpacing 1.0 zSpacing 1.0 height . . . ,幾何形狀的建立(續(xù)2.1),Extrusion - 條形、管形、環(huán)形 - 可由 Extrusion 節(jié)點(diǎn)建立,幾何形狀的建立(續(xù)2.2),語(yǔ)法 Shape appearance Appearance . . . geometry Extrusion crossSection . . . spi
14、ne . . . endCap TRUE beginCap TRUE solid TRUE ccw TRUE convex TRUE scale . . . orientation . . . ,幾何形狀的建立(續(xù)3),將簡(jiǎn)單形狀組合為復(fù)雜形狀 組合節(jié)點(diǎn): - Group . . . - Switch . . . - Transform . . . - Billboard . . . - Anchor . . . - Inline . . . ,顏色、紋理、光源及環(huán)境,#VRML V2.0 utf8 # A Cylinder Shape appearance Appearance materi
15、al Material geometry Cylinder height 2.0 radius 1.5 ,顏色、紋理、光源及環(huán)境 (續(xù)1.1),Appearance 節(jié)點(diǎn)描述外觀 - 可通過(guò)Material 節(jié)點(diǎn)控制材料屬性,如顏色、高 光、透明度等。 - 可通過(guò)紋理映射為表面增添細(xì)節(jié)。 ImageTexture, PixelTexture, MovieTexture,顏色、紋理、光源及環(huán)境 (續(xù)1.2),Material節(jié)點(diǎn)示例 Shape appearance Appearance material Material diffuseColor 0.8 0.8 0.8 emissiveCol
16、or 0.1 0.1 0.1 transparency 0.0 specularColor 0.71 0.70 0.56 shininess 0.16 ambientIntensity 0.4 geometry . . . ,顏色、紋理、光源及環(huán)境 (續(xù)1.3),ImageTexture節(jié)點(diǎn)示例 Shape appearance Appearance material Material texture ImageTexture url wood.jpg geometry . . . ,顏色、紋理、光源及環(huán)境 (續(xù)1.4),ImageTexture節(jié)點(diǎn)示例 Shape appearance Ap
17、pearance material Material texture PixelTexture image 2 1 3 /width, height, bytes 0 xFFFF00 0 xFF0000 /pixel, pixel values geometry . . . ,顏色、紋理、光源及環(huán)境 (續(xù)1.5),MovieTexture節(jié)點(diǎn)示例 Shape appearance Appearance material Material texture MovieTexture url movie.mpg loop TRUE speed 1.0 startTime 0.0 stopTime 0
18、.0 geometry . . . ,顏色、紋理、光源及環(huán)境 (續(xù)2.1),紋理圖象在紋理坐標(biāo)系中表示,可用 texCoordIndex綁定到表面上。 Shape appearance Appearance . . . geometry IndexedFaceSet coord Coordinate . . . coordIndex . . . texCoord TextureCoordinate . . . texCoordIndex . . . ,顏色、紋理、光源及環(huán)境 (續(xù)2.2),紋理變換可以改變紋理在表面上的位置、方向及大小 Shape appearance Appearance m
19、aterial Material . . . texture ImageTexture . . . textureTransform TextureTransform translation 0.0 0.0 rotation 0.0 scale 3.0 3.0 ,顏色、紋理、光源及環(huán)境 (續(xù)3),缺省狀態(tài)下,有一個(gè)光源(在觀察者頭部的位置)。為達(dá)到更好的視覺(jué)效果,可加入多個(gè)光源。 光源類(lèi)型: point, directional, spot - 共同屬性:開(kāi)/關(guān), 強(qiáng)度, 顏色 - Point and spot lights:位置,半徑, 衰減 - Directional and spot l
20、ights:方向 光源不能投射陰影。,顏色、紋理、光源及環(huán)境 (續(xù)4.1),背景的作用:豐富場(chǎng)景 背景包括: - 天空與地面 - 全景包圍盒 利用背景的好處:與使用模型相比,生成速度快,顏色、紋理、光源及環(huán)境 (續(xù)4.2),背景示例 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 bac
21、kUrl mountns.png leftUrl mountns.png rightUrl mountns.png” # no top or bottom images ,顏色、紋理、光源及環(huán)境 (續(xù)4.3),霧的作用: - 增強(qiáng)真實(shí)感 - 減少開(kāi)發(fā)時(shí)間和繪制時(shí)間(遮擋用戶(hù)視線(xiàn)) 霧有顏色、類(lèi)型和可視范圍 示例代碼 Fog color 1.0 1.0 1.0 fogType LINEAR visibilityRange 10.0 ,顏色、紋理、光源及環(huán)境 (續(xù)4.4),霧效果示例,視點(diǎn)、導(dǎo)航及用戶(hù)感知,視點(diǎn)(viewpoint節(jié)點(diǎn))包括: - position,orientation,fiel
22、dOfView 缺省視點(diǎn)位置: (0.0, 0.0, 10.0) 視點(diǎn)可改變 文件中的第一個(gè)viewpoint即是entry point. 示例代碼 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 ,視點(diǎn)、導(dǎo)航及用戶(hù)感知(續(xù)1),不同的場(chǎng)景需要不同的導(dǎo)航方式 - 室內(nèi)、地形、CAD模型, . 用戶(hù)可指定導(dǎo)航方式:walk, fly, examine, none, any 用戶(hù)
23、可描述觀察者的大小及運(yùn)動(dòng)速度 示例代碼 NavigationInfo type WALK, ANY avatarSize 0.25, 1.6, 0.75 speed 1.0 headlight TRUE ,視點(diǎn)、導(dǎo)航及用戶(hù)感知(續(xù)2),用戶(hù)感知是通過(guò)三個(gè)傳感器(Sensor)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)的: - VisibilitySensor :觀察者能否看到某一區(qū)域 - ProximitySensor: 觀察者是否在某一區(qū)域內(nèi) - Collision: 觀察者是否與物體碰撞 主要作用:觸發(fā)動(dòng)畫(huà),動(dòng)畫(huà),特點(diǎn):隨時(shí)間改變 - 位置、方向、顏色等 - VRML中:不斷改變節(jié)點(diǎn)的某個(gè)域的值 兩個(gè)基本的控制條件: -
24、 何時(shí)開(kāi)始、何時(shí)結(jié)束 - 變化速度 VRML是一種解釋性語(yǔ)言,它既無(wú)局部變量也無(wú)全局變量用于在VRML的世界間傳遞信息。,動(dòng)畫(huà)(續(xù)1),VRML采用事件(Events)作為兩個(gè)不同節(jié)點(diǎn)間傳輸數(shù)據(jù)的方式。 VRML的節(jié)點(diǎn)中,有的能生成事件(eventOut),有的可接收事件(eventIn),有的既能生成也能接收(exposedField)。 第一個(gè)事件一般由外部影響觸發(fā)。外部影響的形式不一(如時(shí)間、用戶(hù)在物體上點(diǎn)擊等)。而一旦初始事件產(chǎn)生后,它將觸發(fā)其他事件,產(chǎn)生多米諾效應(yīng)。,動(dòng)畫(huà)(續(xù)2.1),要設(shè)置動(dòng)畫(huà),我們需要: - 發(fā)送事件的節(jié)點(diǎn) - 接收事件的節(jié)點(diǎn) - 連接上述兩個(gè)節(jié)點(diǎn)的路由(rout
25、e),動(dòng)畫(huà)(續(xù)2.2),輸出示例 - OrientationInterpolator 節(jié)點(diǎn)的 eventOut: - value_changed 輸出旋轉(zhuǎn)參數(shù)值 - PositionInterpolator節(jié)點(diǎn)的 eventOut: - value_changed輸出位置 (平移)參數(shù)值 - TimeSensor節(jié)點(diǎn)的eventOut: - time 輸出時(shí)間值,動(dòng)畫(huà)(續(xù)2.3),輸入示例 - Transform 節(jié)點(diǎn)的 eventIn: - set_translation - set_rotation - set_scale - Material 節(jié)點(diǎn)的 eventIn: - set_dif
26、fuseColor - set_emissiveColor - set_transparency,動(dòng)畫(huà)(續(xù)2.4),路由(ROUTE)將兩個(gè)節(jié)點(diǎn)連接起來(lái): - 輸出節(jié)點(diǎn)的名稱(chēng)和eventOut域的名稱(chēng) - 輸入節(jié)點(diǎn)的名稱(chēng)和eventIn域的名稱(chēng) 示例 - ROUTE MySender.rotation_changed TO MyReceiver.set_rotation ROUTE 和TO 必須大寫(xiě),動(dòng)畫(huà)(續(xù)3),Demo,聲音,聲音將使得虛擬世界更加精彩 - 聲音可由觀察者觸發(fā),如按門(mén)鈴 - 聲音也可以是連續(xù)的背景音樂(lè) 聲音有兩個(gè)組成部分: - 聲源:提供聲音信號(hào),由AudioClip節(jié)點(diǎn)指
27、定 - 發(fā)射器(emitter): 將信號(hào)轉(zhuǎn)換成虛擬聲音,主要設(shè)置 一些與聲音位置等有關(guān)的參數(shù),在Sound 節(jié)點(diǎn)中指定,聲音(續(xù)),Sound節(jié)點(diǎn)示例 Sound source AudioClip url myfile.wav pitch 1.0 startTime 0.0 stopTime 0.0 loop FALSE location 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
28、 ,聲音(續(xù)),聲音的觸發(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 PitchC4.set_startTime,程序腳本,真正意義上的交互和復(fù)雜的動(dòng)畫(huà)是由程序腳本來(lái)實(shí)現(xiàn)的。 程序腳本的代碼可用 JavaScript, Java, VRMLscript或其他語(yǔ)言來(lái)寫(xiě) - JavaScript 易于學(xué)習(xí) - Java功能更強(qiáng) -
29、VRMLscript=JavaScript,創(chuàng)建高效的VRML世界,用戶(hù)能否與VRML世界進(jìn)行流暢的交互,至少取決與以下兩個(gè)因素: - 文件的下載速度:文件大小 - 繪制速度:場(chǎng)景描述的復(fù)雜程度 兩個(gè)問(wèn)題: - 如何有效地減少文件大?。?- 如何有效地描述場(chǎng)景?,創(chuàng)建高效的VRML世界(續(xù)1),減少文件大小 - 消除空白間隔 - 浮點(diǎn)數(shù)取整 - 使用壓縮文件 - 盡可能使用基本體素 - 盡可能使用已有的法向量 - 對(duì)于反復(fù)使用的物體,可先對(duì)其命名(DEF),然 后再重復(fù)使用(USE)。 - .,創(chuàng)建高效的VRML世界(續(xù)2),有效地描述場(chǎng)景 - 用盡可能少的多邊形描述物體 - 在可能的情況下,
30、多利用紋理 - 合理地利用光源 - 將LOD節(jié)點(diǎn)和Inline節(jié)點(diǎn)有機(jī)結(jié)合使用 - 依據(jù)物體的空間位置將其合理地放置在文件中 - 借助腳本隱藏多余的物體或動(dòng)畫(huà) - 有節(jié)制地使用碰撞檢測(cè) - .,VRML200 x-X3D,一致、可預(yù)測(cè)的事件模型 更一般、一致的SAI 支持鍵盤(pán)設(shè)備 支持高精度數(shù)據(jù) 支持NURBS 、支持曲面 支持與VRML內(nèi)嵌的web頁(yè)面的通訊 . 采用XML編碼(X3D)以與Web緊密集成,VRML200 x-X3D (續(xù)1),1999年上半年,Web3D Consortium即發(fā)布新聞表達(dá)了建立 VRML200X -X3D(簡(jiǎn)稱(chēng)X3D)的意圖。 其目的是與VRML2.0向下
31、兼容,集成XML以提高其可擴(kuò)充性。,VRML200 x-X3D (續(xù)2),XML(可擴(kuò)展標(biāo)記語(yǔ)言),描述了一類(lèi)稱(chēng)為XML文件的數(shù)據(jù)對(duì)象,同時(shí)也部分地描述了處理這些數(shù)據(jù)對(duì)象的計(jì)算機(jī)程序的動(dòng)作。 - XML是SGML針對(duì)特定應(yīng)用領(lǐng)域的一個(gè)子集,或者說(shuō)是 SGML的一種受限形式。根據(jù)定義,XML文件是合乎規(guī)范 的SGML文件。 XML的設(shè)計(jì)既考慮了實(shí)現(xiàn)的方便性,同時(shí)也顧及了與SGML和HTML的互操作性。 W3C推薦將XML用于結(jié)構(gòu)信息交換(structured information exchange),目前已得到較為廣泛的應(yīng)用。,VRML200 x-X3D (續(xù)3),XML設(shè)計(jì)目標(biāo) - XML應(yīng)
32、該可以直接用于因特網(wǎng)(Internet)。 - XML應(yīng)該支持大量不同的應(yīng)用。 - XML應(yīng)該與SGML兼容。 - 處理XML文件的程序應(yīng)該容易編寫(xiě)。 - XML中的可選項(xiàng)應(yīng)無(wú)條件地保持最少,理想狀況下 應(yīng)該為0個(gè)。 - XML文件應(yīng)該是人可直接閱讀的,應(yīng)是條理清楚的。 - XML的設(shè)計(jì)應(yīng)快速完成。 - XML的設(shè)計(jì)應(yīng)該是形式化的,簡(jiǎn)潔的。 - XML文件應(yīng)易于創(chuàng)建。 - XML標(biāo)記的簡(jiǎn)潔性是最后考慮的目標(biāo)。,VRML200 x-X3D (續(xù)4),采用XML編碼使得VRML有一個(gè)堅(jiān)實(shí)的基礎(chǔ)。其優(yōu)點(diǎn)主要有: - 堅(jiān)實(shí)的國(guó)際化基礎(chǔ) (sound basis for internationaliza
33、tion) - 強(qiáng)有力的結(jié)構(gòu)化能力(structuring capability) - 基于XML的語(yǔ)法對(duì)于實(shí)現(xiàn)而言是開(kāi)放的(open to implementation),山東理工大學(xué)虛擬現(xiàn)實(shí)實(shí)驗(yàn)室 虛擬現(xiàn)實(shí)與VRML,第二章 VRML的瀏覽與編輯,瀏覽VRML的方法,該如何瀏覽VRML呢?首先當(dāng)然必須擁有可以上網(wǎng)的電腦,並且有安裝Microsoft的Internet Explorer瀏覽器或網(wǎng)景的Netscape瀏覽器,還要再安裝一個(gè)可以讓瀏覽器具備瀏覽VRML功能的外掛程式(plug-in)。如此就可以透過(guò)一般的瀏覽器來(lái)瀏覽VRML所建立的虛擬實(shí)境。(以上所述是在PC作業(yè)平臺(tái)和MS Wi
34、ndows作業(yè)系統(tǒng)的架構(gòu)上,當(dāng)然也可以使用其它的作業(yè)平臺(tái)和作業(yè)系統(tǒng))。,下表列出了目前常見(jiàn)的VRML瀏覽外掛程式的名稱(chēng)、可瀏覽之3D語(yǔ)言和作業(yè)系統(tǒng)與平臺(tái):,安裝實(shí)例,我們來(lái)安裝一個(gè)外掛程式的實(shí)例: 產(chǎn)品名稱(chēng):Cortona 發(fā)展公司:ParallelGraphics 作業(yè)系統(tǒng):Windows98 程式來(lái)源:網(wǎng)路下載、光碟片,安裝實(shí)例,1.網(wǎng)路下載: 網(wǎng)址: 第一步:先透過(guò)WWW瀏覽器連到上述網(wǎng)址。 第二步:連上這個(gè)網(wǎng)頁(yè)後,點(diǎn)選download這個(gè)項(xiàng)目。 第三步:在Cortona VRML Client個(gè)標(biāo)題下,點(diǎn)選或去下載外掛程式 cortvrml.exe。點(diǎn)選確定後,再選擇儲(chǔ)存位置,就完成下
35、載動(dòng)作。,安裝實(shí)例,2.開(kāi)始安裝: 第一步:找到之前下載的cortvrml.exe位置或從本書(shū)所附之光碟片尋找此檔。 第二步:點(diǎn)選此檔後開(kāi)始安裝,只需要選擇accept接受合約後,繼續(xù)選擇next。 第三步:選擇Typical或Custom的安裝方式,建議選擇Typical,接著按下next。 第四部:選擇DirectX renderer,再按下next,接著選擇Finish則安裝完成。,安裝實(shí)例,3.安裝是否成功: 第一步:選擇“開(kāi)始”“程式集”P(pán)arallelGraphics“Cortona VRML ClientView scene of the day。 第二步:這樣一個(gè)VRML瀏覽器
36、,如果有個(gè)虛擬物件在畫(huà)面中,如此就表示安裝成功。,Cortona VRML瀏覽器,Cortona VRML瀏覽器的控制功能,左側(cè)和下側(cè)各有一工具列。 左側(cè)工具列:左側(cè)工具列共有兩組按鈕,一組為WALK、FLY、STUDY,另一組為PLAN、PAN、TURN、ROLL,這兩組只能各選取一個(gè)按鈕,絀合的功能如下:,按鈕被點(diǎn)選後即會(huì)發(fā)亮,選定方法之後使用滑鼠的左鍵做拖曳的動(dòng)作,拖曳的越遠(yuǎn)則轉(zhuǎn)動(dòng)或移動(dòng)的速度越快。,VRML的編輯方法,因?yàn)閂RML的檔案格式是一般文字檔,所以基本上使用任何的純文字編輯器,都可以編輯VRML的檔案。在這一節(jié)中,介紹筆者所習(xí)慣使用的VRML編輯器,叫做VrmlPad它是由P
37、arallelGraphics這家公司發(fā)行的,而這家公司也就是2-1節(jié)中所介紹的VRML外掛程式Cortona是同一家。所以檔案下載的方式和之前相同,也附在本書(shū)的光碟片中。,VRML的編輯方法,VrmlPad目前的版本是2.0版,下載的程式和光碟中所附的程式都是試用版。圖2-6是這個(gè)VrmlPad的編輯畫(huà)面。 左半部的視窗是Scene Tree,可以看出這個(gè)檔案使用了哪些節(jié)點(diǎn)(Node),含其包含的子節(jié)點(diǎn)(Child Node);也可以換成Resources和File List等子視窗。右半部的視窗就是VRML檔案的程式碼。每當(dāng)你在右邊的視窗鍵入一個(gè)新的節(jié)點(diǎn)(Node),左半部的視窗Scene
38、 Tree就會(huì)出先一個(gè)相同的節(jié)點(diǎn)(Node)圖示。,VRML的編輯方法,在這個(gè)編輯器中,檔案第一行#VRML V2.0 utf8會(huì)自動(dòng)地寫(xiě)上。另外它還有一項(xiàng)強(qiáng)大的功能:就是程式編寫(xiě)輔助視窗。例如:當(dāng)你要輸入Shape這個(gè)節(jié)點(diǎn)時(shí),只輸入S時(shí),程式編寫(xiě)輔助視窗會(huì)自動(dòng)出現(xiàn),列出所有S開(kāi)頭的節(jié)點(diǎn)讓你選擇。如此可以節(jié)省撰寫(xiě)程式時(shí)間,也可以降低指令被撰寫(xiě)錯(cuò)誤的機(jī)率。所以筆者建議,剛?cè)腴T(mén)的讀者使用VrmlPad來(lái)撰寫(xiě)VRML的程式。,山東理工大學(xué)虛擬現(xiàn)實(shí)實(shí)驗(yàn)室 虛擬現(xiàn)實(shí)與VRML,第三章 VRML的檔案架構(gòu),VRML檔案的概述,VRML的檔案就和大部分程式語(yǔ)言的檔案相同,是個(gè)文字?jǐn)⑹?textual des
39、cription)的檔案。所以可以使用任何的文字編輯器來(lái)撰寫(xiě)VRML,只要存檔時(shí),存成file.wrl即可。而.wrl通常讀成dot world,由副檔名可以感受到VRML的目的就是去建造一個(gè)世界(world)。,圖3-1,VRML檔案的概述,這個(gè)範(fàn)例是一個(gè)很典型的VRML程式,包含檔案標(biāo)頭、註解、節(jié)點(diǎn)、欄位等,透過(guò)瀏覽器我們將可以看見(jiàn)程式執(zhí)行的結(jié)果如圖3-1。將在下列各節(jié)對(duì)這些構(gòu)成VRML檔案的基本項(xiàng)目做更詳細(xì)的說(shuō)明與介紹。,VRML的檔案標(biāo)頭,範(fàn)例3-1的第一行 #VRMLV2.0utf8 這就是VRML的檔案標(biāo)頭,在任何VRML程式的第一行一定要寫(xiě)上這個(gè)標(biāo)頭。 VRML的檔案標(biāo)頭對(duì)這個(gè)檔
40、案有以下的描述: 它是個(gè)VRML的檔案。 它是使用VRML2.0版的規(guī)格來(lái)完成。 檔案是使用國(guó)際UTF-8的字元集合。,VRML的檔案標(biāo)頭,在很多語(yǔ)言中,UTF-8字元集合是一個(gè)標(biāo)準(zhǔn)的字元集合,包含英文。它使得VRML能夠支援英文字元,例如:A到Z。只要是能在鍵盤(pán)上找到的字元,UTF-8字元集合都包含在內(nèi),所以能鍵入任何ASCII碼在一個(gè)UTF-8的VRML檔案中。,UTF-8字元集合小常識(shí),UTF的是UCS Transform Format的所寫(xiě),而UCS是Universal Multiple-Octet Coded Character Set。UTF8是由ISO ( Internation
41、al Organization for Standards)的規(guī)範(fàn)ISO/IEC 10646-1:1993)所提出。,VRML的檔案註解,我們看到範(fàn)例3-1的第二行 #Drawthecolumn 這是一個(gè)VRML的檔案註解,註明了這個(gè)程式的目的是“畫(huà)柱子”。相信有寫(xiě)過(guò)程式的人都應(yīng)該知道註解的目的: 它可以幫助程式設(shè)計(jì)師紀(jì)錄本段程式的意義,以便日後修正。 它可以幫助程式設(shè)計(jì)師除錯(cuò)(debug)時(shí),先將部分程式轉(zhuǎn)成註解。 它可以幫助非此程式設(shè)計(jì)者閱讀此程式時(shí),了解程式的目的。 在VRML的程式中,註解的使用方式就是在每行程式的開(kāi)頭加上#,#之後該行的文字便失去了程式執(zhí)行的功能,變成註解。,節(jié)點(diǎn),N
42、ode在本書(shū)中翻譯成節(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è)用來(lái)形容物件幾何型狀(Geometry Node,例如:球體、長(zhǎng)方體、圓柱體)和外觀(Appearance Node,例如:表面的顏色、透明度、光滑度)的節(jié)點(diǎn)。,節(jié)點(diǎn),由圖3-2可以清楚地看到Shape節(jié)點(diǎn)包含了許多相關(guān)的節(jié)點(diǎn)(Node和欄位(Field),所以Shape節(jié)點(diǎn)是一個(gè)非常重要的節(jié)點(diǎn),將會(huì)在第四章和第五章裡再詳細(xì)地說(shuō)明。,節(jié)點(diǎn),以下是範(fàn)例3-1中,所使用的一個(gè)節(jié)點(diǎn)。 geometry Cylinde
43、r radius 0.5 height 4.0 由以上可知一個(gè)節(jié)點(diǎn)通常包含: 1.節(jié)點(diǎn)的名稱(chēng)(例如:Cylinder)。 2.一對(duì)大括號(hào)“。 3.欄位和欄位值(例如:radius 0.5),節(jié)點(diǎn),所以在日後的各節(jié)中,將會(huì)介紹很多節(jié)點(diǎn)(Node)的語(yǔ)法(Syntax),先看下面Cone節(jié)點(diǎn)的語(yǔ)法:,其中欄位值,如:SFFloat、SFBoo1等的意義將在3-4節(jié)中說(shuō)明。,節(jié)點(diǎn),關(guān)於節(jié)點(diǎn)的分類(lèi)方法,其實(shí)並沒(méi)有一定的分類(lèi)方式,但依照規(guī)範(fàn)的節(jié)點(diǎn)種類(lèi),可以分成群節(jié)點(diǎn)(Grouping Nodes)和子節(jié)點(diǎn)(Child Nodes)。 群節(jié)點(diǎn)(Grouping Nodes)可以將其它的節(jié)點(diǎn)放在這個(gè)群節(jié)點(diǎn)中
44、。例如:在範(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),而子節(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)和不是群節(jié)點(diǎn)的子節(jié)點(diǎn)(Child Nodes)。,本書(shū)各章的分類(lèi),是依照各節(jié)點(diǎn)的特徵性質(zhì)來(lái)區(qū)分,共分成八類(lèi),從第四章到第十一章,如表3-1所示。,欄
45、位和欄位值,在這一節(jié)中主要是介紹欄位的語(yǔ)法和欄位值的型態(tài)。一個(gè)節(jié)點(diǎn)是由欄位和欄位值所組成,它們是用來(lái)描述節(jié)點(diǎn)的屬性。 欄位可以分成兩類(lèi):一類(lèi)是欄位只包含一個(gè)單獨(dú)的值,開(kāi)頭的名稱(chēng)為SF (Single-value fields);另一類(lèi)則是包含多重的值,開(kāi)頭名稱(chēng)為MF (Multiple-valued fields)。,欄位和欄位值,多重值的欄位值是有順序地寫(xiě)在中括號(hào)裡。假如欄位沒(méi)有任何值,只需列出中括號(hào);假如只有一個(gè)值就將中括號(hào)省略。例如:有一個(gè)欄位值型態(tài)為MFInt32的多重欄位叫做foo,但它只含一個(gè)欄位值1,有以下表示方式: foo 1 foo1, foo1,欄位和欄位值,在範(fàn)例3-1中
46、,欄位和欄位值如下 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)語(yǔ)法(Syntax)中:,欄位值(Field Value) SFFloat和SFBool所代表的意義是什麼呢?由以下的介紹,將可以對(duì)於各種不同欄位值的型態(tài)更加了解。,SFBool,它是一個(gè)布林值或邏輯值。它的值不是TRUE就是FALSE。常被使用去開(kāi)啟或關(guān)閉一個(gè)節(jié)點(diǎn)的性質(zhì)特徵。例如:Cone這個(gè)節(jié)點(diǎn)的sid
47、e和bottom這兩個(gè)欄位,它們的欄位值就是布林值,用來(lái)決定四週或底部是否顯現(xiàn)。例如: fooBool FALSE fooBool是一個(gè)值為SFBool的欄位,它定義的布林值為FALSE。一個(gè)值為SFBool的eventOut事件,它的初始布林值為FALSE。,SFColor和MFColor,它總共包含三個(gè)浮點(diǎn)值,分別介於(0,1)之間,各自所描述的長(zhǎng)紅、綠、藍(lán)(R-G-B),經(jīng)由三個(gè)不同值的混合可以顯現(xiàn)出不同的顏色。常被使用在描述一個(gè)幾何外型或光線(xiàn)的顏色。例如:1.0 0.0 0.0是紅色;0.75 0.75 0.75是灰色。下面有一個(gè)R-G-B三原色混何參考表(表3-2)。 fooColo
48、r 1.0 0.0 0.0 , 0.0 1.0 0.0 , 0.0 0.0 1.0,SFColor和MFColor,fooColor是一個(gè)值為MFColor的欄位,它包含三組主要的顏色,分別為紅、綠、藍(lán)。一個(gè)值為SFColor的eventOut事件,它的初始值為(0 0 0)。一個(gè)值為MFColor的eventOut事件,它的初始值為空的中括號(hào)。 基本上,所有的色彩皆由紅、綠、藍(lán)三種顏色混合組成的,稱(chēng)之為三原色。以下為一個(gè)三原色混合的參考表:,SFFloatc和MFFloat,值是浮點(diǎn)數(shù)。它可以是正值或負(fù)值,可以有小數(shù)點(diǎn),值分布在(-,+ ),例如:88.75、-333.111等。 , foo
49、Float 3.1415926 , 133.5e-5 , 0.00006 fooFloat是一個(gè)欄位值為MFFloat的欄位,它包含三組浮點(diǎn)數(shù)值。若一個(gè)值為SFFloat的eventOut事件,它的初始值為0.0。一個(gè)值為MFFloat的eventOut事件,它的初始值為空的中括號(hào)。,SFImage,用來(lái)描述數(shù)位圖片的一列值??梢员硎疽粋€(gè)物體外觀的表面紋路顏色。 fooImage 其中 為整數(shù)值;是用十六進(jìn)位法(hexadecimal)表示。例如: fooImage 1 2 1 0 xFF 0 x00,SFImage,fooImage是一個(gè)值為SFImage的欄位。它定義了一個(gè)1個(gè)圖素(pix
50、el)寬和2個(gè)圖素(Pixels)高的圖片,只含一個(gè)元件圖片,底部的圖素是白(0 xFF),頂部的圖素是黑(0 x00)。一個(gè)值為SFImage的eventOut事件,它的初始值為(0 0 0)。,SFInt32和 MFInt32,值是32bit的整數(shù)值。它可以是正值或負(fù)值,不可以有小數(shù)點(diǎn),例如:123、-963等。值為SFInt32和MFInt32的欄位和事件,其值可以用十進(jìn)位或十六進(jìn)位的格式來(lái)表示。例如: fooIt32 17 , -0 xE20 , -518820 fooInt32是一個(gè)值為MFInt32的欄位,它包含了三組整數(shù)值(十進(jìn)位或十六進(jìn)位)。值為SFInt32的eventOut
51、事件,它的初始值是0。值為MFInt32的eventOut事件,它的初始值是空的中括號(hào)。,SFNode和MFNode,值為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)。,SFRotation和MFRoat
52、ion,它是由四個(gè)浮點(diǎn)值構(gòu)成的欄位值。前三個(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)。,SFString和MFString,它的一個(gè)欄位值是由在一對(duì)雙引號(hào)中的字元所構(gòu)成(strin
53、g)。它通常被用來(lái)表示一些選項(xiàng)的名字或描述事物。例如: fooStringOne, Two, Three,She is a cute girl fooString是一個(gè)值為MFString的欄位,它包含了兩組字串。若一個(gè)值為SFString的eventOut事件,它的初始值為空的雙引號(hào)“”。一個(gè)值為MFString的eventOut事件,它的初始值是空的中括號(hào)。,SFTime和MFTime,它是一個(gè)浮點(diǎn)值。時(shí)間值是使用真實(shí)世界中的絕對(duì)時(shí)間,單位是用秒來(lái)表示,從某一個(gè)特別的時(shí)間(西元1970年,1月1日。子夜00:00:00 GMT)開(kāi)始計(jì)算。通常是被應(yīng)用在動(dòng)畫(huà)中,決定何時(shí)開(kāi)始或停止。例如: f
54、ooTime 0.0 fooTime是一個(gè)值為SFTime的欄位,表示一個(gè)0.0秒的時(shí)間。一個(gè)值為SFTime的eventOut事件,它的初始值為-1。一個(gè)值為MFTime的eventOut事件,它的初始值是空的中括號(hào)。,SFVec2f和MFVec2f,欄位值是一個(gè)二維的浮點(diǎn)數(shù)向量。由兩個(gè)浮點(diǎn)數(shù)構(gòu)成一組欄位值。通常被使用來(lái)表示一個(gè)2-D的位置。例如: fooVec2f91 44.91, 26 94 fooVec2f是一個(gè)值為MFVec2f的欄位,它包含兩組向量。一個(gè)值為SFVec2f的eventOut事件,它的初始值為(0 0)。一個(gè)值為MFVec2f的eventOut事件,它的初始值是空的中
55、括號(hào)。,SFVec3f和MFVec3f,欄位值是一個(gè)三維的浮點(diǎn)數(shù)向量。由三個(gè)浮點(diǎn)數(shù)構(gòu)成一組欄位值。通常被使用來(lái)表示一個(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)名稱(chēng) (DEF)重用節(jié)點(diǎn)名稱(chēng) (USE),將介紹如何定義一節(jié)點(diǎn)的名字。首先先來(lái)想想為什麼會(huì)有這個(gè)功能呢? 最大的功能就是增加重用性。當(dāng)我們建構(gòu)一棟房子時(shí),房子一定會(huì)用到很多的柱、樑、窗戶(hù)
56、和門(mén)等,可以發(fā)現(xiàn)絕大多數(shù)的柱、樑、窗戶(hù)和門(mén)的尺寸或外觀是相同的,只是位置不同,所以一開(kāi)始要先定義一根標(biāo)準(zhǔn)柱、一根標(biāo)準(zhǔn)樑、一個(gè)標(biāo)準(zhǔn)窗、一個(gè)標(biāo)準(zhǔn)門(mén),把柱、樑、窗戶(hù)和門(mén)都視為單一的物件,而他們的屬性、尺寸也都設(shè)定在其中。接下來(lái)在建構(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 SYNTAX,DEF node-name node-type. 去定義一個(gè)節(jié)點(diǎn)來(lái)當(dāng)作重用案例,要在節(jié)點(diǎn)之前,加上“DEF”和所要定義的節(jié)點(diǎn)名稱(chēng)“node-name”
57、。在VRML的檔案中,可以定義任意個(gè)節(jié)點(diǎn)名稱(chēng),但是不能重複定義相同的名稱(chēng)在同一個(gè)VRML的檔案中。node-name可以是任何你覺(jué)得方便的字串名稱(chēng),有大、小寫(xiě)的差異,node-name叫做“ERlCA”和“erica”的意義對(duì)VRML瀏覽器來(lái)說(shuō)是不一樣的。字元可以是字母、數(shù)字和底線(xiàn)(underscore,“_”)。下列是一些合法node-name的例子:,DEF SYNTAX,node-name的標(biāo)頭不可以是數(shù)字。它不可以包含不能顯現(xiàn)的ASCII字元,像是space、tabs;它也不能使用到標(biāo)點(diǎn)符號(hào)或是運(yùn)算符號(hào),像是雙引號(hào)()、各種括號(hào)、正負(fù)號(hào)等。 還有一些對(duì)VRML有特別意義的名稱(chēng)也不可以使用來(lái)當(dāng)作node-name,例如:,USE SYNTAX,USE node-name 如果你在一個(gè)檔案中定義了一個(gè)節(jié)點(diǎn)名稱(chēng),可以用USE來(lái)重用已經(jīng)定義的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年涉縣招教考試備考題庫(kù)含答案解析(奪冠)
- 2025年交口縣招教考試備考題庫(kù)帶答案解析
- 2025年環(huán)縣招教考試備考題庫(kù)附答案解析
- 2025年正安縣幼兒園教師招教考試備考題庫(kù)附答案解析(奪冠)
- 2025年中山職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案解析
- 2025年上海南湖職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2024年貴州輕工職業(yè)大學(xué)馬克思主義基本原理概論期末考試題帶答案解析(必刷)
- 2025屆山東省濟(jì)寧市鄒城市兗礦第一中學(xué)高三模擬測(cè)試生物試題(一)(解析版)
- 2026年教育心理學(xué)專(zhuān)業(yè)考試學(xué)生心理輔導(dǎo)方案設(shè)計(jì)題
- 2025年任縣幼兒園教師招教考試備考題庫(kù)含答案解析(奪冠)
- 高中數(shù)學(xué)北師大版講義(必修二)第01講1.1周期變化7種常見(jiàn)考法歸類(lèi)(學(xué)生版+解析)
- 2024年山東省濟(jì)南市中考化學(xué)試卷( 含答案)
- 建筑結(jié)構(gòu)改造設(shè)計(jì)和加固技術(shù)綜合分析的開(kāi)題報(bào)告
- 管理會(huì)計(jì)學(xué) 第10版 課件 第1、2章 管理會(huì)計(jì)概論、成本性態(tài)與變動(dòng)成本法
- 喪葬費(fèi)用補(bǔ)助申請(qǐng)的社保授權(quán)委托書(shū)
- 2024年度初會(huì)《經(jīng)濟(jì)法基礎(chǔ)》高頻真題匯編(含答案)
- 課例研究報(bào)告
- 啤酒營(yíng)銷(xiāo)促銷(xiāo)實(shí)戰(zhàn)技巧之經(jīng)銷(xiāo)商管理技巧知識(shí)培訓(xùn)
- 建筑工程各部門(mén)職能及各崗位職責(zé)201702
- 機(jī)柜端口對(duì)應(yīng)表
- GB/T 3934-2003普通螺紋量規(guī)技術(shù)條件
評(píng)論
0/150
提交評(píng)論