版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VRML程序設(shè)計(jì)四、造型的空間變換、編組和素材調(diào)用4.1造型的空間變換4.2造型編組和素材調(diào)用4.3其他組節(jié)點(diǎn)的使用Chapter44.1造型的空間變換在VRML中創(chuàng)建的立體造型都是以默認(rèn)坐標(biāo)系的原點(diǎn)為中心進(jìn)行定位的。Transform坐標(biāo)變換節(jié)點(diǎn)可以創(chuàng)建一個(gè)新的坐標(biāo)系,通過(guò)對(duì)坐標(biāo)系的平移、旋轉(zhuǎn)、縮放操作,實(shí)現(xiàn)對(duì)立體造型位置、角度、縮放比例的改變。一、Tronsform坐標(biāo)變換節(jié)點(diǎn)Transform坐標(biāo)變換節(jié)點(diǎn)用于創(chuàng)建一個(gè)或多個(gè)不同于默認(rèn)(原始)坐標(biāo)系的新坐標(biāo)系。Transfom節(jié)點(diǎn)是一個(gè)組節(jié)點(diǎn),在此節(jié)點(diǎn)下面可以包含一個(gè)或多個(gè)子節(jié)點(diǎn),所有子節(jié)點(diǎn)的定位中心都基于同一個(gè)坐標(biāo)系的原點(diǎn)。這些子節(jié)點(diǎn)可以是Shape造型節(jié)點(diǎn)、Group編組節(jié)點(diǎn),也可以是下一層的Transform節(jié)點(diǎn)。
Transform{eventInMFNodeaddChildreneventInMFNoderemoveChildrenexposedFieldSFVec3fcenter000exposedFieldMFNodechildren[]exposedFieldSFRotationrotation0010exposedFieldSFVec3fscale111exposedFieldSFRotationscaleOrientation0010exposedFieldSFVec3ftranslation000fieldSFVec3fbboxCenter000fieldSFVec3fbboxSize-1-1-1}二、空間坐標(biāo)的平移
空間坐標(biāo)的平移是通過(guò)對(duì)Transform節(jié)點(diǎn)的trans1ation域的域值的設(shè)定,建立新的坐標(biāo)原點(diǎn),作為children域中所有子節(jié)點(diǎn)創(chuàng)建的造型的定位點(diǎn),從而實(shí)現(xiàn)原始坐標(biāo)系和新坐標(biāo)系造型之間相對(duì)位置的移動(dòng)和變化的。
三、空間坐標(biāo)的旋轉(zhuǎn)空間坐標(biāo)系旋轉(zhuǎn)的方法:利用Transform坐標(biāo)變換節(jié)點(diǎn)中rotation域的域值指定旋轉(zhuǎn)軸及旋轉(zhuǎn)角度,形成一個(gè)新的旋轉(zhuǎn)后的空間坐標(biāo)系,然后在新坐標(biāo)中創(chuàng)建一個(gè)或一組造型。
如果需要在前面變換的基礎(chǔ)上連續(xù)進(jìn)行空間變換,可以使用Transform節(jié)點(diǎn)進(jìn)行逐級(jí)的嵌套變換,嵌套級(jí)數(shù)沒(méi)有限制。
四、空間坐標(biāo)的縮放現(xiàn)實(shí)世界中的物體是千姿百態(tài)的,很難用幾種標(biāo)準(zhǔn)的造型來(lái)概括。例如,前面學(xué)習(xí)的簡(jiǎn)單造型節(jié)點(diǎn)可以很容易地創(chuàng)建出圓球造型,但是要做出一個(gè)橢圓形的氣球就不容易了,其實(shí)這樣的造型可以通過(guò)對(duì)簡(jiǎn)單造型圓球進(jìn)行不同方向上的縮放拉伸來(lái)完成。和造型的平移、旋轉(zhuǎn)一樣,造型的縮放必須依靠空間坐標(biāo)度量單位比例的縮放來(lái)實(shí)現(xiàn)。通常使用的空間坐標(biāo),在X、Y、Z坐標(biāo)軸上采用相同比例的度量單位,利用Transform坐標(biāo)變換節(jié)點(diǎn)中scale域scaleOrientation域和center域的域值設(shè)定不同方向坐標(biāo)軸的縮放比例,形成一個(gè)新的度量單位縮放比例不同的空間坐標(biāo)系,然后在新坐標(biāo)系中創(chuàng)建一個(gè)或一組經(jīng)過(guò)縮放處理的造型。4.2造型編組和素材調(diào)用VRML提供了一類具有編組功能的節(jié)點(diǎn),它們可以把多個(gè)造型作為自己的子節(jié)點(diǎn)組合成一個(gè)整體,一起進(jìn)行平移、旋轉(zhuǎn)、縮放、外觀設(shè)計(jì)、定義和調(diào)用等項(xiàng)操作。在設(shè)計(jì)中合理使用組節(jié)點(diǎn),能夠減少很多重復(fù)性的工作。這類組節(jié)點(diǎn)包括:Group編組節(jié)點(diǎn)、Transform坐標(biāo)變換節(jié)點(diǎn)、Inline內(nèi)聯(lián)接點(diǎn)、Anchor超級(jí)鏈接節(jié)點(diǎn)、Switch選擇開關(guān)節(jié)點(diǎn)、Billboard布告牌節(jié)點(diǎn)和LOD細(xì)節(jié)層次控制節(jié)點(diǎn)等。一、Group編組節(jié)點(diǎn)Group{eventInMFNodeaddChildreneventInMFNoderemoveChildrenexposedFieldMFNodechildren[]fieldSFVec3fbboxCenter000fieldSFVec3fbboxSize-1-1-1}二、素材調(diào)用的基本方法1.采用DEF節(jié)點(diǎn)定義及USE節(jié)點(diǎn)引用的方法2.利用Inline內(nèi)聯(lián)節(jié)點(diǎn),從本文件范圍之外的其他文件或者互聯(lián)網(wǎng)上,調(diào)用不需要進(jìn)行修改加工的素材,素材成為原場(chǎng)景的一部分3.利用帶有鏈接功能的Anchor錨節(jié)點(diǎn),把存儲(chǔ)在本機(jī)硬盤或互聯(lián)網(wǎng)上的素材作為一個(gè)新的完整的場(chǎng)景進(jìn)行調(diào)用,取代原來(lái)的場(chǎng)景4.利用PROTO語(yǔ)句和EXTERPROTO語(yǔ)句,在本文件內(nèi)外及互聯(lián)網(wǎng)上定義的原型節(jié)點(diǎn)和外部原型節(jié)點(diǎn),調(diào)用素材時(shí)可以根據(jù)需要對(duì)其原有的屬性進(jìn)行更改或賦予更多的功能三、節(jié)點(diǎn)的定義及引用VRML可以采用節(jié)點(diǎn)定義及引用的方法,在本文件范圍內(nèi)反復(fù)調(diào)用相同的素材。在虛擬現(xiàn)實(shí)的場(chǎng)景設(shè)計(jì)中,常常需要將相同的造型經(jīng)過(guò)不同的排列、旋轉(zhuǎn)組合成新的復(fù)雜造型。節(jié)點(diǎn)定義及引用的語(yǔ)法格式:節(jié)點(diǎn)定義:DEF節(jié)點(diǎn)名節(jié)點(diǎn){}節(jié)點(diǎn)引用:USE節(jié)點(diǎn)名四、lnline內(nèi)聯(lián)節(jié)點(diǎn)在VRML中,可以使用IMine內(nèi)聯(lián)節(jié)點(diǎn),從本文件范圍之外的其他文件或者互聯(lián)網(wǎng)的任意位置上,調(diào)用不需要進(jìn)行修改加工的素材。當(dāng)需要?jiǎng)?chuàng)建包括復(fù)雜場(chǎng)景和造型的大型虛擬世界的時(shí)候,VRML文件就會(huì)變得非常龐大,難于進(jìn)行管理和調(diào)試。采用內(nèi)聯(lián)的方法,可以將復(fù)雜的場(chǎng)景和造型分解成各自獨(dú)立的小文件,分別進(jìn)行設(shè)計(jì)和調(diào)試,作為素材模塊存在本地硬盤或者互聯(lián)網(wǎng)的任意位置上。構(gòu)建主程序時(shí),在需要插入素材模塊的位置,只需利用內(nèi)聯(lián)節(jié)點(diǎn)指明素材文件的地址和文件名即可完成調(diào)用和插入素材的過(guò)程,素材可以很方便地成為整個(gè)場(chǎng)景中的一部分。Inline{exposedFieldMFStringurl[]fieldSFVec3fbboxCenter000fieldSFVec3fbboxSize-1-1-1}五、Anchor錨鏈接節(jié)點(diǎn)內(nèi)聯(lián)節(jié)點(diǎn)是把存在本機(jī)硬盤或互聯(lián)網(wǎng)上的素材作為整個(gè)場(chǎng)景的一個(gè)組成部分調(diào)到原場(chǎng)景中來(lái),而錨鏈接節(jié)點(diǎn)則是把存在本機(jī)硬盤或互聯(lián)網(wǎng)上的素材作為一個(gè)新的完整的場(chǎng)景進(jìn)行調(diào)用,在原場(chǎng)景中設(shè)置一個(gè)錨點(diǎn)造型,當(dāng)瀏覽者點(diǎn)擊錨點(diǎn)造型時(shí),VRML瀏覽器即可鏈接到設(shè)定的素材文件,使瀏覽者從原場(chǎng)景中出來(lái),進(jìn)入到素材文件所構(gòu)建的新場(chǎng)景中去。Anchor{eventInMFNodeaddChildreneventInMFNoderemoveChildrenexposedFieldMFNodechildren[]exposedFieldSFStringdescription“"exposedFieldMFStringparameter[]exposedFieldMFStringurl[]fieldSFVec3fbboxCenter000fieldSFVec3fbboxSize-1-1-1}六、原型的定義和調(diào)用前面所講的調(diào)用素材的三種方法只適用于對(duì)素材不需要進(jìn)行加工處理、原汁原味調(diào)用的情況,如果需要對(duì)素材的屬性進(jìn)行更改或賦予更多的功能后調(diào)用,可以使用PROTO原型節(jié)點(diǎn)或EXTERPROTO外部原型節(jié)點(diǎn),它們可以定義可供修改的屬性,例如:顏色、材質(zhì)、外觀等,還可以根據(jù)需要增加素材的功能。
原型具有以下功能
(1)素材調(diào)用功能。原型可以作為素材庫(kù)反復(fù)調(diào)用。(2)節(jié)點(diǎn)擴(kuò)展功能。原型可以使用標(biāo)準(zhǔn)節(jié)點(diǎn)和自定義節(jié)點(diǎn)創(chuàng)建新的節(jié)點(diǎn)類型。(3)動(dòng)態(tài)更新和保護(hù)功能。原型可以通過(guò)設(shè)置接口中的域和事件,對(duì)虛擬現(xiàn)實(shí)中造型屬性進(jìn)行更改或者限制更改,從而達(dá)到場(chǎng)景的動(dòng)態(tài)更新和保護(hù)一些造型不被改動(dòng)的目的。(4)造型及動(dòng)作打包功能。VRML中標(biāo)準(zhǔn)節(jié)點(diǎn)本身均不具備行為自控能力,通過(guò)原型可以將造型與交互動(dòng)作、事件、腳本等VRML元素捆綁使用。(5)網(wǎng)絡(luò)運(yùn)作功能。原型(內(nèi)部原型)可以在當(dāng)前文件中定義和反復(fù)調(diào)用,外部原型可以在其他文件和網(wǎng)絡(luò)中定義,在當(dāng)前文件中反復(fù)調(diào)用。外部原型提供了跨越網(wǎng)絡(luò)調(diào)用的強(qiáng)大功能。4.3其他組節(jié)點(diǎn)的使用一、Billboard布告牌節(jié)點(diǎn)Billboard{eventInMFNodeaddChildreneventInMFNoderemoveChildrenexposedFieldSFVec3faxisOfRotation010exposedFieldMFNodechildren[]fieldSFVec3fbboxCenter000fieldSFVec3fbboxSize-1-1-1}二、Switch選擇開關(guān)節(jié)點(diǎn)Switch{exposedFieldMFNodechoice[]exposedFieldSFInt32whichChoice-1}三、LOD細(xì)節(jié)層次控制節(jié)點(diǎn)在創(chuàng)建VRML虛擬現(xiàn)實(shí)空間造型的時(shí)候,需要兼顧瀏覽器的渲染速度和造型刻畫真實(shí)度之間的關(guān)系。造型刻畫越細(xì)致就越接近于真實(shí),然而相應(yīng)的VRML文件的體積也越大,瀏覽器的渲染速度就越低,占用計(jì)算機(jī)CPU的時(shí)間就越長(zhǎng)。LOD(LevelofDetail)細(xì)節(jié)層次控制節(jié)點(diǎn)主要任務(wù)就是解決這個(gè)問(wèn)題,該節(jié)點(diǎn)可以根據(jù)瀏覽者與造型距離的遠(yuǎn)近,選擇按照不同的細(xì)致度刻畫的造型。當(dāng)造型距離比較遠(yuǎn)的時(shí)候,選擇用較低層次細(xì)節(jié)描述方法創(chuàng)建的造型,忽略一些細(xì)節(jié)而只刻畫造型的輪廓、形狀和大小,這與在真實(shí)世界中的觀察極為相似。遠(yuǎn)距離的物體只能看到模糊的輪廓而看不到細(xì)節(jié),可以減小造型文件的體積,提高瀏覽器的速度。當(dāng)造型距離比較近的時(shí)候,選擇用較高層次細(xì)節(jié)描述方法創(chuàng)建的造型,清晰地刻畫造型的紋理和細(xì)微特征,保證造型描述的逼真性,這一點(diǎn)也與我們?cè)谡鎸?shí)世界中的觀察相一致,物體距離越近,能夠看到的細(xì)節(jié)越多、越清晰。LOD{exposedFieldMFNodelevel[]fieldSFVec3fcenter000fieldMFFloatrange[]}第五章、虛擬現(xiàn)實(shí)的場(chǎng)景環(huán)境設(shè)計(jì)5.1創(chuàng)建背景5.2創(chuàng)建光源5.3創(chuàng)建霧化效果5.4創(chuàng)建觀察視點(diǎn)和視點(diǎn)導(dǎo)航5.1創(chuàng)建背景
在VRML中添加背景是最簡(jiǎn)單、最基本的場(chǎng)景環(huán)境設(shè)計(jì)方法。虛擬空間背景分為全景空間背景和天體空間背景兩種:全景空間背景是一個(gè)將造型包圍在里面的空間立方體,具有前、后、左、右、上、下六個(gè)平面,可以根據(jù)需要設(shè)置不同的材質(zhì)和圖片。天體空間背景是一個(gè)無(wú)窮大的空間球體,分為天空背景和地面背景。天空和地面的劃分以地平線為界。地平線位于原始坐標(biāo)系XOZ平面向后延伸的無(wú)窮遠(yuǎn)處,上面的球體是天空,下面的球體是地面。背景和造型的嵌套關(guān)系是:造型在最里面,全景空間背景的立方體為中間包圍層,天體空間背景的無(wú)窮大球體是最外面的包圍層。如果同時(shí)增加了全景空間和天體空間兩種背景,可以通過(guò)設(shè)置全景空間背景的透明度值決定能否看到天空和地面的顏色。默認(rèn)情況下,沒(méi)有全景空間背景,天空和地面均為黑色??臻g模型 以VRML空間坐標(biāo)系的原點(diǎn)為中心的無(wú)限大球體 以Z-X平面為地平面
Y+向?yàn)樘炜?/p>
Y-向?yàn)榈孛嫣炜战?天空位置與Y+的夾角地面角 地面位置與Y-的夾角Background{skyAngle[天空角1,天空角2,……]skyColor[天空色0,天空色1,天空色2,……]groundAngle[地面角1,地面角2,……]groundColor[地面色0,地面色1,地面色2,……]}天空色0為0度天空位置的顏色地面色0為0度地面位置的顏色天空色1,2,……對(duì)應(yīng)天空角1,2,……地面色1,2,……對(duì)應(yīng)地面角1,2,……系統(tǒng)自動(dòng)過(guò)渡相鄰位置的顏色角度的單位為弧度顏色由r、g、b分量合成顏色分量的數(shù)值范圍:0.0~1.0一些常用角度的弧度值(弧度=角度*π/180)5.2創(chuàng)建光源
現(xiàn)實(shí)世界中的光源來(lái)自于各種能發(fā)光的物體,例如太陽(yáng)、燈泡、蠟燭、激光器等。
在默認(rèn)情況下,VRML瀏覽器自動(dòng)生成一個(gè)白色頭燈光源headlight。此光源為平行光束,與瀏覽者的視點(diǎn)同步運(yùn)動(dòng),始終照亮瀏覽者的前方,和井下工作的礦工帽子上的頭燈很相似。頭燈光源可以通過(guò)設(shè)置NavigationInfo節(jié)點(diǎn)的headlight域的域值,控制光源打開或關(guān)閉(FALSE),默認(rèn)缺省情況下,頭燈為打開狀態(tài),光源的顏色無(wú)法改變。本章之前所有的實(shí)例均采用這種默認(rèn)的白色頭燈光源。除此之外,VRML中還可以人工設(shè)置三種類型的光源:點(diǎn)光源:點(diǎn)光源
(PointLight節(jié)點(diǎn)),平行光源(DirectionalLight節(jié)點(diǎn))和錐光源(SpotLight節(jié)點(diǎn))。
PointLight點(diǎn)光源節(jié)點(diǎn)點(diǎn)光源由發(fā)光點(diǎn)向四面八方發(fā)射亮度相同的光線,各個(gè)方向具有相同性。點(diǎn)光源節(jié)點(diǎn)既可作為獨(dú)立的節(jié)點(diǎn),也可作為其他組節(jié)點(diǎn)的子節(jié)點(diǎn)使用。PointLight{exposedFieldSFFloatambientIntensity0exposedFieldSFVec3fattenuation100exposedFieldSFColorcolor111exposedFieldSFFloatintensity1exposedFieldSFVec3flocation000exposedFieldSFBoolonTRUEexposedFieldSFFloatradius100}DirectionalLight平行光源節(jié)點(diǎn)現(xiàn)實(shí)世界中的平行光源是從無(wú)窮遠(yuǎn)處照射,因此其光線是平行指向同一個(gè)方向的。例如,太陽(yáng)基本是一個(gè)平行光源,太陽(yáng)離地球相當(dāng)遠(yuǎn),當(dāng)太陽(yáng)的光線到達(dá)地球時(shí)基本是平行的。DirectionalLight{exposedFieldSFFloatambientIntensity0exposedFieldSFColorcolor111exposedFieldSFVec3fdirection00-1exposedFieldSFFloatintensity1exposedFieldSFBoolonTRUE}
SpotLight錐光源節(jié)點(diǎn)
錐光源即光線照射呈光錐狀,光源位于圓錐體的頂點(diǎn),光線被限制在一個(gè)圓錐體的照射空間里;造型只有位于圓錐體空間中才會(huì)被照亮。VRML中,常常利用SpotLight節(jié)點(diǎn)創(chuàng)建錐光源,模擬一些特殊光照效果的場(chǎng)景,如舞臺(tái)燈光、探照燈、藝術(shù)攝影等。
SpotLight{exposedFieldSFFloatambientIntensity0exposedFieldSFVec3fattenuation100exposedFieldSFFloatbeamWidth1.570796exposedFieldSFColorcolor111exposedFieldSFFloatcutOffAngle0.785398exposedFieldSFVec3fdirection00-1exposedFieldSFFloatintensity1exposedFieldSFVec3flocation000exposedFieldSFBoolonTRUEexposedFieldSFFloatradius100}創(chuàng)建陰影效果VRML光源與自然光源的主要差別在于不能自動(dòng)產(chǎn)生陰影。自然界的光線無(wú)法穿過(guò)不透明的物體,當(dāng)光線照射這些物體時(shí)就會(huì)出現(xiàn)陰影。由于VRML中的光照只是對(duì)造型表面明暗程度的一種模擬,造型對(duì)光線沒(méi)有遮擋作用,光線可以透過(guò)造型完全照射到后面的物體上,所以VRML中的光照只能改變?cè)煨捅砻娴拿靼捣植?不能自動(dòng)產(chǎn)生陰影的效果。如果想在虛擬世界中模擬自然界的光照效果,則必須人工設(shè)置陰影造型。
陰影的形狀常常是造型沿光線照射方向形狀的壓縮和變形,一般利用Transform節(jié)點(diǎn)的scale域模擬陰影的形狀。陰影的顏色通常利用Material節(jié)點(diǎn)的域值設(shè)置為灰色或者半透明的深灰色。有些陰影形狀也可以借助于簡(jiǎn)單造型來(lái)模擬。5.3創(chuàng)建霧化效果在vrml中使用Fog霧節(jié)點(diǎn)創(chuàng)建霧化效果,模擬自然界的大氣現(xiàn)象,使虛擬現(xiàn)實(shí)的場(chǎng)景更加逼真、更加具有層次感,創(chuàng)造一種朦朧的美。霧化效果主要控制兩個(gè)因素:一是霧的顏色,二是霧的濃度。霧的顏色可以按照實(shí)際情況任意選擇,但通常使用白色,因?yàn)榘咨咏匀唤珈F的本色。霧的濃度與人在霧中的能見度相反,霧越濃人的能見度越差,因此可以通過(guò)設(shè)定觀察者能見范圍的大小來(lái)調(diào)整霧的濃淡程度。
Fog{exposedFieldSFColorcolor111exposedFieldSFStringfogType"LINEAR"exposedFieldSFFloatvisibilityRange0eventInSFBoolset_bindeventOutSFBoolisBound}5.4創(chuàng)建觀察視點(diǎn)和視點(diǎn)導(dǎo)航Viewpoint視點(diǎn)節(jié)點(diǎn)Viewpoint{eventInSFBoolset_bindexposedFieldSFFloatfieldOfView0.785398exposedFieldSFBooljumpTRUEexposedFieldSFRotationorientation0010exposedFieldSFVec3fposition0010fieldSFStringdescription""eventOutSFTimebindTimeeventOutSFBoolisBound}NavigationInfo導(dǎo)航節(jié)點(diǎn)
NavigationInfo{eventInSFBoolset_bindexposedFieldMFFloatavatarSize[0.25,1.6,0.75]exposedFieldSFBoolheadlightTRUEexposedFieldSFFloatspeed1.0exposedFieldMFStringtype"WALK"exposedFieldSFFloatvisibilityLimit0.0eventOutSFBoolisBound}第六章、造型的動(dòng)畫效果和交互功能6.1造型的動(dòng)畫效果6.2造型的交互功能6.1造型的動(dòng)畫效果在現(xiàn)實(shí)世界中,很多東西都是隨時(shí)間發(fā)生變化的,例如太陽(yáng)的升起和降落、花蕾的綻開和凋謝、樹葉由綠變黃、魚兒戲水、小鳥飛翔、汽車行駛、表針轉(zhuǎn)動(dòng)等等。這些就是V盯住要在虛擬環(huán)境中,通過(guò)人為設(shè)置實(shí)現(xiàn)的動(dòng)畫效果。VRML創(chuàng)建動(dòng)畫效果的基本方法是:由時(shí)間傳感器控制動(dòng)畫的時(shí)鐘,包括動(dòng)畫開始的時(shí)間、停止的時(shí)間、循環(huán)的周期等:然后將時(shí)間控制參數(shù)作為事件傳送給各種插補(bǔ)器節(jié)點(diǎn),插補(bǔ)器依據(jù)事先設(shè)計(jì)好的時(shí)間關(guān)鍵點(diǎn)和動(dòng)畫關(guān)鍵值,在瀏覽器渲染時(shí)形成連續(xù)變化的動(dòng)畫效果。
特點(diǎn):隨時(shí)間改變
--位置、方向、顏色等
--VRML中:不斷改變節(jié)點(diǎn)的某個(gè)域的值兩個(gè)基本的控制條件:
--何時(shí)開始、何時(shí)結(jié)束
--變化速度根據(jù)所插值的數(shù)據(jù)類型不同插補(bǔ)器節(jié)點(diǎn)可分為六種:顏色差補(bǔ)器(ColorInterpolator節(jié)點(diǎn))、位置插補(bǔ)器(PositionInterpolator節(jié)點(diǎn))、朝向插補(bǔ)器(OrientationInterpolator節(jié)點(diǎn))、標(biāo)量插補(bǔ)器(ScalarInterpolator節(jié)點(diǎn))、坐標(biāo)插補(bǔ)器(CoordinateInterpolator節(jié)點(diǎn)〉、法向量插補(bǔ)器(NomalInterpolator節(jié)點(diǎn))。事件與路由節(jié)點(diǎn)由域和事件組成,其中域的取值決定了節(jié)點(diǎn)所創(chuàng)建的造型或場(chǎng)景環(huán)境的當(dāng)前狀態(tài);事件則為節(jié)點(diǎn)提供了接收外界信息或向外界發(fā)送信息的能力。事件是按照指定的路徑從一個(gè)節(jié)點(diǎn)發(fā)往另一個(gè)節(jié)點(diǎn)的信息,節(jié)點(diǎn)通過(guò)事件入口[也稱入事件(eventIn)]接收來(lái)自其他節(jié)點(diǎn)的信息改變自己原有域值,通過(guò)事件出口[也稱出事件(eventout)]發(fā)送自己的信息以改變其他節(jié)點(diǎn)的域值。從一個(gè)節(jié)點(diǎn)的事件出口到另一個(gè)節(jié)點(diǎn)的事件入口,用來(lái)傳送事件的路徑稱為路由(route)。通過(guò)路由可以將多個(gè)節(jié)點(diǎn)聯(lián)系在一起,形成事件體系,使事件得以傳播而引起節(jié)點(diǎn)域值的變化。路由(ROUTE)將兩個(gè)節(jié)點(diǎn)連接起來(lái):
--輸出節(jié)點(diǎn)的名稱和eventOut域的名稱--輸入節(jié)點(diǎn)的名稱和eventIn域的名稱示例
ROUTEMySender.rotation_changedTOMyReceiver.set_rotationROUTE和TO必須大寫TimeSensor事件傳感器節(jié)點(diǎn)TimeSensor{exposedFieldSFTimecycleInterval1exposedFieldSFBoolenabledTRUEexposedFieldSFBoolloopFALSEexposedFieldSFTimestartTime0exposedFieldSFTimestopTime0eventOutSFTimecycleTimeeventOutSFFloatfraction_changedeventOutSFBoolisActiveeventOutSFTimetime}ColorInterpolator顏色插補(bǔ)器ColorInterpolator{eventInSFFloatset_fractionexposedFieldMFFloatkey[]exposedFieldMFColorkeyValue[]eventOutSFColorvalue_changed}ScalarInterpolator標(biāo)量插補(bǔ)器ScalarInterpolator{eventInSFFloatset_fractionexposedFieldMFFloatkey[]exposedFieldMFFloatkeyValue[]eventOutSFFloatvalue_changed}PositionInterpolator位置插補(bǔ)器PositionInterpolator{eventInSFFloatset_fractionexposedFieldMFFloatkey[]exposedFieldMFVec3fkeyValue[]eventOutSFVec3fvalue_changed}OrientationInterpolator朝向插補(bǔ)器OrientationInterpolator{eventInSFFloatset_fractionexposedFieldMFFloatkey[]exposedFieldMFRotationkeyValue[]eventOutSFRotationvalue_changed}CoordinateInterpolator坐標(biāo)插補(bǔ)器CoordinateInterpolator{eventInSFFloatset_fractionexposedFieldMFFloatkey[]exposedFieldMFVec3fkeyValue[]eventOutMFVec3fvalue_changed}NormalInterpolator法向量插補(bǔ)器NormalInterpolator{eventInSFFloatset_fractionexposedFieldMFFloatkey[]exposedFieldMFVec3fkeyValue[]eventOutMFVec3fvalue_changed}6.2造型的交互功能
VRML場(chǎng)景中的造型能夠?qū)g覽者的動(dòng)作做出反應(yīng),稱之為交互功能。虛擬現(xiàn)實(shí)技術(shù)的魅力在于憑借強(qiáng)大的交互功能,使瀏覽者在虛擬世界中如同身臨其境。例如,瀏覽者點(diǎn)擊電視開關(guān),可以播放影視片斷;走近賓館,大門可以自動(dòng)打開:可以控制造型的位移或旋轉(zhuǎn)等等。大多數(shù)節(jié)點(diǎn)只能創(chuàng)建靜態(tài)造型,時(shí)間傳感器和插補(bǔ)器雖然可以使造型產(chǎn)生連續(xù)變化的動(dòng)畫效果,但是動(dòng)畫的起止時(shí)間和變化規(guī)律都是設(shè)計(jì)者事先預(yù)置的,瀏覽者只是觀賞而無(wú)法參與控制。要想實(shí)現(xiàn)人機(jī)交互,首先要感知瀏覽者的操作或者在場(chǎng)景中的觀察位置,然后對(duì)此操作或者位置移動(dòng)做出反應(yīng)。
VRML使用七種傳感器節(jié)點(diǎn)完成感知和反應(yīng)的交互功能(時(shí)間傳感器除外,前面己介紹),其中包括:TouchSensor觸摸傳感器、PlaneSensor平面?zhèn)鞲衅?、Cylindersensor圓柱體傳感器、Spheresensor球體傳感器、ProximitySensor接近傳感器、VisibilitySensor可視傳感器、Collision碰撞傳感器。第一類傳感器:通過(guò)感知瀏覽者對(duì)于鼠標(biāo)的操作行為(移動(dòng)鼠標(biāo)、點(diǎn)擊鼠標(biāo)、拖動(dòng)鼠標(biāo)),觸發(fā)并輸出事件,實(shí)現(xiàn)人機(jī)交互的功能。這類傳感器有TouchSensor觸摸傳感器、PlaneSensor平面?zhèn)鞲衅?、CylinderSensor圓柱體傳感器、SphereSensor球體傳感器。第二種傳感器:通過(guò)感知瀏覽者在虛擬場(chǎng)景中的觀察位置,也就是當(dāng)瀏覽者的視點(diǎn)與造型的接近程度達(dá)到一定范圍的時(shí)候,觸發(fā)并輸出事件,實(shí)現(xiàn)人機(jī)交互功能。這類傳感器有ProximitySensor接近傳感器、VisibilitySensor可視傳感器、Collision碰撞傳感器。
TouchSensor觸摸傳感器TouchSensor{exposedFieldSFBoolenabledTRUEeventOutSFVec3fhitNormal_changedeventOutSFVec3fhitPoint_changedeventOutSFVec2fhitTexCoord_changedeventOutSFBoolisActiveeventOutSFBoolisOvereventOutSFTimetouchTime}PlaneSensor平面?zhèn)鞲衅鱌laneSensor{exposedFieldSFBoolautoOffsetTRUEexposedFieldSFBoolenabledTRUEexposedFieldSFVec2fmaxPosition-1-1exposedFieldSFVec2fminPosition00exposedFieldSFVec3foffset000eventOutSFBoolisActiveeventOutSFVec3ftrackPoint_changedeventOutSFVec3ftranslation_changed}CylinderSensor圓柱體傳感器CylinderSensor{exposedFieldSFBoolautoOffsetTRUEexposedFieldSFFloatdiskAngle0.262exposedFieldSFBoolenabledTRUEexposedFieldSFFloatmaxAngle-1exposedField
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租借游艇問(wèn)題課程設(shè)計(jì)
- 算法綜合設(shè)計(jì)課程設(shè)計(jì)
- 補(bǔ)貨管理的優(yōu)化與實(shí)施方案計(jì)劃
- 健身器材銷售業(yè)績(jī)總結(jié)
- 2024年煙花爆竹安全的應(yīng)急預(yù)案
- 銀行工作總結(jié)創(chuàng)新發(fā)展成果彰顯
- 醫(yī)藥包材采購(gòu)心得總結(jié)
- 娛樂(lè)活動(dòng)行業(yè)顧問(wèn)工作總結(jié)提升娛樂(lè)活動(dòng)吸引力
- 服務(wù)業(yè)會(huì)計(jì)工作內(nèi)容分析
- 2024年設(shè)備的管理制度范本
- 通用勞務(wù)合同Word模板下載(多份)
- 第七講 磁電選
- 昆蟲的農(nóng)業(yè)和經(jīng)濟(jì)價(jià)值
- 天津市部分區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 長(zhǎng)期照護(hù)服務(wù)流程
- 精心打造東北大學(xué)近四年C語(yǔ)言理論考試試題及答案
- 《Power Bi應(yīng)用》課程標(biāo)準(zhǔn)
- 《瘋狂動(dòng)物城》全本臺(tái)詞中英文對(duì)照
- 幼兒園的品格與道德教育主題班會(huì)課件
- 2024抗菌藥物分級(jí)管理及臨床合理應(yīng)用考核試題及答案
- 儲(chǔ)能系統(tǒng)的應(yīng)急預(yù)案措施
評(píng)論
0/150
提交評(píng)論