版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
虛擬現(xiàn)實(shí)技術(shù)主講:楊文暉第四章VRML1VRML簡介2VRML編程語法基礎(chǔ)3VRML基本節(jié)點(diǎn)編程4群節(jié)點(diǎn)創(chuàng)建VRML立體空間造型5VRML場景效果節(jié)點(diǎn)編程設(shè)計(jì)6VRML動(dòng)態(tài)感知虛擬現(xiàn)實(shí)節(jié)點(diǎn)7VRML通用接口節(jié)點(diǎn)8VRML實(shí)例編程1VRML簡介虛擬現(xiàn)實(shí)三維立體網(wǎng)絡(luò)程序設(shè)計(jì)語言VRML是計(jì)算機(jī)科學(xué)的前沿技術(shù)。作為第二代網(wǎng)絡(luò)程序設(shè)計(jì)語言的VRML完全改變了網(wǎng)絡(luò)的二維平面世界,實(shí)現(xiàn)了真正意義上的三維立體網(wǎng)絡(luò)世界、動(dòng)態(tài)交互與智能感知等,實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)、多媒體及人工智能的完美結(jié)合使人們真正感受到21世紀(jì)計(jì)算機(jī)網(wǎng)絡(luò)世界的無窮魅力。1.1VRML的發(fā)展歷史計(jì)算機(jī)技術(shù)的迅猛發(fā)展,已由初級(jí)計(jì)算、實(shí)時(shí)控制、事務(wù)處理等迅速朝著巨型化、微型化、網(wǎng)絡(luò)化、智能化及多媒體化等方面發(fā)展。計(jì)算機(jī)將人類社會(huì)帶人嶄新的信息時(shí)代。尤其是計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展;使我們的地球變成了一個(gè)地球村早期的網(wǎng)絡(luò)系統(tǒng)主要傳送文字、數(shù)字等信息,但多媒體技術(shù)在網(wǎng)絡(luò)上的應(yīng)用,使目前計(jì)算機(jī)網(wǎng)絡(luò)無法承受如此巨大的信息量。為此,人們開發(fā)出信息高速公路,即寬帶網(wǎng)絡(luò)系統(tǒng),而在信息高速公路上馳騁的高速跑車就是VRML虛擬現(xiàn)實(shí)建模語言系統(tǒng),也就是“虛擬現(xiàn)實(shí)三維立體網(wǎng)絡(luò)程序設(shè)計(jì)語言”。VRML(VirtuslRealityModelingLanguage)是什么?虛擬現(xiàn)實(shí)建模語言,是一種三維造型和渲染的圖形描述語言,通過創(chuàng)建一個(gè)虛擬場景以達(dá)到現(xiàn)實(shí)中的效果。VRML給網(wǎng)絡(luò)帶來了什么?
VRML支持功能大大改變了原來萬維網(wǎng)上單調(diào)、交互性較差的弱點(diǎn),創(chuàng)建一個(gè)全新的可進(jìn)入、可參與的三維虛擬現(xiàn)實(shí)世界。
VRML的重要性?是虛擬現(xiàn)實(shí)三維立體網(wǎng)絡(luò)程序設(shè)計(jì)語言,是寬帶網(wǎng)絡(luò)、多媒體與人工智能相融合的高科技產(chǎn)品,是把握未來網(wǎng)絡(luò)、多媒體及人工智能的關(guān)鍵技術(shù)。VRML虛擬現(xiàn)實(shí)建模語言用來在網(wǎng)絡(luò)上創(chuàng)建逼真的三維虛擬場景。它改變了網(wǎng)絡(luò)上2D畫面的狀態(tài),并能實(shí)現(xiàn)3D動(dòng)畫效果,特別是改變了當(dāng)前網(wǎng)絡(luò)與用戶交互的局限性,使得人機(jī)交互更加方便、靈活,使虛擬世界的真實(shí)性、交互性和動(dòng)態(tài)性得到了更充分的體現(xiàn)。
VRML是虛擬現(xiàn)實(shí)建模語言,是一種三維造型和渲染的圖形描述性語言,它把“虛擬世界”看做一個(gè)“場景”,而場景中的一切都被看做“對(duì)象”(也稱為節(jié)點(diǎn)),對(duì)每一個(gè)對(duì)象的描述就構(gòu)成了.wrl文件。發(fā)展歷史1.2VRML的特點(diǎn)虛擬現(xiàn)實(shí)三維立體網(wǎng)絡(luò)程序設(shè)計(jì)語言具有4大特點(diǎn)。
(1)VRML具有強(qiáng)大的網(wǎng)絡(luò)功能,可以通過運(yùn)行VRML程序直接接入Intemet??梢詣?chuàng)建立體網(wǎng)頁與網(wǎng)站。
(2)具有多媒體功能,能夠?qū)崿F(xiàn)多媒體制作,合成聲音、圖像以達(dá)到影視效果。
(3)創(chuàng)建三維立體造型和場景,實(shí)現(xiàn)更好的立體交互界面
(4)具有人工智能,主要體現(xiàn)在VRML具有感知功能??梢岳酶兄獋鞲衅鞴?jié)點(diǎn)來感受用戶及造型之間的動(dòng)態(tài)交互感覺。虛擬現(xiàn)實(shí)三維立體網(wǎng)絡(luò)程序設(shè)計(jì)語言VRML是第二代Web網(wǎng)絡(luò)程序設(shè)計(jì)語言,是21世紀(jì)主流高科技軟件開發(fā)工具,是把握未來寬帶網(wǎng)絡(luò)、多媒體及人工智能的關(guān)鍵技術(shù)。掌握了虛擬現(xiàn)實(shí)三維立體網(wǎng)絡(luò)程序設(shè)計(jì)語言VRML,就掌握了軟件開發(fā)的主動(dòng)權(quán),可以在未來網(wǎng)絡(luò)世界里馳騁翱翔。1.3VRML的發(fā)展前景虛擬現(xiàn)實(shí)建模語言VRML設(shè)計(jì)源于虛擬現(xiàn)實(shí)技術(shù)。虛擬現(xiàn)實(shí)技術(shù)是20世紀(jì)末發(fā)展起來的涉及眾多學(xué)科的高新技術(shù),它是集計(jì)算機(jī)、仿真、微電子、傳感與測量技術(shù)于一體的高新科技的融合。而虛擬現(xiàn)實(shí)建模語言VRML正是利用虛擬現(xiàn)實(shí)技術(shù)在計(jì)算機(jī)中創(chuàng)建一種虛擬環(huán)境,通過視覺、聽覺、觸覺、味覺、嗅覺及生理反映等感知器,使用戶產(chǎn)生一種與現(xiàn)實(shí)生活相同的感受,有身臨其境的感覺,甚至生理感覺,可實(shí)現(xiàn)用戶與虛擬現(xiàn)實(shí)環(huán)境直接進(jìn)行交互。虛擬現(xiàn)實(shí)建模語言VRML涉及計(jì)算機(jī)網(wǎng)絡(luò)、多媒體和人工智能技術(shù)三大領(lǐng)域及自然科學(xué)、社會(huì)科學(xué)和哲學(xué)。具體地講,虛擬現(xiàn)實(shí)環(huán)境一般包括計(jì)算機(jī)圖形學(xué)、圖像處理、模式識(shí)別、傳感器、語音處理、網(wǎng)絡(luò)技術(shù)、并行處理、人工智能等高新技術(shù),還涉及天文、地理、數(shù)學(xué)、物理、化學(xué)、美學(xué)、醫(yī)學(xué)、軍事、生理學(xué)和心理學(xué)等領(lǐng)域。計(jì)算機(jī)硬件技術(shù)術(shù)、網(wǎng)絡(luò)絡(luò)技術(shù)及及多媒體體技術(shù)的融合與與高速發(fā)發(fā)展使得得虛擬現(xiàn)現(xiàn)實(shí)技術(shù)術(shù)獲得了了長足的的發(fā)展,,從而虛虛擬現(xiàn)實(shí)實(shí)技術(shù)能能在網(wǎng)絡(luò)絡(luò)上得以以實(shí)現(xiàn)和和發(fā)展。。目前網(wǎng)站站使用的的均為二二維圖像像與動(dòng)畫畫網(wǎng)頁,,而采用用虛擬現(xiàn)現(xiàn)實(shí)建模模語言VRML可以在網(wǎng)網(wǎng)站上設(shè)設(shè)計(jì)出虛虛擬現(xiàn)實(shí)實(shí)三維立體體網(wǎng)頁場場景和立立體景物物利用虛擬擬現(xiàn)實(shí)技技術(shù)制造造出一個(gè)個(gè)逼真““虛擬人人”,為為醫(yī)學(xué)實(shí)習(xí)、治治療、手手術(shù)及科科研做出出貢獻(xiàn),,也可應(yīng)應(yīng)用于軍事設(shè)計(jì)一個(gè)個(gè)“模擬擬戰(zhàn)場””,進(jìn)行行大規(guī)模模高科技技軍事演演習(xí),這這樣既可可以節(jié)省省大量費(fèi)費(fèi)用,又又使部隊(duì)隊(duì)得到了了鍛煉。。在航空航天天發(fā)射中,,也可以以制造一一個(gè)“模模擬航天天器”,,模擬整整個(gè)航天天器的生生產(chǎn)、發(fā)發(fā)射、運(yùn)運(yùn)行和回回收的全全過程,,從而可可以節(jié)約約大量的的經(jīng)費(fèi)。。虛擬現(xiàn)實(shí)實(shí)技術(shù)還還可以應(yīng)應(yīng)用于工業(yè)、農(nóng)農(nóng)業(yè)、商商業(yè)、教教學(xué)、娛娛樂和科科研等方面應(yīng)用前景景非常廣廣闊。虛虛擬現(xiàn)實(shí)實(shí)建模語語言VRML是21世紀(jì)計(jì)算機(jī)網(wǎng)網(wǎng)絡(luò)、多多媒體及及人工智智能為一體的的最為優(yōu)優(yōu)秀的開開發(fā)工具具和手段段。1.4VRML瀏覽器1.5VRML編輯器用記事本本來編寫寫源程序序VRMLPad專用編輯輯器由ParallelGraphics公司開發(fā)發(fā)的VRML開發(fā)工具具2VRML編程語法法基礎(chǔ)介紹VRML的文件結(jié)構(gòu)構(gòu)、文件件頭及注注釋等VRML文件主要要由節(jié)點(diǎn)點(diǎn)、事件件、場景景、原型型、腳本本及路由由等組成成,其中中節(jié)點(diǎn)又又由域名名、域值值及域值值類型組組成;介紹VRML立體空間間的計(jì)量單位位,包括立立體空間間坐標(biāo)、、長度單單位、角角度單位位及立體體空間的的顏色等等節(jié)點(diǎn)集2.1VRML基本概念念虛擬現(xiàn)實(shí)實(shí)三維立立體網(wǎng)絡(luò)絡(luò)(頁)程序設(shè)計(jì)計(jì)語言VRML涉及有關(guān)關(guān)的基本本概念和和名詞包包括:節(jié)點(diǎn)域事件路由原型場景腳本它是編寫寫VRML的基礎(chǔ)。。什么是節(jié)節(jié)點(diǎn)?節(jié)點(diǎn)是VRML文件最基基本的組成要素素,是VRML文件基本本的組成成部分。。節(jié)點(diǎn)是對(duì)對(duì)客觀世世界中各各種事物物、對(duì)象象、概念念的抽象描述述。VRML文件就是是由許多多節(jié)點(diǎn)之之間并列或?qū)訉訉忧短滋锥鴺?gòu)成的的什么是事事件?每一個(gè)節(jié)節(jié)點(diǎn)一般般都有兩兩種事件件,即即一個(gè)““入事件件”和一一個(gè)““出事件件”。在多數(shù)情情況下,,事件只只是一個(gè)個(gè)要改變域值值的請(qǐng)求求:“入事件”請(qǐng)求節(jié)節(jié)點(diǎn)改變變自己某某個(gè)域的的值“出事件”則是是請(qǐng)求別別的節(jié)點(diǎn)點(diǎn)改變它它的某個(gè)個(gè)域值。。什么是原原型?原型是用用戶建立立的一種種新的節(jié)點(diǎn)點(diǎn)類型,而不是一一種“節(jié)節(jié)點(diǎn)”。。進(jìn)行了原原型定義義就相當(dāng)當(dāng)于擴(kuò)充了VRML的標(biāo)準(zhǔn)節(jié)節(jié)點(diǎn)類型型集。節(jié)點(diǎn)的原原型是節(jié)節(jié)點(diǎn)對(duì)其中的的域、入入事件和和出事件件的聲明明,可以通通過原型型擴(kuò)充VRML節(jié)點(diǎn)類型型集原型的定定義可以包含在使用該原原型的文文件中,,也可以在在外部定義義原型可以以根據(jù)其他的VRML節(jié)點(diǎn)來定義,,也可以利利用特定定于瀏覽覽器的擴(kuò)展機(jī)制制來定義。。什么是物物體的造造型?物體的造造型,即即場景圖圖由描述對(duì)對(duì)象及其其屬性的的節(jié)點(diǎn)組組成。在場景圖圖中,一一類是由由節(jié)點(diǎn)構(gòu)構(gòu)成的層層次體系系組成;;另一類類是由節(jié)節(jié)點(diǎn)事件件和路由由構(gòu)成。。什么是是腳本本?腳本是是一套套程序序,與與其他他高級(jí)級(jí)語言言或數(shù)數(shù)據(jù)庫庫的接接口。。在VRML中可以以用Script節(jié)點(diǎn)利利用Java或JavaScript語言編編寫的的程序序腳本本來擴(kuò)充VRML的功能能。腳本通通常作作為一一個(gè)事事件級(jí)級(jí)聯(lián)的的一部部分而而執(zhí)行行,腳腳本可可以接接受事事件,,處理理事件件中的的信息息,還還可以以產(chǎn)生生基于于處理理結(jié)果果的輸輸出事事件。。什么是是路由由?路由是是產(chǎn)生生事件件和接接受事事件的的節(jié)點(diǎn)之之間的的連接接通道道。路由不不是節(jié)節(jié)點(diǎn),,路由由說明明是為為了確確立被被指定定的域域的事事件之之間的的路徑徑而人為設(shè)設(shè)定的的框架架。路由說說明可以在在VRML文件的的頂部部,也可以以在文文件節(jié)節(jié)點(diǎn)的的某一一個(gè)域域中。。在VRML文件中中路由說說明與與路徑徑無關(guān)關(guān),它既既可以以在源源節(jié)點(diǎn)點(diǎn)之前前,也也可以以在目目標(biāo)節(jié)節(jié)點(diǎn)之之后,,在一一個(gè)節(jié)節(jié)點(diǎn)中中進(jìn)行行說明明,與與該節(jié)節(jié)點(diǎn)無無任何何聯(lián)系系。路由的的作用用是將各個(gè)個(gè)不同同的節(jié)節(jié)點(diǎn)聯(lián)聯(lián)系在一起起,使使虛擬擬空間間具有有更好好的交交互性性、立立體感感、動(dòng)動(dòng)感性性和靈靈活性性。什么是是事件件體系系?在場景景圖中中,除除了節(jié)節(jié)點(diǎn)構(gòu)構(gòu)成的的層次次體系系結(jié)構(gòu)構(gòu)外,,還有有一個(gè)個(gè)““事事件體體系””。事件體體系由相互互通信信的節(jié)節(jié)點(diǎn)組組成。在大多多數(shù)的的VRML節(jié)點(diǎn)中中每一個(gè)個(gè)事件件都有有一個(gè)個(gè)輸入入和輸輸出接接口。輸入接接口就就是能能夠接接收事事件的的節(jié)點(diǎn)點(diǎn),稱稱為eventIn,即入入事件件(也稱事事件入入口);輸出接接口就就是發(fā)發(fā)送事事件的的節(jié)點(diǎn)點(diǎn),稱稱為eventOut,即為為出事事件(也稱事事件出出口)。一個(gè)節(jié)節(jié)點(diǎn)一一般具具有多多個(gè)不不同的的入事事件和和出事事件,,但有有一些些節(jié)點(diǎn)點(diǎn)不同同時(shí)具具有這這兩種種事件件。入事件件和出出事件件通過過路徑徑相連連,這這就是是VRML文件除除節(jié)點(diǎn)點(diǎn)外的的另一一基本本組成成部分分路由由(ROUTE)。ROUTE語句把把事件件出口口和事事件入入口聯(lián)聯(lián)系起起來,,從而而構(gòu)成成了““事件件體系系”。2.2VRML立體空空間計(jì)計(jì)量單單位虛擬現(xiàn)現(xiàn)實(shí)建建模語語言(VRML)要?jiǎng)?chuàng)建建立體背背景空空間和立體造造型空空間就需要要定位需要立立體空空間坐坐標(biāo)系系相應(yīng)的的長度度角度單單位顏色VRML立體空空間坐坐標(biāo)系系VRML立體空空間物物體造造型定定位依依靠VRML立體空空間坐坐標(biāo)系系來實(shí)實(shí)現(xiàn)。。這些些坐標(biāo)標(biāo)軸為為每個(gè)個(gè)空間間物體體的造造型定定義了了一個(gè)個(gè)坐標(biāo)標(biāo)系。。它包包括::X軸、Y軸、Z軸X軸、Y軸和Z軸相交的點(diǎn)點(diǎn)構(gòu)成了該該坐標(biāo)系的的原點(diǎn)X軸的正方向向指向右邊邊,Y軸的正方向向指向正上上方,Z軸的正方向向指向前方方(即瀏覽者),如圖2-1所示。空間間物體的造造型在該坐坐標(biāo)系中的的位置由相相對(duì)于該坐坐標(biāo)原點(diǎn)的的三維坐標(biāo)標(biāo)來確定。。xzy圖2-1空間坐標(biāo)系VRML長度單位VRML三維立體空空間長度單單位是統(tǒng)一的,只有一一個(gè)單位標(biāo)標(biāo)量,即VRML單位。VRML單位并不是是一個(gè)絕對(duì)對(duì)的尺寸大大小。VRML尺寸和現(xiàn)實(shí)實(shí)中的長度度單位不具有任何何可比性,只有在VRML單位間才具具有可比性性VRML單位一般比比實(shí)際的長長度單位要要小。在實(shí)實(shí)際開發(fā)工工作中,考考慮到多個(gè)個(gè)開發(fā)者在在開發(fā)中協(xié)協(xié)調(diào)統(tǒng)一的的工作,通通常都指定定一個(gè)統(tǒng)一一的參考標(biāo)標(biāo)準(zhǔn),即以以實(shí)際中的的長度單位位為準(zhǔn)。VRML角度單位在VRML立體空間中中使用的角角度單位不不是普通的的角度,而而是通常所所使用的弧度。當(dāng)在VRML使用角度單單位時(shí),先先將角度單單位換算成成弧度單位位后,再將將其編寫入入VRML源程序中。。常用的角角度與弧度度換算表如如表2?1所示。VRML空間立體著著色VRML三維立體空空間的著色色,無論是是立體空間間背景、光光線的顏色色,還是立立體空間中中的各種物物體,它們們的顏色都都是由3種基本顏色色組合而成成紅、綠、藍(lán)藍(lán)(RGB)。紅、綠、藍(lán)藍(lán)(RGB)3種基本顏色色對(duì)應(yīng)3個(gè)浮點(diǎn)數(shù),,它們的域域值分別在在0.0—1.0之間。紅、、綠、藍(lán)3種顏色組成成各種各樣樣姹紫嫣紅紅的“顏色色”,如下下表所示。。VRML文件語法VRML文件語法主主要包括哪哪些?VRML文件頭、節(jié)節(jié)點(diǎn)、原型型、造型、、腳本和路路由等是否每一個(gè)個(gè)VRML文件都必須須包含這6個(gè)部分?只有VRML文件頭是必必需的,而而其他項(xiàng)不不一定是必必需的。他們相互之之間的關(guān)系系?VRML立體空間的的場景和造型型是由節(jié)點(diǎn)構(gòu)成的,再通過路由實(shí)現(xiàn)動(dòng)態(tài)交交互和感知知,或者使用用腳本文件與外部部接口進(jìn)行行動(dòng)態(tài)交互互。在軟件開發(fā)發(fā)中,根據(jù)據(jù)不同的實(shí)實(shí)際情況編編寫不同的的VRML程序,它所所包含的成成分也可能能不同。在在VRML文件中,““節(jié)點(diǎn)點(diǎn)”是VRML核心、靈魂魂,如果沒沒有節(jié)點(diǎn),,VRML也就不存在在了。VRML文件VRML文件可由文文本編輯器器編寫或由由VrmPad專用編輯器器編寫,其其VRML文件擴(kuò)展名名為.wrl或.wrz,其中使用用較多的是是.wrl文件。任何何擴(kuò)展名為為.wrl文件都是VRML文件。通過過VRML瀏覽器可以以直接運(yùn)行行VRML文件。VRML文件名全稱稱為:***.wrl或***.wrz。VRML文件結(jié)構(gòu)VRML文件的語法法結(jié)構(gòu)由VRML文件頭、節(jié)節(jié)點(diǎn)、事件件、腳本和和路由等組組成。“節(jié)點(diǎn)”可可以由一一個(gè)或多個(gè)個(gè)組成,也也可以創(chuàng)建建新的節(jié)點(diǎn)點(diǎn),即原型型節(jié)點(diǎn)。VRML文件語法結(jié)結(jié)構(gòu)#VRMLV2.0utf8#VRML文件在第一一行必須有有的頭文件件節(jié)點(diǎn)名{#VRML中各種類型型“節(jié)點(diǎn)””域域域值#相應(yīng)“節(jié)點(diǎn)點(diǎn)”的“域域”和“域域值”………}Script{#腳本Script節(jié)點(diǎn)}ROUTE#路由:把入入事件與出出事件聯(lián)系系起來在VRML文件結(jié)構(gòu)中中,突出軟軟件工程的的設(shè)計(jì)思想想,使VRML文件結(jié)構(gòu)設(shè)設(shè)計(jì)層次清清晰結(jié)構(gòu)嚴(yán)嚴(yán)謹(jǐn)、條理理清楚,使使讀者、用用戶易于理理解和掌握握。VRML文件頭在每一個(gè)VRML文件中,頭文件是必必需的,且位于于VRML文件的第一行。VRML文件頭語法法結(jié)構(gòu)定義義:VRML文件頭#VRMLV2.0utf8在VRML文件頭相當(dāng)當(dāng)于高級(jí)語語言C程序中的主主函數(shù)的作作用,每一一個(gè)C語言程序必必須從main()開始,否則則編譯或解解釋就會(huì)出出錯(cuò)。VRML文件頭包含含4個(gè)部分,每一部分代代表一定含含義。(1)以#開頭,這里里#不是注釋含含義,而是是VRML文件頭的一一部分。。(2)““VRML”告述瀏覽器器該文件是是一個(gè)VRML文件。(3)““V2.0”告訴瀏覽器器該VRML文件遵循VRML規(guī)范的2.0版本(4)““utf8”表示該瀏覽覽器VRML文件是一個(gè)個(gè)使用國際際UTF?8字符集。關(guān)于注釋VRML文件的注釋釋部分以一一個(gè)符號(hào)““#”開頭,結(jié)束束于該行的的末尾,當(dāng)當(dāng)注釋信息息多于一行行時(shí),將產(chǎn)產(chǎn)生語法錯(cuò)錯(cuò)誤,因?yàn)闉閂RML不支支持持多多行行注注釋釋信信息息。瀏瀏覽覽器器在在瀏瀏覽覽VRML文件件時(shí)時(shí)將將跳跳過過““#””后面面的的所所有有內(nèi)內(nèi)容容。。瀏覽覽器器在在瀏瀏覽覽VRML文件件時(shí)時(shí)將將自動(dòng)動(dòng)忽忽略略VRML文件件中中的的所所有有空空格格和和空空行行。開開發(fā)發(fā)人人員員可可根根據(jù)據(jù)軟軟件件開開發(fā)發(fā)的的結(jié)結(jié)構(gòu)構(gòu)和和思思想想編編寫寫VRML源程程序序。節(jié)點(diǎn)點(diǎn)(Node)和域域VRML文件件中中的的節(jié)節(jié)點(diǎn)點(diǎn)是是VRML文件件中中最最基基本本的的單單位位,,是是VRML精髓髓與與核核心心。。每個(gè)個(gè)節(jié)節(jié)點(diǎn)點(diǎn)包包含含子節(jié)節(jié)點(diǎn)點(diǎn)和描描述述節(jié)節(jié)點(diǎn)點(diǎn)屬屬性性的的“域域名名””或或““域域值值””。在在高高級(jí)級(jí)語語言言中中稱稱為為變變量量、、數(shù)數(shù)組組等等,,在在數(shù)數(shù)據(jù)據(jù)庫庫中中常常稱稱為為字字段段。。單一一節(jié)節(jié)點(diǎn)點(diǎn)語語法法定定義義::節(jié)點(diǎn)點(diǎn)名名{域名名域域值值#域值值類類型型說說明明………}節(jié)點(diǎn)點(diǎn)由由節(jié)節(jié)點(diǎn)點(diǎn)名名、、一一對(duì)對(duì)花花括括號(hào)號(hào)組組成成,,花花括括號(hào)號(hào)內(nèi)內(nèi)又又包包括括節(jié)節(jié)點(diǎn)點(diǎn)的的域域名名、、域域值值及及域域值值類類型型節(jié)點(diǎn)點(diǎn)中中包包括括““域域””、、““域域值值””或或子子節(jié)節(jié)點(diǎn)點(diǎn)。。根根據(jù)據(jù)語語法法結(jié)結(jié)構(gòu)構(gòu)的的要要求求,,節(jié)節(jié)點(diǎn)點(diǎn)之之間間可可以以并列列或?qū)訉訉忧肚短滋资褂糜?。。不不同同作作用用的的?jié)節(jié)點(diǎn)點(diǎn)有有著著不不同同語語法法結(jié)結(jié)構(gòu)構(gòu),,父父節(jié)節(jié)點(diǎn)點(diǎn)包包括括““域域””、、““域域值值””或或子子節(jié)節(jié)點(diǎn)點(diǎn),,子子節(jié)節(jié)點(diǎn)點(diǎn)中中也也包包含含““域域””、、““域域值值””等等。。“域域””分分為為兩兩種種::一一種種為為““域域””(field);另另一一種種稱稱為為““暴暴露露域域””(exposeField)??煽梢砸詥螁沃抵狄惨部煽梢砸远喽嘀抵?。?!坝蛴颉薄毕嘞喈?dāng)當(dāng)于于高高級(jí)級(jí)語語言言中中的的普普通通變變量量;;而而““暴暴露露域域””相相當(dāng)當(dāng)于于C語言言中中的的外外部部變變量量,,相相當(dāng)當(dāng)于于可可視視編編程程VC++語言言類類中中的的公公共共變變量量或或公公共共函函數(shù)數(shù)。。在同同一一““節(jié)節(jié)點(diǎn)點(diǎn)””中中的的域域遵遵循循如如下下規(guī)規(guī)則則::同一一節(jié)節(jié)點(diǎn)點(diǎn)中中的的各各個(gè)個(gè)域域之之間間無先先后后次次序序之分分;;節(jié)點(diǎn)點(diǎn)中中的的各各個(gè)個(gè)域域均均有自自己己相相應(yīng)應(yīng)的的默默認(rèn)認(rèn)值值;不同同的的域域?qū)?yīng)應(yīng)不不同同的的域域值值類類型型。域名名::域的的標(biāo)標(biāo)識(shí)識(shí)符符叫叫域域名名,,在在節(jié)節(jié)點(diǎn)點(diǎn)作作用用域域的的范范圍圍內(nèi)內(nèi),,域域名名是是惟一一的,,也也是是VRML的保保留留字字或或關(guān)關(guān)鍵鍵字字。。以下下是是常常見見的的兩兩類類域域名名的的域值值類類型型前前綴綴。單值值類型型的的域域名名,,以以““SF”開始始,,它它只只包包含含單單值值。。單單值值::可可以以是是一一個(gè)個(gè)獨(dú)獨(dú)立立的的數(shù)數(shù),,也也可可以以是是一一個(gè)個(gè)向向量量、、顏顏色色的的幾幾個(gè)個(gè)數(shù)數(shù)等等,,甚甚至至可可以以是是一一幅幅圖圖像像數(shù)數(shù)據(jù)據(jù)。。還有有一一種種多值值域名名以以““MF”開始始,,它它包包含含多多個(gè)個(gè)值值,,所所以以叫叫多多值值域域名名。。在VRML文件件中中,,表表示示多域域值值的方方法法是是::整個(gè)個(gè)用用方括括號(hào)號(hào)括起起來來的的一一系系列列用用逗逗號(hào)號(hào)和和空空格格間間隔隔開開的的單單值值;;如果果一一個(gè)個(gè)多多值值域域不不包包含含任任何何值值,,則則只只標(biāo)標(biāo)出出方方括括號(hào)號(hào)““[]”;如果一個(gè)多值值域,恰好只只包含一個(gè)數(shù)數(shù),可以不寫寫括號(hào),直接接寫該值。skycolor[]在VRML文件中各個(gè)節(jié)節(jié)點(diǎn)語法的各各種“域值類類型”詳細(xì)說說明:單值域類型名名用“SF”表示;多多值域名稱用用“MF”表示。1.SFBoolSFBool域是一個(gè)單值值布爾量,常常用于開啟或或關(guān)閉一個(gè)節(jié)節(jié)點(diǎn)的性質(zhì)特特征。SFBool域輸出事件的的默認(rèn)值為TRUE(真),否則為FALSE(假)。2.SFInt32和MFInt32SFInt32域是單值含有有32位的整數(shù),一一個(gè)SFInt32值由一個(gè)十進(jìn)進(jìn)制或十六進(jìn)進(jìn)制格式(0X開頭)的整數(shù)數(shù)。SFInt32域的輸出事件件的初始值是是0。MFInt32域是一個(gè)多值值域,由任意意數(shù)量的以逗逗號(hào)或空格分分割的整數(shù)組組成。MFInt32域輸出事件的的初始值是[]。其余的用表表表示:域值類型簡簡要要說明SFBool開關(guān)值 值為為TRUE或FALSESFFloat/MFFloat單值單精度浮浮點(diǎn)值/多值單精度浮浮點(diǎn)值有正正負(fù)之分SFColor/MFColor顏色值 值為為3個(gè)浮點(diǎn)數(shù)(RGB)SFRotation/MF旋轉(zhuǎn)值 前3個(gè)指定旋轉(zhuǎn)坐坐標(biāo)Rotation軸,第四個(gè)指指定旋轉(zhuǎn)角。。SFString/MFString字符串SFVec2f/MFVec2f二維浮點(diǎn)矢量量2個(gè)浮點(diǎn)值SFVec3f/MFVec3f三維浮點(diǎn)矢量量3個(gè)浮點(diǎn)值SFInt32/MFInt3232位正整數(shù)SFImage圖像值SFTime時(shí)間值1970年1月1日開始。SFNode/MFNode結(jié)點(diǎn)值用用于表明一個(gè)個(gè)屬性節(jié)點(diǎn)節(jié)點(diǎn)名的重定定義和重用意義?減少VRML代碼的編寫量量,對(duì)重復(fù)的的造型或多個(gè)個(gè)同樣的造型型在場景中多多次出現(xiàn)時(shí),,通過定義這這個(gè)造型節(jié)點(diǎn)點(diǎn),然后再重重復(fù)調(diào)用該節(jié)節(jié)點(diǎn)。定義節(jié)點(diǎn)名稱稱DEF節(jié)點(diǎn)名節(jié)節(jié)點(diǎn)類型{}appearanceDEFBtexiAppearance{……}引用節(jié)點(diǎn)USE節(jié)點(diǎn)名USEBtexi不能用于節(jié)點(diǎn)點(diǎn)名稱的單詞詞:DEF,EXTERNPROTO,F(xiàn)ALSE,IS,NULL,PROTO,ROUTETO,TRUE,USE,eventIneventOut,exposedField,field節(jié)點(diǎn)名的使用用有如下規(guī)定定:不區(qū)分大小寫寫、不能以數(shù)數(shù)字開頭、不不能帶有非印印刷的ASCII字符、不能包包括單引號(hào)、、雙引號(hào)、數(shù)數(shù)字運(yùn)算符或或英鎊符號(hào)事件、、路由由和腳腳本一個(gè)節(jié)節(jié)點(diǎn)一一般都都有哪哪些事事件?一個(gè)““入事事件eventIn”,一個(gè)個(gè)“出出事件件eventOut””事件的的作用用是什什么??入事件件:請(qǐng)請(qǐng)求節(jié)節(jié)點(diǎn)改改變自自己的的某個(gè)個(gè)域的的值出事件件:請(qǐng)請(qǐng)求別別的節(jié)節(jié)點(diǎn)改改變它它的某某個(gè)域域值事件的的命名名規(guī)則則大部分分入事事件以以set_開頭,,但是是addCildren和removeChildren除外大部分分出事事件以以_changed結(jié)尾,,SFBool類型的的除外外,它它以is開頭,,例如如isActive如果入入事件件和出出事件件的形形式為為SFTime,那就就不再再使用用set或者changed,例如如bindTime和touchTime路由的的作用用連接一一個(gè)節(jié)節(jié)點(diǎn)的的入事事件和和出事事件的的節(jié)點(diǎn)點(diǎn)之間間的通通道說明被被指定定域的的一個(gè)個(gè)事件件如何何從某某個(gè)節(jié)節(jié)點(diǎn)到到達(dá)另另一個(gè)個(gè)節(jié)點(diǎn)點(diǎn),將將不同同節(jié)點(diǎn)點(diǎn)聯(lián)系系起來來,使使空間間具有有更好好的交交互性性、立立體感感、動(dòng)動(dòng)態(tài)感感和靈靈活性性路由在在綁定定節(jié)點(diǎn)點(diǎn)時(shí)的的注意意事項(xiàng)項(xiàng)兩個(gè)節(jié)節(jié)點(diǎn)的的路由由在沒沒有被被觸發(fā)發(fā)之前前一直直都處處于休休眠狀狀態(tài),,被觸觸發(fā)后后事件件從輸輸出接接口的的節(jié)點(diǎn)點(diǎn)輸出出,通通過路路由傳傳送到到輸入入接口口節(jié)點(diǎn)點(diǎn),引引發(fā)VR的某種種變化化入事件件和出出事件件同樣樣具有有自己己的數(shù)數(shù)值類類型綁定多多個(gè)節(jié)節(jié)點(diǎn),,創(chuàng)建建復(fù)雜雜的路路線,,實(shí)現(xiàn)現(xiàn)更真真實(shí)的的交互互。腳本的的作用用是什什么??節(jié)點(diǎn)間間存在在路由由,事事件可可以通通過路路徑在在節(jié)點(diǎn)點(diǎn)間傳傳遞,,腳本本可以以對(duì)事事件與與路由由進(jìn)行行編程程設(shè)計(jì)計(jì)。腳本接接受事事件,,處理理事件件中的的信息息,產(chǎn)產(chǎn)生基基于處處理結(jié)結(jié)果的的輸出出事件件。VRML節(jié)點(diǎn)集集Shape模型節(jié)節(jié)點(diǎn)紋理映映射節(jié)節(jié)點(diǎn)群節(jié)點(diǎn)點(diǎn)環(huán)境、、影音音與視視點(diǎn)導(dǎo)導(dǎo)航效效果節(jié)節(jié)點(diǎn)規(guī)范化化接口口節(jié)點(diǎn)點(diǎn)動(dòng)態(tài)交交互感感知節(jié)節(jié)點(diǎn)創(chuàng)建新新的VRML節(jié)點(diǎn)1Shape模型節(jié)節(jié)點(diǎn)幾何節(jié)節(jié)點(diǎn)Box盒子節(jié)節(jié)點(diǎn)Cone圓錐節(jié)節(jié)點(diǎn)Sphere球體節(jié)節(jié)點(diǎn)Cylinder圓柱體體節(jié)點(diǎn)點(diǎn)Text文本節(jié)節(jié)點(diǎn)繪圖節(jié)節(jié)點(diǎn)PointSet““點(diǎn)”節(jié)節(jié)點(diǎn)IndexedLineSet““線”節(jié)節(jié)點(diǎn)IndexedFaceSet““面”節(jié)節(jié)點(diǎn)ElvationGrid海拔柵柵格節(jié)節(jié)點(diǎn)Extrusion擠出造造型節(jié)節(jié)點(diǎn)物體外外觀節(jié)節(jié)點(diǎn)Appearance外觀屬屬性節(jié)節(jié)點(diǎn)Material材料節(jié)節(jié)點(diǎn)2紋理映映射節(jié)節(jié)點(diǎn)ImageTexture圖像紋紋理節(jié)節(jié)點(diǎn)MovieTexture影像紋紋理節(jié)節(jié)點(diǎn)TextureTransform紋理變變換節(jié)節(jié)點(diǎn)3群節(jié)點(diǎn)點(diǎn)Group編組節(jié)節(jié)點(diǎn),,是基基本型型群節(jié)節(jié)點(diǎn)Transform坐標(biāo)變變換節(jié)節(jié)點(diǎn),,死轉(zhuǎn)轉(zhuǎn)換型型群節(jié)節(jié)點(diǎn)Inline內(nèi)聯(lián)節(jié)節(jié)點(diǎn),,是引引入型型群節(jié)節(jié)點(diǎn)Switch開關(guān)節(jié)節(jié)點(diǎn),,是選選擇型型群節(jié)節(jié)點(diǎn)Billboard廣告告牌牌節(jié)節(jié)點(diǎn)點(diǎn),,是是廣廣告告牌牌群群節(jié)節(jié)點(diǎn)點(diǎn)Anchor錨節(jié)節(jié)點(diǎn)點(diǎn),,是是超超級(jí)級(jí)鏈鏈接接群群節(jié)節(jié)點(diǎn)點(diǎn)LOD細(xì)節(jié)節(jié)層層次次節(jié)節(jié)點(diǎn)點(diǎn),,是是分分級(jí)級(jí)型型群群節(jié)節(jié)點(diǎn)點(diǎn)4環(huán)境境、、影影音音與與視視點(diǎn)點(diǎn)導(dǎo)導(dǎo)航航效效果果節(jié)節(jié)點(diǎn)點(diǎn)Background背景景節(jié)節(jié)點(diǎn)點(diǎn),,是是天天空空、、大大地地及及室室內(nèi)內(nèi)布布景景Fog霧節(jié)節(jié)點(diǎn)點(diǎn),,是是空空間間大大氣氣場場景景的的一一種種自自然然現(xiàn)現(xiàn)象象的的描描繪繪PointLight點(diǎn)光光源源節(jié)節(jié)點(diǎn)點(diǎn)DirectionLight定向向光光源源節(jié)節(jié)點(diǎn)點(diǎn)SpotLight聚光光燈燈光光源源節(jié)節(jié)點(diǎn)點(diǎn)Sound聲音音節(jié)節(jié)點(diǎn)點(diǎn),,是是聲聲音音發(fā)發(fā)射射器器節(jié)節(jié)點(diǎn)點(diǎn)AudioClip音響響剪剪輯輯節(jié)節(jié)點(diǎn)點(diǎn)ViewPoint視點(diǎn)點(diǎn)節(jié)節(jié)點(diǎn)點(diǎn),,是是決決定定觀觀看看點(diǎn)點(diǎn)的的節(jié)節(jié)點(diǎn)點(diǎn)NavigationInfor視點(diǎn)點(diǎn)導(dǎo)導(dǎo)航航信信息息節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制瀏瀏覽覽者者功功能能的的節(jié)節(jié)點(diǎn)點(diǎn)5規(guī)范范化化接接口口節(jié)節(jié)點(diǎn)點(diǎn)WorldInfor場景景信信息息節(jié)節(jié)點(diǎn)點(diǎn),,是是信信息息化化的的節(jié)節(jié)點(diǎn)點(diǎn)Script腳本本節(jié)節(jié)點(diǎn)點(diǎn),,是是程程序序化化的的節(jié)節(jié)點(diǎn)點(diǎn)6動(dòng)態(tài)態(tài)交交互互感感知知節(jié)節(jié)點(diǎn)點(diǎn)TimeSensor時(shí)間間檢檢測測器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制時(shí)時(shí)間間的的檢檢測測器器節(jié)節(jié)點(diǎn)點(diǎn)PositionInterpolator位置置插插補(bǔ)補(bǔ)器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制位位置置變變換換的的動(dòng)動(dòng)態(tài)態(tài)節(jié)節(jié)點(diǎn)點(diǎn)OrientationInterpolator朝向向插插補(bǔ)補(bǔ)器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制方方位位變變換換的的動(dòng)動(dòng)態(tài)態(tài)節(jié)節(jié)點(diǎn)點(diǎn)ScalarInterpolataor標(biāo)量量插插補(bǔ)補(bǔ)器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制變變換換強(qiáng)強(qiáng)度度的的動(dòng)動(dòng)態(tài)態(tài)節(jié)節(jié)點(diǎn)點(diǎn)ColorInterplator顏色色插插補(bǔ)補(bǔ)器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制顏顏色色變變換換的的動(dòng)動(dòng)態(tài)態(tài)節(jié)節(jié)點(diǎn)點(diǎn)CoordinataeInterPolatoar坐標(biāo)標(biāo)插插補(bǔ)補(bǔ)器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制坐坐標(biāo)標(biāo)變變換換的的動(dòng)動(dòng)態(tài)態(tài)節(jié)節(jié)點(diǎn)點(diǎn)NormalInterPolator法線線插插補(bǔ)補(bǔ)器器節(jié)節(jié)點(diǎn)點(diǎn),,是是控控制制向向量量變變換換的的動(dòng)動(dòng)態(tài)態(tài)節(jié)節(jié)點(diǎn)點(diǎn)TouchSensor觸摸摸節(jié)節(jié)點(diǎn)點(diǎn)PlaneSensor平面面檢檢測測器器節(jié)節(jié)點(diǎn)點(diǎn),,是是平平面面移移動(dòng)動(dòng)型型傳傳感感器器節(jié)節(jié)點(diǎn)點(diǎn)CylinderSensor圓柱柱檢檢測測器器節(jié)節(jié)點(diǎn)點(diǎn),,是是單單軸軸旋旋轉(zhuǎn)轉(zhuǎn)型型傳傳感感器器節(jié)節(jié)點(diǎn)點(diǎn)SphereSensor球面面檢檢測測器器節(jié)節(jié)點(diǎn)點(diǎn),,是是任任意意軸軸旋旋轉(zhuǎn)轉(zhuǎn)型型傳傳感感器器節(jié)節(jié)點(diǎn)點(diǎn)VisibilitySensor節(jié)點(diǎn)點(diǎn),,是是能能見見度度傳傳感感器器節(jié)節(jié)點(diǎn)點(diǎn)ProximtitySensor節(jié)點(diǎn)點(diǎn),,是是親親進(jìn)進(jìn)度度傳傳感感器器節(jié)節(jié)點(diǎn)點(diǎn)Collision碰撞撞節(jié)節(jié)點(diǎn)點(diǎn)7創(chuàng)建建新新的的VRML節(jié)點(diǎn)點(diǎn)PROTO原型型節(jié)節(jié)點(diǎn)點(diǎn),,是是創(chuàng)創(chuàng)建建用用戶戶新新節(jié)節(jié)點(diǎn)點(diǎn)EXTERNPROTO創(chuàng)建建用用戶戶外外部部定定義義的的新新節(jié)節(jié)點(diǎn)點(diǎn)3VRML基本本節(jié)節(jié)點(diǎn)點(diǎn)編編程程在VRML編程程語語言言中中,,VRML文件件由由各各種種各各樣樣節(jié)點(diǎn)點(diǎn)組成成,,““節(jié)節(jié)點(diǎn)點(diǎn)””是是VRML的核核心心,,節(jié)節(jié)點(diǎn)點(diǎn)之之間間可可以以并列列或或?qū)訉訉訉忧肚短滋资褂糜?。。?jié)點(diǎn)點(diǎn)在在VRML文件件中中起起著著主主導(dǎo)導(dǎo)的的作作用用,,它它貫貫穿穿于于整整個(gè)個(gè)VRML編程程語語言言始始終終。??煽梢砸哉f說,,如如果果沒沒有有節(jié)節(jié)點(diǎn)點(diǎn),,VRML文件件也也就就不不存存在在了了。。學(xué)好好、、用用好好、、掌掌握握好好VRML編程程語語言言的的““節(jié)節(jié)點(diǎn)點(diǎn)””是是至至關(guān)關(guān)重重要要的的,,因因?yàn)闉樗鞘荲RML編程程語語言言的的靈靈魂魂,,是是VRML編程程的的精精髓髓。。VRML三維維立立體體空空間間造造型型就就是是由由許許許許多多多多““節(jié)節(jié)點(diǎn)點(diǎn)””構(gòu)構(gòu)成成并并創(chuàng)創(chuàng)建建的的。。3.1Background立體空間間背景節(jié)點(diǎn)點(diǎn)編程Background背景節(jié)點(diǎn)點(diǎn)的作用用?用于定義義VRML世界中天空和地地面顏色色及空間間和地面面角,在天空空和地面面之間,,設(shè)定一一幅立體體空間全全景圖并并可以放放置立體體空間造造型。VRML的空間背背景分類類:一類室內(nèi)空間間背景;另一類室外空間間背景。設(shè)計(jì)者根根據(jù)實(shí)際際需要進(jìn)進(jìn)行相應(yīng)應(yīng)設(shè)計(jì)和和布局。。室內(nèi)空間間背景設(shè)設(shè)計(jì)室內(nèi)空間間背景設(shè)設(shè)置哪些些呢?包括六面面體:frontUrl前面、backUrl后面、1eftUrl左面、rightUrl右面,topUrl頂部和bottomUrl底部。六面體(立方體)組成立體體空間的的原理圖圖如圖3-1所示。xzy頂部后面前面右面左面底部圖3-1三維立體空間坐標(biāo)系之“室內(nèi)空間背景”室外空間間背景設(shè)設(shè)計(jì)VRML三維立體體空間室室外空間間背景從從不同的的觀測角角度可以以得到不不同的結(jié)結(jié)果。(1)從外太空空觀測地地球的結(jié)結(jié)果,如如圖3-2所示。地球地面天空大氣宇宙空間宇宙空間圖3-2宇宙空間的三維立體圖(2)從地球上上觀測三三維立體體空間的的結(jié)果。。觀測者從從宇宙空空間的三三維立體體圖看到到的結(jié)果果轉(zhuǎn)化為為VRML三維立體體空間天天地合一一立體空空間圖(室外空間間背景),將天空空分成空空間角,,當(dāng)空間間角平滑滑到一定定程度時(shí)時(shí),就變變成一個(gè)個(gè)球體空空間,即即太極球球,如圖圖3-3所示。(太空)天空地面(地球)地平線(海平面)圖3-3VRML三維立體空間坐標(biāo)系之“室外空間背景”
0
空間角
x地平線(面)
0
地面角
VRML空間背景
60z9012015018030609015012018030室外立體體空間體體現(xiàn)了天天地渾然然一體,,天地合合一的景景象。在在天地之之間只有有一個(gè)地地平線或或海平面面,劃分分出天空空和地面面,體現(xiàn)現(xiàn)了太極極圖的陰陰陽與辨辨證關(guān)系系。在VRML虛擬現(xiàn)實(shí)實(shí)三維立立體世界界里,開開發(fā)人員員可以根根據(jù)你所所設(shè)計(jì)的的場景的的需要,,采用相相應(yīng)背景景。如果要設(shè)設(shè)計(jì)室內(nèi)內(nèi)立體空空間場景景,可選選“室內(nèi)內(nèi)空間背背景”進(jìn)進(jìn)行開發(fā)發(fā)設(shè)計(jì);;如果要設(shè)設(shè)計(jì)室外外立體空空間、宇宇宙空間間場景,,可選用用“室外外空間背背景”場場景設(shè)計(jì)計(jì);如果既有有室內(nèi)又又有室外外場景,,可以結(jié)結(jié)合兩者者共同開開發(fā)設(shè)計(jì)計(jì)所需要要的立體體空間場場境。背景節(jié)點(diǎn)點(diǎn)語法Background背景節(jié)點(diǎn)點(diǎn)用來生成VRML的背景,其生成成的背景景是三維維立體式式的,它它會(huì)帶給給人一種種空間立立體層次次感效果果。我們們可以設(shè)設(shè)計(jì)室內(nèi)內(nèi)和室外外三維立立體空間間效果,,從而使使設(shè)計(jì)更更加生動(dòng)動(dòng)、逼真真。Background背景節(jié)點(diǎn)點(diǎn)語法定定義:Background{skyColor[0.00.00.0]#exposedFieldMFColorskyAng1e[]#exposedFieldMFFloatgroundColor[0.00.00.0]#exposedFieldMFColorgroundAng1e[]#exposedFieldMFFloatfrontUrl[]#exposedFieldMFStringbackUrl[]#exposedFieldMFString1eftUrl[]#exposedFieldMFStringrightUrl[]#exposedFieldMFStringtopUrl[]#exposedFieldMFStringbottomUrl[]#exposedFieldMFStringset_bind#evemtInSFBoolisBound#evemtOutSFBool}域值類型型注釋::exposedField為“暴露域””;eventIn為入事件;eventOut為出事件;MFFloat域是多值單精精度浮點(diǎn)數(shù);;MFColor域是一個(gè)多值值域,包含任任意數(shù)量的RGB顏色值;MFString域是一個(gè)含有有零個(gè)或多個(gè)個(gè)字符的多值值域;SFBool域是一個(gè)單值值布爾量。1.天空的顏色和和天空角(1)skyColor域的值指定了了對(duì)立體空間間背景顏色進(jìn)進(jìn)行著色,該域值是組合合而成。其默默認(rèn)值為(0.00.00.0)。(2)skyAngle域的值指定了了空間背景上上需要著色的的位置的空間間角(用弧度)。VRML瀏覽器就是在在這些空間角角所指位置上上進(jìn)行著色的的。第一個(gè)天空顏顏色著色于天空背背景的正上方方,第二個(gè)天空顏顏色著色于第一個(gè)個(gè)天空角所指指定的位置,,第三個(gè)天空顏顏色著色于第二個(gè)個(gè)天空角所指指定的位置。。依此類推,這這樣就使天空空角之間的顏色慢慢過渡渡,形成顏色色梯度。該域值必須須以升序的方方式排列,默默認(rèn)值為空。。2.地面的顏色色和地面位置置空間角(1)groundColor域的值指定了了對(duì)地面背景顏色色進(jìn)行著色,該域值由一一系列RGB顏色組合而成成。其默認(rèn)值值為空。(2)groundAngle域的值指定地地面背景上需需要著色的位位置的空間角角(用弧度)。第一個(gè)地面顏顏色著色于地面背背景的正下方方,第二個(gè)地面顏顏色著色于第一個(gè)個(gè)地面角所指指定的位置,,第三個(gè)地面顏顏色著色于第二個(gè)個(gè)地面所指定定的位置,依此類推.該域值中地面面角必須以升序的方式排列,默認(rèn)值為空。。我們可以通過過對(duì)背景設(shè)定空空間和地面角角及空間和地地面顏色來產(chǎn)產(chǎn)生天空和地地面效果,以在空間背景景上添加背景景圖像,也可可以創(chuàng)建城市市、原野、樓樓房、山脈等等場景。3.利用VRML立體空間六面面體創(chuàng)建室內(nèi)內(nèi)空間背景利用frontUrl、backUrl、1eftUrl、rightUrl、topUrl和bottomUrl這6個(gè)域分別在6個(gè)不同的立體體空間添加背背景圖像,形形成室內(nèi)立體體空間景象。。可以在VRML中使用的背景景圖像只能是是JPEG、GIF和PNG格式文件。事件說明set_bind入事件(eventIn)和isBound出事件(eventOut)用來實(shí)現(xiàn)VRML文件的各種背景切換。工作過程如下下:對(duì)需要設(shè)定為為當(dāng)前背景的的Background背景節(jié)點(diǎn)中set_bind入事件發(fā)送一一個(gè)TRUE,則這個(gè)Background背景節(jié)點(diǎn)就變變成當(dāng)前背景景節(jié)點(diǎn)同時(shí)原先的背背景節(jié)點(diǎn)的出出事件isBound(eventOut)向外發(fā)送一個(gè)個(gè)FALSE值,就不再是是當(dāng)前背景節(jié)節(jié)點(diǎn)了。在使使用背景變換換時(shí)被用來接接收事件和發(fā)發(fā)送事件。立體空間背景景設(shè)計(jì)與編程程實(shí)例室外立體空間間背景設(shè)計(jì)和和編程室內(nèi)立體空間間背景設(shè)計(jì)和和編程1.室外立體空空間背景設(shè)計(jì)計(jì)和編程實(shí)例例只對(duì)立體空間間背景的“天天空”著色,,是單色調(diào)的的綠顏色,見見效果圖。vrml3-1[實(shí)例3·2]只對(duì)立體空間間背景的“天天空”顏色及及“空間角””進(jìn)行設(shè)計(jì),,產(chǎn)生天空中中大氣的各種種層次的調(diào)和和顏色效果Vrml3-2[實(shí)例3-3]只對(duì)立體空間間背景的地面面顏色及地面面角進(jìn)行設(shè)計(jì)計(jì),產(chǎn)生地面面的各種層次次的調(diào)和顏色色效果Vrml3-3[實(shí)例3-4]對(duì)立體空間背背景的“天空”顏色色和“空間角角”及立體空間背背景的“地面”顏色色和“地面角角”同時(shí)進(jìn)行著色色設(shè)計(jì),產(chǎn)生生“天空”與與“地面”立立體空間的各各種層次的調(diào)調(diào)和顏色效果果,產(chǎn)生天地地合一效果場場景。vrml3-42.室內(nèi)立體空空間背景設(shè)計(jì)計(jì)和編程實(shí)例例設(shè)計(jì)一個(gè)室內(nèi)內(nèi)立體空間背背景,包括立立體空間的6個(gè)面,即由前前、后、左、、右、上、下下平面組成。。在VRML中允許使用的的背景圖像文文件有JPEG、GIF和PNG等格式的文件件。根據(jù)不同的材材質(zhì)和圖片,,顯示不同的的效果,現(xiàn)舉舉例加以說明明。[實(shí)例3-5]在室內(nèi)立體空空間背景中,,采用外墻圖圖案和地磚圖圖案的室內(nèi)立立體空間效果果圖[實(shí)例3-6]在立體空間中中,采用6幅圖像,天空空綠草地和四四周采用的4幅圖片(*.jpg文件)產(chǎn)生的效果vrml3-63.2基本造型虛擬現(xiàn)實(shí)的基基本造型有::長方體(Box),圓柱體(Cylinder),圓錐體(Cone),球體(Sphere)這些基本造型型都由相應(yīng)的專門門節(jié)點(diǎn)直接創(chuàng)創(chuàng)建虛擬現(xiàn)實(shí)的基基本造型關(guān)于Shape節(jié)點(diǎn)定義一個(gè)造型型所具有的幾幾何尺寸、材材料、紋理和和外觀特性所有VR空間里的造型型均有Shape節(jié)點(diǎn)創(chuàng)建注意區(qū)分域名名、節(jié)點(diǎn)名的的大小寫Shape節(jié)點(diǎn)語法:Shape節(jié)點(diǎn)包括了外觀和幾何結(jié)構(gòu)兩個(gè)域。Shape{
appearanceNULL#域值類型SFNode
geometryNULL#域值類型SFNode幾何造型外觀造型Shape模型節(jié)點(diǎn)語法法結(jié)構(gòu)textureShape模型節(jié)點(diǎn)Appearance外觀節(jié)點(diǎn)Box立方體節(jié)點(diǎn)Cone圓錐體節(jié)點(diǎn)Cylinder圓柱體節(jié)點(diǎn)Sphere球體節(jié)點(diǎn)Text文本造型節(jié)點(diǎn)Geometry域appearance域materialTextureTransformdiffuseColorambientIntensifyspecularColoremissiveColorshininesstransparency節(jié)點(diǎn)節(jié)點(diǎn)語法
appearance{
materialNULL#域值類型SFNode
textureNULL#域值類型SFNodetextureTransform
NOLL#域值類型SFNode}材料屬性紋理映像二維紋理坐標(biāo)變換節(jié)點(diǎn)語法Material{ambientIntensity0.2#域值類型SFFloatdiffuseColor0.80.80.8#域值類型SFColoremissiveColor0.00.00.0#域值類型SFColorshininess0.2#域值類型SFFloatspecularColor0.00.00.0#域值類型SFColortransparency0.0#域值類型SFFloat}ambientIntensity有多少環(huán)境光光被該表面反反射,依賴于于光源的數(shù)目目,0.2的默認(rèn)值表示示對(duì)材料產(chǎn)生生較低的環(huán)境境光線效果diffuseColor材料的漫反射射顏色,表面面越接近垂直直光性,被反反射的漫反射射光性越多。。默認(rèn)值(0.80.80.8)表示中強(qiáng)度度的白光emissiveColor發(fā)光物體產(chǎn)生生的光的顏色色,默認(rèn)值(0.0,0.0,0.0)表示不發(fā)光shininess造型外觀材料料的亮光,取取值從漫反射射表面的0到高度拋光的的1,默認(rèn)值為0.2,表示適當(dāng)?shù)牡牧炼萻pecularColor物體鏡面反射射光線的顏色色,默認(rèn)值(0.0,0.0,0.0)表示鏡面不反反射transparency物體的透明度度,默認(rèn)值0表示不透明空間物體造型型外觀顏色設(shè)設(shè)計(jì)物體造型的的外觀顏色色一般都由由幾種基本本顏色組成成:RYB紅(Red)黃(Yellow)藍(lán)(Blue)CYM蘭綠(青))黃(Yellow)絳紅(Mauve)RGB紅(Red)綠(Green)藍(lán)(Blue)CYMK蘭綠(青))黃(Yellow)絳紅(Mauve)黑(Black)3.2.5Shape空間節(jié)點(diǎn)實(shí)實(shí)例Vrml3-73.3Box節(jié)點(diǎn)語法Box{size2.02.02.0#域值類型SFVec3f}#寬高深深Vrml3-83.4Sphere節(jié)點(diǎn)語法Sphere{radium1.0#域值類型SFFloat}3.5Cone節(jié)點(diǎn)語法Cone{bottomradium1.0#域值類型SFFloatheight2.0#域值類型SFFloatsideTRUE#域值類型SFBoolbottomTRUE#域值類型SFBool}Vrml3-103.6Cylinder節(jié)點(diǎn)語法Cylinder{radium1.0#域值類型SFFloatheight2.0#域值類型SFFloatsideTRUE#域值類型SFBooltopTRUE#域值類型SFBoolbottomTRUE#域值類型SFBool}vrml3-113.7Text文本造型節(jié)節(jié)點(diǎn)文本造型節(jié)節(jié)點(diǎn)Text用來在VRML空間中創(chuàng)建建文本(文字)造型,通常常使用Shape節(jié)點(diǎn)的geometry域的域值。。Shape{appearanceNULL#域值類型SFNodegeometryNULL#域值類型SFNode}Shape模型節(jié)點(diǎn)Appearance外觀屬性節(jié)點(diǎn)Text文本造型節(jié)點(diǎn)Material造型外觀節(jié)點(diǎn)FontStyle文本外觀節(jié)點(diǎn)AppearanceGeometryText節(jié)點(diǎn)語法Text{
string[]#exposedFieldMFStringlength[]#exposedFieldMFFloatmaxExtent0.0#exposedFieldSFFloatfontStyleNULL#exposedFieldSFNode}域名和域值值詳解(1)string域域值指定了了要?jiǎng)?chuàng)建的的文本內(nèi)容容,其域值值可以是一一行文本,,也可以是是多行文本本。這些文本均均包含在雙引號(hào)之內(nèi)內(nèi),在引號(hào)內(nèi)內(nèi)的回車符符將被忽略略,所以不不能使用回車鍵分行。在其域值中中每一行文文本串使用用引號(hào)包圍圍起來,不不同的行用用逗號(hào)分開開。"VRMLscene","Howareyou!"該域值的默默認(rèn)值為空空,即不產(chǎn)產(chǎn)生文本造造型。(2)length域用來指定文文本造型的的長度,是是以VRML單位為計(jì)量量單位的,,這里的長長度指的是是每一行的文文本長度。當(dāng)設(shè)定一個(gè)個(gè)值后,瀏瀏覽器通過過改變字符符尺寸或字字符間距來來進(jìn)行壓縮縮或擴(kuò)展,,以滿足設(shè)設(shè)定長度的的要求。1ength域的值是和和string域值一一對(duì)對(duì)應(yīng)的,即一個(gè)個(gè)數(shù)值控制制一行文本本,所以壓壓縮或擴(kuò)展展其實(shí)并不不是固定數(shù)數(shù)值的,它它與string域值有關(guān)。。當(dāng)所設(shè)定的的長度大于于其文本造造型本來的的長度時(shí),則擴(kuò)展;反反之則壓縮縮。該域值值的默認(rèn)值為空空列表,即為0.0,表示即不擴(kuò)擴(kuò)展也不壓壓縮。(3)maxExtendt域值指定了文本本造型中所所對(duì)應(yīng)的行的最大有有效長度,也是以VRML單位為計(jì)量量單位的。。該域值必須須大于0.0,對(duì)于那些些長度大于于所設(shè)定長長度的行,,通過改變變字符尺寸寸或字符間間距來進(jìn)行行壓縮。該域值的默認(rèn)值為0.0,表示對(duì)文文本造型的的長度沒有限限制,可以為任任意長度。。(4)fontStyle域用來定義文文本造型的的外觀特征。一般情況下下其域值為為fontStyle節(jié)點(diǎn),該域值的默默認(rèn)值為NULL,即沒有定定義外觀特特征。使用默認(rèn)的的外觀特征征,如左對(duì)對(duì)齊,從左左到右,文文本尺寸為為1.0,文本間距為為1.0及默認(rèn)的字字體大小等等。[實(shí)例3-12]在山水畫背背景下,顯顯示兩行文文本文字的的效果圖;;在文本中中兩行不同同的文字用用逗號(hào)隔開開,可以設(shè)設(shè)定兩行不不同的長度度以及設(shè)定定字符串最最大有效長長度等3.7.2FontStyle文本外觀節(jié)節(jié)點(diǎn)FontStyle文本外觀節(jié)節(jié)點(diǎn)是Text文本節(jié)點(diǎn)的的子節(jié)點(diǎn),,用來控制制文本造型型的外觀特特征,通過過設(shè)定FontStyle節(jié)點(diǎn)可以改改變由Text節(jié)點(diǎn)創(chuàng)建的的文本造型型的外觀、字體體、字形、、風(fēng)格和尺尺寸大小,等等。FontStyle文本外觀節(jié)節(jié)點(diǎn)只出現(xiàn)現(xiàn)在Text文本節(jié)點(diǎn)中中的fontStyle域中,用于于說明文字字符號(hào)的大大小、風(fēng)格格、字體、、文本造型型的排列、、文本的擺擺放和語言言設(shè)置等。。FontStyle文本外觀節(jié)節(jié)點(diǎn)語法結(jié)結(jié)構(gòu)定義FontStyle{family““SERIF””#fieldSFStringstyle““PLAIN”#fieldSFStringsize1.0#fieldSFFloatspacing1.0#fieldSFFloatjustify““BEGIN”#fieldSFStringhorizontalTRUE#fieldSFBoolleftToRightTRUE#fieldSFBooltopToBottomTRUE#fieldSFBoollanguage““””#fieldSFString}域名和域值值詳解(1)family域用來指定在在VRML中使用的VRML字符集,這這些字符集集包括“SERIF”、“SANS”和“TYPEWRITER”?!癝ERIF”是指serif字體,是一一種變寬的的字體,如如“TimesRoman”字體;“SANS””是指sans字體,也是是一種變寬寬的字體,,如“Helvetica”字體;“TYPEWRITER”是指typewriter字體,是一一種等寬字字體,如““Coutier”字體。這里要注意意的是在VRML瀏覽器中實(shí)實(shí)際顯示的的字符集是是與瀏覽器器本身有關(guān)關(guān)的,當(dāng)該域域值設(shè)定為為“SERIF”時(shí),瀏覽器器也有可能能顯示NewYork字符集,這這是由瀏覽覽器本身的的設(shè)置決定定的。該域域值的默認(rèn)認(rèn)值為“SERIF”。(2)size域值用來指定所所顯示的文本字符的的高度,單位為VRML單位。改變變其高度可可以進(jìn)而改改變文本字字符的尺寸寸大小。該該域值的默認(rèn)值為1.0。(3)spacing域值用來指定所所顯示的文本字符的的間距。當(dāng)文本是是水平排列列時(shí),該間間距指的是是水平間距距,而當(dāng)文文本是垂直直排列時(shí),,該間距指指的是垂直直間距。該該域值的默認(rèn)值為1.0。(4)style域值用來指定所所顯示的文本的風(fēng)格格。該域值通常常包括“PLAIN”、“BOLD””、“ITALIC”和“BOLDITALIC”,這些都是是瀏覽器所所能支持的的風(fēng)格。“PLAIN”為常用字體體,既不加加粗又不傾傾斜;“BOLD””為加粗字體體;“ITALIC”為傾斜字體體;“BOLDITALIC”為既加粗又又傾斜的字字體。該域值的默默認(rèn)值為““PLAIN”。(5)horizontal域值控制著文本本造型的排列方式,既可以是是水平排列列還可以是是垂直排列列。該域值值的默認(rèn)值為TRUE,表示文本本為水平排列;假如如將horizontal域值設(shè)定為為FALSE,表示兩行行文本造型型是垂直排列的。(6)leftToRight域值用來指定相相鄰字符在在水平方向上上的擺放。當(dāng)leftToRight域值為TRUE時(shí),相鄰字字符沿X正方向從左到右排列;當(dāng)leftToRight域域值為FALSE時(shí)則沿X正方向從右右到左排列列。(7)topToBottom域值用來指定相相鄰字符在在垂直方向上上的擺放。當(dāng)topToBottom域值為TRUE時(shí),相鄰字字符沿Y負(fù)方向從上到下排列;當(dāng)topToBottom域值為FALSE時(shí),相鄰字字符沿Y正方向從下下往上排列列。(8)justify域值相對(duì)于X與Y軸來說的對(duì)齊方式。如有兩個(gè)個(gè)選項(xiàng),第第1個(gè)值為主對(duì)對(duì)齊方式,,第2個(gè)值為次對(duì)對(duì)齊方式可以有“FIRST”、“BEGIN”、“MIDDLE”、“END”默認(rèn)值為““BEGIN”、“FIRST”(9)Language域值用來指定string域值中所使使用的語言,比如英語語德語等。。在一副背景景空間下,,顯示兩行行文本,要要求是typewriter字體、文本本字符高度度為2.0,字體既加加粗又傾斜斜,造型位位于X、Y軸的中心點(diǎn)點(diǎn)什么樣的場場景?在背景畫面面中,顯示示兩行垂直直文本的畫畫面,要求求是sans字體,高高度為0.5
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年化學(xué)災(zāi)難責(zé)任保險(xiǎn)合同
- 2025年寬帶網(wǎng)絡(luò)使用協(xié)約
- 2025年石材質(zhì)押合同
- 2025版綠色建筑項(xiàng)目募集資金三方監(jiān)管與支持合同4篇
- 2025版信息安全管理體系委托管理合同范本3篇
- 2025版衛(wèi)生間裝修材料環(huán)保認(rèn)證協(xié)議書3篇
- 2025版農(nóng)業(yè)設(shè)施設(shè)計(jì)顧問服務(wù)協(xié)議3篇
- 2025版城市道路改造工程委托監(jiān)理合同(交通優(yōu)化)3篇
- 二零二五版茶場茶葉包裝與營銷承包協(xié)議書3篇
- 2025年度短視頻環(huán)保公益宣傳拍攝協(xié)議
- 醫(yī)院三基考核試題(康復(fù)理療科)
- 2024-2030年中國招標(biāo)代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時(shí))高一下學(xué)期生物人教版(2019)必修2
- 內(nèi)科學(xué)(醫(yī)學(xué)高級(jí)):風(fēng)濕性疾病試題及答案(強(qiáng)化練習(xí))
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購 投標(biāo)方案(技術(shù)方案)
- 案卷評(píng)查培訓(xùn)課件模板
- 2024年江蘇省樣卷五年級(jí)數(shù)學(xué)上冊(cè)期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點(diǎn)圖解完美版
評(píng)論
0/150
提交評(píng)論