虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章課件_第1頁(yè)
虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章課件_第2頁(yè)
虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章課件_第3頁(yè)
虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章課件_第4頁(yè)
虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章課件_第5頁(yè)
已閱讀5頁(yè),還剩101頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

VRML程序設(shè)計(jì)VRML程序設(shè)計(jì)一、虛擬現(xiàn)實(shí)技術(shù)概述1.1虛擬現(xiàn)實(shí)概念特點(diǎn)系統(tǒng)基本構(gòu)成關(guān)鍵技術(shù)應(yīng)用1.2VRMLChapter1一、虛擬現(xiàn)實(shí)技術(shù)概述1.1虛擬現(xiàn)實(shí)Chapter11.1虛擬現(xiàn)實(shí)

虛擬現(xiàn)實(shí)的概念虛擬現(xiàn)實(shí)是利用計(jì)算機(jī)生成一個(gè)逼真的視覺(jué)、聽覺(jué)、觸覺(jué)以及嗅覺(jué)等的模擬環(huán)境(如飛機(jī)駕駛艙、分子結(jié)構(gòu)世界等),通過(guò)多種傳感設(shè)備使用戶“投入”到該環(huán)境中,用戶可通過(guò)其感官與這一生成的虛擬實(shí)體進(jìn)行交互溝通,如同與真實(shí)的環(huán)境直接進(jìn)行自然交互的技術(shù)。這里所謂的“模擬環(huán)境”一般是指用計(jì)算機(jī)生成的有立體感的圖形,它可以是某一特定現(xiàn)實(shí)環(huán)境的表現(xiàn),也可以是純粹構(gòu)想的世界。虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)的是人所感受到的虛擬幻境,所以錢學(xué)森建議把VirtualReality的技術(shù)叫做“靈境技術(shù)”,由它構(gòu)成的信息處理環(huán)境稱作“靈境”。1.1虛擬現(xiàn)實(shí)

虛擬現(xiàn)實(shí)的概念虛擬現(xiàn)實(shí)的特點(diǎn)(3I特性)第一,虛擬現(xiàn)實(shí)技術(shù)是通過(guò)計(jì)算機(jī)生成一個(gè)非常逼真的實(shí)體,逼真要達(dá)到三維的視感,甚至還包括聽覺(jué)、觸覺(jué)和嗅覺(jué)等。這個(gè)逼真的實(shí)體足以成為“迷惑”人類視覺(jué)的虛幻的世界,這種“迷惑”是多方面的,不僅可以看到而且可以聽到、觸到以及嗅到這個(gè)虛擬世界中所發(fā)生的一切。這種感覺(jué)是如此的真實(shí),以至于能全方位地浸沒(méi)在這個(gè)虛幻的世界中,這就是虛擬現(xiàn)實(shí)的第一個(gè)特征,即浸沒(méi)感(Immersion)或臨場(chǎng)參與感。虛擬現(xiàn)實(shí)的特點(diǎn)(3I特性)虛擬現(xiàn)實(shí)的特點(diǎn)第二,虛擬現(xiàn)實(shí)與通常CAD系統(tǒng)所產(chǎn)生的模型是不一樣的,它不是一個(gè)靜態(tài)的世界,而是一個(gè)動(dòng)態(tài)的、開放的環(huán)境,它可以對(duì)使用者的輸入(如手勢(shì),語(yǔ)言命令)作出響應(yīng)。如拿起一個(gè)虛擬的火炬并打開其開關(guān),推動(dòng)操縱桿,就可以在虛擬環(huán)境中的漫游,甚至還可以用虛擬的手感觸到虛擬物體的存在。虛擬現(xiàn)實(shí)環(huán)境可以通過(guò)一些三維傳感設(shè)備來(lái)完成交互動(dòng)作,這是虛擬現(xiàn)實(shí)技術(shù)的第二個(gè)特征,即交互性(Interaction)。虛擬現(xiàn)實(shí)的特點(diǎn)虛擬現(xiàn)實(shí)的特點(diǎn)第三,虛擬現(xiàn)實(shí)不僅僅是一個(gè)媒體,一個(gè)高級(jí)用戶界面,它還是為解決工程、醫(yī)學(xué)、軍事等方面的問(wèn)題而由開發(fā)者設(shè)計(jì)出來(lái)的應(yīng)用軟件,它以詳盡的形式反映了設(shè)計(jì)者的思想。如在蓋一座現(xiàn)代化的大廈之前,首先要做的事是對(duì)這座大廈的結(jié)構(gòu)做細(xì)致的構(gòu)思,為了使之定量化,還需設(shè)計(jì)許多圖紙。這些圖紙反映的是設(shè)計(jì)者的構(gòu)思,虛擬現(xiàn)實(shí)同樣反映的是某個(gè)設(shè)計(jì)者的思想,只不過(guò)它的功能遠(yuǎn)比那些呆板的圖紙生動(dòng)、強(qiáng)大的多,所以國(guó)外有些學(xué)者稱虛擬現(xiàn)實(shí)為放大人們心靈的工具,或人工現(xiàn)實(shí)(artificalreality)。這是虛擬現(xiàn)實(shí)技術(shù)所具有的第三個(gè)特征,即思想性(Imagation)。虛擬現(xiàn)實(shí)的特點(diǎn)虛擬現(xiàn)實(shí)系統(tǒng)的基本構(gòu)成虛擬現(xiàn)實(shí)系統(tǒng)的基本構(gòu)成虛擬現(xiàn)實(shí)技術(shù)的關(guān)鍵技術(shù)(1)動(dòng)態(tài)環(huán)境建模技術(shù)

(2)實(shí)時(shí)三維圖形生成技術(shù)

(3)立體顯示和傳感器技術(shù)

(4)應(yīng)用系統(tǒng)開發(fā)工具

(5)系統(tǒng)集成技術(shù)

虛擬現(xiàn)實(shí)技術(shù)的關(guān)鍵技術(shù)虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用(1)醫(yī)學(xué)

(2)娛樂(lè)、藝術(shù)與教育

(3)軍事與航天工業(yè)

(4)管理工程

簡(jiǎn)單場(chǎng)景示例如下:虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用1.2虛擬現(xiàn)實(shí)建模語(yǔ)言VRML

1.2虛擬現(xiàn)實(shí)建模語(yǔ)言VRML

VRML2.0標(biāo)準(zhǔn)被稱為第二代Web語(yǔ)言VRML2.0標(biāo)準(zhǔn)被稱為第二代Web語(yǔ)言VRML的特點(diǎn)(1)與其它Web技術(shù)語(yǔ)言相比,其語(yǔ)法簡(jiǎn)單、易懂,編輯操作方便,學(xué)習(xí)相對(duì)容易。(2)VRML具有創(chuàng)建三維造型與場(chǎng)景,并可以實(shí)現(xiàn)很好的交互效果。而且可以嵌入Java、JavaScript等程序?qū)崿F(xiàn)人機(jī)交互,從而極大的擴(kuò)充其表現(xiàn)能力,形成更為逼真的虛擬環(huán)境。(3)具有強(qiáng)大的網(wǎng)絡(luò)功能,文件容量小,適宜網(wǎng)絡(luò)傳輸,并可方便地創(chuàng)建立體網(wǎng)頁(yè)與網(wǎng)站。(4)具有多媒體功能,在其程序中可方便地加入聲音、圖像、動(dòng)畫等多媒體效果。(5)具有人工智能功能,在VRML中具有感知功能,可以利用各種傳感器節(jié)點(diǎn)來(lái)實(shí)現(xiàn)用戶與虛擬場(chǎng)景之間的智能交互。(6)在當(dāng)前各種瀏覽器中還不能直接運(yùn)行,必須安裝VRML相關(guān)插件才能看到其效果。

VRML的特點(diǎn)二、VRML的基本知識(shí)2.1VRML文件的編輯運(yùn)行2.2一個(gè)VRML程序示例2.3VRML基本概念Chapter2二、VRML的基本知識(shí)2.1VRML文件的編輯運(yùn)行Ch2.1VRML文件的編輯運(yùn)行

VRML的編輯VRML是文本文件,它向VRML瀏覽器發(fā)出如何為虛擬空間創(chuàng)建3D造型的指令。使用VRML創(chuàng)建自己的虛擬空間,需要VRML瀏覽器(例如Windows中IE的組件VRML2.0)和某種字處理器(如記事本)就可以實(shí)現(xiàn)了。在字處理器鍵入VRML指令。然后,將文本文件存成*.wrl文件,最后將它裝入VRML瀏覽器,以3D形式查看。為了向空間添加更多東西,返回字處理器,鍵入其他VRML指令,保存文件,并將它重新讀回VRML瀏覽器。重復(fù)上述操作,逐漸創(chuàng)建自己的虛擬空間。編輯工具推薦VrmlPad2.1VRML文件的編輯運(yùn)行

VRML的編輯VRML的運(yùn)行運(yùn)行環(huán)境要求較低,采用Pentium4以上的計(jì)算機(jī),主頻2G以上、內(nèi)存128M以上、顯存64M以上、硬盤10G以上即可常用的VRML文件瀏覽器有CortonaPlayer和CosmoPlayer,我們這里使用CortonaPlayerVRML的運(yùn)行2.2VRML程序示例#VRMLV2.0utf8DEFqiutiTransform{#坐標(biāo)變換節(jié)點(diǎn)Children[Shape{appearanceAppearance{ materialMaterial{ diffuseColor010 }}GeometrySphere{radius1.1}}]}DEFtimeTimeSensor{#時(shí)間傳感器節(jié)點(diǎn) cycleInterval2.0 loopTRUE}DEFbianhua

PositionInterpolator{#位置插補(bǔ)節(jié)點(diǎn) key[0.0,1.0] keyValue[00-10006]}ROUTEtime.fraction_changedTObianhua.set_fraction#路由ROUTEbianhua.value_changedTOqiuti.set_translation#路由2.2VRML程序示例注意事項(xiàng):

vrml文件區(qū)分大小寫

vrml文件的語(yǔ)法結(jié)構(gòu)。一個(gè)實(shí)用的vrml文件一般由文件頭,節(jié)點(diǎn)和路由組成

vrml文件實(shí)際上是眾多節(jié)點(diǎn)的組合。一個(gè)節(jié)點(diǎn)由節(jié)點(diǎn)名和一對(duì)花括號(hào)組成,花括號(hào)內(nèi)可以有多條語(yǔ)句。路由語(yǔ)句根據(jù)需要可以有多個(gè)。一個(gè)最基本的vrml文件處必需的文件頭外,可以沒(méi)有路由語(yǔ)句,但至少應(yīng)包含一個(gè)節(jié)點(diǎn)。文件頭中的utf8表示文件使用的UTF-8字符集。計(jì)算機(jī)中使用的ASCII字符集是UTF-8字符集的子集。注意事項(xiàng):2.3VRML基本概念

文件頭 VRML文件中的第一行#VRMLV2.0utf8,這是VRML文件頭,任何VRML文件都必須有這樣的文件頭,并且必須放在第一行,它表述了以下三個(gè)含義:(1)#這個(gè)#不是注釋,而是VRML文件的一個(gè)部分;(2)VRML表示告訴瀏覽器,這是個(gè)vrml文件;(3)V2.0表示告訴瀏覽器,這個(gè)文件使用vrml2.0版的規(guī)范完成;(4)utf8表示文件是使用國(guó)際UTF-8的字符集。2.3VRML基本概念

文件頭域可理解為其他高級(jí)語(yǔ)言中的“變量”。分為兩種:普通域,公共域。如上例中radius是普通域,diffuseColor,cycleInterval,loop,key,keyValue為公共域,children也為公共域。VRML的空間坐標(biāo)與計(jì)量單位在構(gòu)建虛擬場(chǎng)景中,構(gòu)成場(chǎng)景的造型有大小的差別,物體間有相對(duì)位置的不同,并且造型還會(huì)有旋轉(zhuǎn)、移動(dòng)等運(yùn)動(dòng)。這就涉及到物體的空間坐標(biāo)系、相應(yīng)的長(zhǎng)度、角度及顏色等。在VRML中,采用空間直角坐標(biāo)系確定造型的位置,并且用特定的計(jì)量單位定量表示長(zhǎng)度。

虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章1.VRML空間坐標(biāo)系在VRML場(chǎng)景中,空間直角坐標(biāo)滿足右手螺旋法則,就是說(shuō),右手四指從X方向轉(zhuǎn)到Y(jié)方向,則拇指的指向是Z方向。在默認(rèn)情況下,X坐標(biāo)向右為正;Y坐標(biāo)向上為正;而Z坐標(biāo)指向觀察者,如圖所示。1.VRML空間坐標(biāo)系2.VRML長(zhǎng)度單位長(zhǎng)度及坐標(biāo)的計(jì)量單位采用VRML單位計(jì)量,在三維空間中,它是統(tǒng)一的,簡(jiǎn)稱為單位。需要注意的是,這里表示的單位和實(shí)際環(huán)境中的計(jì)量沒(méi)有任何可比性,和一些三維建模軟件如3DSMAX的計(jì)量單位也沒(méi)有可比性。在VRML場(chǎng)景中,只有物體間的大小和相對(duì)位置都用VRML單位計(jì)量,才能模擬出真實(shí)的現(xiàn)實(shí)。3.VRML角度單位在VRML中,使用的角度不是普通的角度,而是用弧度表示,這是瀏覽器接受的角度描述。當(dāng)在VRML中使用角度單位中,要先將其換算成弧度后,再將其寫入到VRML源程序中。VRML中的360o角度等于2π弧度,由此,1弧度約等于57o。4.空間立體著色在VRML三維空間中,無(wú)論是背景、光線的顏色、物體,它們的顏色都是由紅、綠、藍(lán)(RGB)組合而成,它們分別對(duì)應(yīng)3個(gè)浮點(diǎn)數(shù),其域值為0.0-1.0之間,由這三原色組合成各種顏色。2.VRML長(zhǎng)度單位節(jié)點(diǎn)和域節(jié)點(diǎn)是VRML文檔中最基本的組成單元,是VRML的精髓與核心。VRML借助于節(jié)點(diǎn)描述對(duì)象某一方面的特征,如各種形狀、材質(zhì)以及顏色等等。VRML場(chǎng)景往往由一組具有一定層次結(jié)構(gòu)的節(jié)點(diǎn)構(gòu)造出來(lái)。每個(gè)節(jié)點(diǎn)包含有子節(jié)點(diǎn)和描述節(jié)點(diǎn)屬性的“域名”、“域值”。相當(dāng)于其它高級(jí)語(yǔ)言中的變量、數(shù)組等,或是數(shù)據(jù)庫(kù)中的字段。節(jié)點(diǎn)和域一般節(jié)點(diǎn)語(yǔ)法定義如:Shape{#Shape模型節(jié)點(diǎn)appearanceAppearance{#定義造型外觀、顏色和表面紋理

materialMaterial{}#描述外觀材質(zhì)屬性

} geometryCone{#指定造型外觀為圓錐體節(jié)點(diǎn)

bottomRadius5.5#指定圓錐體底面半徑

height6.0}#指定圓錐體的高度}一般節(jié)點(diǎn)語(yǔ)法定義如:上述的一段VRML文檔描述了一個(gè)圓錐體的建立,其中Shape、Appearance、Material以及Cone就是節(jié)點(diǎn)。節(jié)點(diǎn)由節(jié)點(diǎn)名、節(jié)點(diǎn)類型、域、事件接口等基本組成部分。不同的節(jié)點(diǎn)包含有不同的域,各個(gè)域沒(méi)有次序之分,每個(gè)域都有自己的默認(rèn)值,而且有些域還可用同名的節(jié)點(diǎn)作為域值。根據(jù)域具有的域值情況的不同,可以把域分為兩類,一類為單值域,用SF標(biāo)記,它用一個(gè)值來(lái)描述對(duì)應(yīng)節(jié)點(diǎn)相應(yīng)的特征。另一類為多值域,用MF標(biāo)記。VRML的域值類型有很多種:比如SFBool表示單域值布爾型,取值為True或者False,以確定某個(gè)屬性是否打開;SFVec2f、MFVec2f表示單(多)域值二維浮點(diǎn)型,取值為兩個(gè)浮點(diǎn)數(shù)值,可用來(lái)確定一個(gè)二維坐標(biāo);而SFVec3f、MFVec3f則表示單(多)域值三維浮點(diǎn)型,取值為三個(gè)浮點(diǎn)數(shù)值,可用來(lái)確定一個(gè)三維坐標(biāo)。上述的一段VRML文檔描述了一個(gè)圓錐體的建立,其中Shape事件和路由在現(xiàn)實(shí)環(huán)境中,事物往往隨著時(shí)間會(huì)有相應(yīng)的變化。比如,物體的顏色隨著時(shí)間發(fā)生變化。在VRML中借助事件和路由的概念反映這種現(xiàn)實(shí)。1.事件在VRML中,每一個(gè)節(jié)點(diǎn)一般都有兩種事件,“入事件”(eventIn)和“出事件”(eventOut),每個(gè)節(jié)點(diǎn)通過(guò)這些“入事件”和“出事件”來(lái)改變節(jié)點(diǎn)自己的域值。如節(jié)點(diǎn)的顏色可以改變,可以表示為接收了這樣一種事件:set_color。當(dāng)節(jié)點(diǎn)被改變了,會(huì)對(duì)改變的狀態(tài)有所反應(yīng),送出一些事件,比如發(fā)出信號(hào),顏色改變了:Color_changed。事件相當(dāng)于高級(jí)程序語(yǔ)言中的函數(shù)調(diào)用。其中,“入事件”相當(dāng)于函數(shù)調(diào)用的入口參數(shù),而“出事件”相當(dāng)于函數(shù)調(diào)用時(shí)返回的參數(shù)。在VRML中的每一個(gè)節(jié)點(diǎn)內(nèi)部有些域被定義為“暴露域”,即指它能夠接收事件,也能輸出事件。事件的調(diào)用是臨時(shí)的,事件的值不會(huì)被寫入VRML中。事件和路由2.路由路由的功能是連接一個(gè)節(jié)點(diǎn)的“入事件”eventIn和另外一個(gè)節(jié)點(diǎn)的“出事件”eventOut。通過(guò)簡(jiǎn)單的語(yǔ)法結(jié)構(gòu),建立兩個(gè)節(jié)點(diǎn)之間的時(shí)間傳送的路徑。路由的說(shuō)明可以在VRML頂部,也可以在文件節(jié)點(diǎn)的某個(gè)域中。路由的出現(xiàn),可使虛擬空間具有交互性、動(dòng)感性與靈活性。借助于事件和路由,能夠使得所建立的虛擬場(chǎng)景更接近于現(xiàn)實(shí)。

2.路由(續(xù)上頁(yè))如語(yǔ)句:ROUTEtime.fraction_changedTObianhua.set_fraction這里,時(shí)間傳感器對(duì)象time在定時(shí)時(shí)間到時(shí)發(fā)生fraction_changed出事件,輸出的時(shí)間值傳送給位置插補(bǔ)節(jié)點(diǎn)對(duì)象bianhua的入事件set_fraction,計(jì)算出和時(shí)間值對(duì)應(yīng)的坐標(biāo)變化值。又語(yǔ)句:ROUTEbianhua.value_changedTOqiuti.set_translationBianhua通過(guò)本身的value_changed出事件將計(jì)算出的新坐標(biāo)值傳遞給球體造型qiuti的入事件set_translation,使球體造型產(chǎn)生位移,于是動(dòng)畫出現(xiàn)了。事件和路由構(gòu)成了VRML的動(dòng)畫體系。(續(xù)上頁(yè))三、創(chuàng)建三維立體造型3.1造型節(jié)點(diǎn)3.2簡(jiǎn)單幾何造型節(jié)點(diǎn)3.3復(fù)雜幾何造型節(jié)點(diǎn)3.4造型的外觀設(shè)計(jì)3.5創(chuàng)建文本造型Chapter3三、創(chuàng)建三維立體造型3.1造型節(jié)點(diǎn)Chapter33.1造型節(jié)點(diǎn)在VRML中創(chuàng)建三維立體造型是最基礎(chǔ)和重要的工作。Shape造型節(jié)點(diǎn)定義了立體造型的幾何形狀、尺寸、色彩、材質(zhì)、紋理等外觀特征。其語(yǔ)法格式如下:Shape{ appearance外觀域結(jié)點(diǎn)

geometry幾何造型域結(jié)點(diǎn)}3.1造型節(jié)點(diǎn)在VRML中創(chuàng)建三維立體造型是最基礎(chǔ)和重要的3.2簡(jiǎn)單幾何造型節(jié)點(diǎn)基本體素的建立形狀幾何由幾何節(jié)點(diǎn)描述,如Box,Cone,Cylinder等。3.2簡(jiǎn)單幾何造型節(jié)點(diǎn)基本體素的建立1.長(zhǎng)方體(Box) Box { sizexyz }x、y、z默認(rèn)值均為2.0域值為默認(rèn)值的域也可省略不寫1.長(zhǎng)方體(Box)2.圓柱體(Cylinder)

Cylinder { radiusr heighth }默認(rèn)r=1.0、h=2.0以y軸為對(duì)稱軸2.圓柱體(Cylinder)3.圓錐體(Cone)

Cone { bottomRadiusr heighth }默認(rèn)r=1.0、h=2.0以y軸為對(duì)稱軸錐頂指向y+向3.圓錐體(Cone)4.球體(Sphere)

Sphere { radiusr }默認(rèn)r=1.04.球體(Sphere)3.3復(fù)雜幾何造型節(jié)點(diǎn)

復(fù)雜形狀的建立

--動(dòng)物、植物、地表、機(jī)械零件,等等...--可借助點(diǎn)、線、面來(lái)構(gòu)建--對(duì)于地表等,甚至有特定的節(jié)點(diǎn)描述,如

ElevationGrid節(jié)點(diǎn)3.3復(fù)雜幾何造型節(jié)點(diǎn)

復(fù)雜形狀的建立PointSetShape{appearanceAppearance{...}geometryPointSet{coordCoordinate{point[...]}}}IndexedLineSetShape{appearanceAppearance{...}geometryIndexedLineSet{coordCoordinate{point[...]}coordIndex[...]}}PointSetIndexedFaceSetShape{appearanceAppearance{...}geometryIndexedFaceSet{coordCoordinate{...}coordIndex[...]solidTRUEccwTRUEconvexTRUE}}IndexedFaceSetElevationGridShape{appearanceAppearance{...}geometryElevationGrid{xDimension3zDimension2xSpacing1.0zSpacing1.0 height[……]...}}ElevationGridExtrusion--條形、管形、環(huán)形…--可由Extrusion節(jié)點(diǎn)建立ExtrusionExtrusion擠出造型節(jié)點(diǎn)語(yǔ)法格式如下:節(jié)點(diǎn)名稱域名稱或事件域值#域、域值或事件類型Extrusion{crossSection[11,1-1,-1-1,,-11,11]#MFVec2fspine [000,010]#MFVec2fscale11#MFVec2forientation0010#MFRotationbeginCapTRUE#SFBoolendCapTRUE#SFBoolccwTRUE#SFBoolconvexTRUE#SFBoolso1idTRUE#SFBoolcreaseAngle0.0#SFF1oatset_crossSection#eventInMFVec3fset_spine#eventInMFVec2fset_scale#eventInMFVec2fset_orientauon#eventInMFRotation}Extrusion擠出造型節(jié)點(diǎn)語(yǔ)法格式如下:Extrusion擠出造型的一個(gè)例子Extrusion擠出造型的一個(gè)例子3.4造型的外觀設(shè)計(jì)Appearance節(jié)點(diǎn)描述外觀

Appearance { material材質(zhì)域結(jié)點(diǎn)

texture貼圖域結(jié)點(diǎn)

}

--

可通過(guò)Material節(jié)點(diǎn)控制材料屬性,如顏色、高光、透明度等。

--可通過(guò)紋理映射為表面增添細(xì)節(jié)。

ImageTexture,PixelTexture,MovieTexture3.4造型的外觀設(shè)計(jì)Appearance節(jié)點(diǎn)描述外觀Material材質(zhì)節(jié)點(diǎn) Material { diffuseColor0.80.80.8--材料漫反射光色(r,g,b),0.0~1.0 specularColor0.00.00.0--材料鏡面反射光色(r,g,b),0.0~1.0 shininess0.2--亮度,0.0~1.0 ambientIntensity0.2--對(duì)比度,0.0~1.0 emissiveColor0.00.00.0--材料發(fā)射光色(r,g,b),0.0~1.0 transparency0.0--材料透明度,0.0~1.0 }Material材質(zhì)節(jié)點(diǎn)造型的色彩設(shè)計(jì)常見RGB分量的配比值RedGreenBlue顏色0.00.O0.0黑0.20.20.2深灰0.50.50.5中灰0.80.80.8淺灰1.01.01,0自1.00.00.0紅0.01.00.0綠0.00.01.0藍(lán)1.01.00.0黃造型的色彩設(shè)計(jì)RedGreenBlue顏色0.00.O0.0幾何造型的簡(jiǎn)單色彩設(shè)計(jì)VRML為整體造型添加同樣的顏色時(shí),只需為diffuseColor域的域值設(shè)置一組合適的RGB分量值,就完成了對(duì)造型基本顏色的設(shè)計(jì)。幾何造型的復(fù)雜色彩設(shè)計(jì)點(diǎn)集和線集造型的色彩設(shè)計(jì):一是通過(guò)Materia1材質(zhì)節(jié)點(diǎn)的emissiveColor域的域值,為造型設(shè)定單一的顏色。(注意:不能使用diffuseColor域的域值設(shè)定點(diǎn)和線造型的顏色,因?yàn)榍懊嬉呀?jīng)說(shuō)過(guò)點(diǎn)集和線集節(jié)點(diǎn)創(chuàng)建的造型不受光源的影響,沒(méi)有光照的情況下,無(wú)論diffuseColor域的域值設(shè)定成什么顏色,瀏覽器均顯示為黑色)二是通過(guò)Pointset點(diǎn)集節(jié)點(diǎn)和IndexedLineSet線集節(jié)點(diǎn)的color域的域值Color顏色節(jié)點(diǎn),為造型設(shè)定不同的顏色。IndexedLineSet線集節(jié)點(diǎn)有color、colorIndex、colorPerVertex三個(gè)域的域值用于為所創(chuàng)建的線段著色。面集造型的色彩設(shè)計(jì):color、colorIndex、colorPerVertex網(wǎng)格標(biāo)高造型的色彩設(shè)計(jì)

color、colorPerVertex

幾何造型的簡(jiǎn)單色彩設(shè)計(jì)四、造型的材質(zhì)設(shè)計(jì)造型的材質(zhì)設(shè)計(jì)是一項(xiàng)復(fù)雜的工作,現(xiàn)實(shí)世界中常用的材料,如金屬、木材、磚瓦、石料、玻璃、塑料等不僅僅是外觀顏色上的差別,材質(zhì)的屬性更多反映在透明度、發(fā)光顏色、反光度、外觀亮度的不同。因此,材質(zhì)設(shè)計(jì)必須依賴于Material節(jié)點(diǎn)中六個(gè)域值的綜合設(shè)定來(lái)完成。下表是常用材質(zhì)域值設(shè)定的參考表。視覺(jué)效果材料漫反射顏色環(huán)境光反射物體鏡面反射顏色材質(zhì)外觀亮度diffuseColorambientIntensitySpecularColorshininess黃金0.50.30.00.40.70.70.60.2白銀0.50.50.70.40.80.80.90.2銅0.40.20.00.280.80.40.00.1鋁0.30.30.50.30.70.70.80.1紅塑料0.80.20.20.10.80.80.80.15綠塑料0.20.20.80.10.80.80.80.15藍(lán)塑料0.20.80.20.10.80.80.80.15四、造型的材質(zhì)設(shè)計(jì)視覺(jué)效果材料漫反射顏色環(huán)境光反射物體鏡面反造型的紋理包裝設(shè)計(jì)ImageTexture節(jié)點(diǎn)示例1

Shape{appearanceAppearance{materialMaterial{}textureImageTexture{url"wood.jpg"}}geometry...}VRML只支持.jpg、.gif圖像格式幾何造型所有的面都有貼圖拉伸型覆蓋圖像文件應(yīng)與VRML文件在同一位置造型的紋理包裝設(shè)計(jì)ImageTexture節(jié)點(diǎn)示例1ImageTexture節(jié)點(diǎn)示例2

Shape{appearanceAppearance{materialMaterial{}texturePixelTexture{image213//width,height,bytes

0xFFFF000xFF0000//pixel,pixelvalues}}geometry...}ImageTexture節(jié)點(diǎn)示例2MovieTexture節(jié)點(diǎn)示例

Shape{appearanceAppearance{materialMaterial{}textureMovieTexture{url"movie.mpg"loopTRUEspeed1.0startTime0.0stopTime0.0}}geometry...}MovieTexture節(jié)點(diǎn)示例紋理變換可以改變紋理在表面上的位置、方向及大小

Shape{appearanceAppearance{materialMaterial{...}textureImageTexture{...}textureTransformTextureTransform{translation0.00.0rotation0.0scale3.03.0}}}紋理變換3.5創(chuàng)建文本造型

結(jié)點(diǎn)結(jié)構(gòu)Shape { appearance外觀域結(jié)點(diǎn)

geometry文本造型域結(jié)點(diǎn)

}文本造型域結(jié)點(diǎn)結(jié)構(gòu)

Text { string“文本”——VRML不支持中文文本

fontStyle字型域結(jié)點(diǎn)

}3.5創(chuàng)建文本造型

結(jié)點(diǎn)結(jié)構(gòu)字型域結(jié)點(diǎn)

FontStyle { family"SERIF"--字體

style"PLAIN"--字形

size1.0--尺寸 language"en_US"--語(yǔ)言

horizontalTRUE--文本方向,TRUE水平/FALSE垂直

justify["BEGIN","FIRST"]--對(duì)齊方式

}字體還有:SANS、TYPEWRITER字形還有:BOLD、ITALIC、BOLDITALIC語(yǔ)言也可以是"zh_CN",但CosmoPlayer不支持。對(duì)齊方式還可以是["MIDDLE","MIDDLE"]文本造型創(chuàng)建在X-Y平面上,Z向厚度為0.0字型域結(jié)點(diǎn)文本方向和對(duì)齊方式的規(guī)定如圖所示。文本方向和對(duì)齊方式的規(guī)定如圖所示。VRML程序設(shè)計(jì)VRML程序設(shè)計(jì)一、虛擬現(xiàn)實(shí)技術(shù)概述1.1虛擬現(xiàn)實(shí)概念特點(diǎn)系統(tǒng)基本構(gòu)成關(guān)鍵技術(shù)應(yīng)用1.2VRMLChapter1一、虛擬現(xiàn)實(shí)技術(shù)概述1.1虛擬現(xiàn)實(shí)Chapter11.1虛擬現(xiàn)實(shí)

虛擬現(xiàn)實(shí)的概念虛擬現(xiàn)實(shí)是利用計(jì)算機(jī)生成一個(gè)逼真的視覺(jué)、聽覺(jué)、觸覺(jué)以及嗅覺(jué)等的模擬環(huán)境(如飛機(jī)駕駛艙、分子結(jié)構(gòu)世界等),通過(guò)多種傳感設(shè)備使用戶“投入”到該環(huán)境中,用戶可通過(guò)其感官與這一生成的虛擬實(shí)體進(jìn)行交互溝通,如同與真實(shí)的環(huán)境直接進(jìn)行自然交互的技術(shù)。這里所謂的“模擬環(huán)境”一般是指用計(jì)算機(jī)生成的有立體感的圖形,它可以是某一特定現(xiàn)實(shí)環(huán)境的表現(xiàn),也可以是純粹構(gòu)想的世界。虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)的是人所感受到的虛擬幻境,所以錢學(xué)森建議把VirtualReality的技術(shù)叫做“靈境技術(shù)”,由它構(gòu)成的信息處理環(huán)境稱作“靈境”。1.1虛擬現(xiàn)實(shí)

虛擬現(xiàn)實(shí)的概念虛擬現(xiàn)實(shí)的特點(diǎn)(3I特性)第一,虛擬現(xiàn)實(shí)技術(shù)是通過(guò)計(jì)算機(jī)生成一個(gè)非常逼真的實(shí)體,逼真要達(dá)到三維的視感,甚至還包括聽覺(jué)、觸覺(jué)和嗅覺(jué)等。這個(gè)逼真的實(shí)體足以成為“迷惑”人類視覺(jué)的虛幻的世界,這種“迷惑”是多方面的,不僅可以看到而且可以聽到、觸到以及嗅到這個(gè)虛擬世界中所發(fā)生的一切。這種感覺(jué)是如此的真實(shí),以至于能全方位地浸沒(méi)在這個(gè)虛幻的世界中,這就是虛擬現(xiàn)實(shí)的第一個(gè)特征,即浸沒(méi)感(Immersion)或臨場(chǎng)參與感。虛擬現(xiàn)實(shí)的特點(diǎn)(3I特性)虛擬現(xiàn)實(shí)的特點(diǎn)第二,虛擬現(xiàn)實(shí)與通常CAD系統(tǒng)所產(chǎn)生的模型是不一樣的,它不是一個(gè)靜態(tài)的世界,而是一個(gè)動(dòng)態(tài)的、開放的環(huán)境,它可以對(duì)使用者的輸入(如手勢(shì),語(yǔ)言命令)作出響應(yīng)。如拿起一個(gè)虛擬的火炬并打開其開關(guān),推動(dòng)操縱桿,就可以在虛擬環(huán)境中的漫游,甚至還可以用虛擬的手感觸到虛擬物體的存在。虛擬現(xiàn)實(shí)環(huán)境可以通過(guò)一些三維傳感設(shè)備來(lái)完成交互動(dòng)作,這是虛擬現(xiàn)實(shí)技術(shù)的第二個(gè)特征,即交互性(Interaction)。虛擬現(xiàn)實(shí)的特點(diǎn)虛擬現(xiàn)實(shí)的特點(diǎn)第三,虛擬現(xiàn)實(shí)不僅僅是一個(gè)媒體,一個(gè)高級(jí)用戶界面,它還是為解決工程、醫(yī)學(xué)、軍事等方面的問(wèn)題而由開發(fā)者設(shè)計(jì)出來(lái)的應(yīng)用軟件,它以詳盡的形式反映了設(shè)計(jì)者的思想。如在蓋一座現(xiàn)代化的大廈之前,首先要做的事是對(duì)這座大廈的結(jié)構(gòu)做細(xì)致的構(gòu)思,為了使之定量化,還需設(shè)計(jì)許多圖紙。這些圖紙反映的是設(shè)計(jì)者的構(gòu)思,虛擬現(xiàn)實(shí)同樣反映的是某個(gè)設(shè)計(jì)者的思想,只不過(guò)它的功能遠(yuǎn)比那些呆板的圖紙生動(dòng)、強(qiáng)大的多,所以國(guó)外有些學(xué)者稱虛擬現(xiàn)實(shí)為放大人們心靈的工具,或人工現(xiàn)實(shí)(artificalreality)。這是虛擬現(xiàn)實(shí)技術(shù)所具有的第三個(gè)特征,即思想性(Imagation)。虛擬現(xiàn)實(shí)的特點(diǎn)虛擬現(xiàn)實(shí)系統(tǒng)的基本構(gòu)成虛擬現(xiàn)實(shí)系統(tǒng)的基本構(gòu)成虛擬現(xiàn)實(shí)技術(shù)的關(guān)鍵技術(shù)(1)動(dòng)態(tài)環(huán)境建模技術(shù)

(2)實(shí)時(shí)三維圖形生成技術(shù)

(3)立體顯示和傳感器技術(shù)

(4)應(yīng)用系統(tǒng)開發(fā)工具

(5)系統(tǒng)集成技術(shù)

虛擬現(xiàn)實(shí)技術(shù)的關(guān)鍵技術(shù)虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用(1)醫(yī)學(xué)

(2)娛樂(lè)、藝術(shù)與教育

(3)軍事與航天工業(yè)

(4)管理工程

簡(jiǎn)單場(chǎng)景示例如下:虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用1.2虛擬現(xiàn)實(shí)建模語(yǔ)言VRML

1.2虛擬現(xiàn)實(shí)建模語(yǔ)言VRML

VRML2.0標(biāo)準(zhǔn)被稱為第二代Web語(yǔ)言VRML2.0標(biāo)準(zhǔn)被稱為第二代Web語(yǔ)言VRML的特點(diǎn)(1)與其它Web技術(shù)語(yǔ)言相比,其語(yǔ)法簡(jiǎn)單、易懂,編輯操作方便,學(xué)習(xí)相對(duì)容易。(2)VRML具有創(chuàng)建三維造型與場(chǎng)景,并可以實(shí)現(xiàn)很好的交互效果。而且可以嵌入Java、JavaScript等程序?qū)崿F(xiàn)人機(jī)交互,從而極大的擴(kuò)充其表現(xiàn)能力,形成更為逼真的虛擬環(huán)境。(3)具有強(qiáng)大的網(wǎng)絡(luò)功能,文件容量小,適宜網(wǎng)絡(luò)傳輸,并可方便地創(chuàng)建立體網(wǎng)頁(yè)與網(wǎng)站。(4)具有多媒體功能,在其程序中可方便地加入聲音、圖像、動(dòng)畫等多媒體效果。(5)具有人工智能功能,在VRML中具有感知功能,可以利用各種傳感器節(jié)點(diǎn)來(lái)實(shí)現(xiàn)用戶與虛擬場(chǎng)景之間的智能交互。(6)在當(dāng)前各種瀏覽器中還不能直接運(yùn)行,必須安裝VRML相關(guān)插件才能看到其效果。

VRML的特點(diǎn)二、VRML的基本知識(shí)2.1VRML文件的編輯運(yùn)行2.2一個(gè)VRML程序示例2.3VRML基本概念Chapter2二、VRML的基本知識(shí)2.1VRML文件的編輯運(yùn)行Ch2.1VRML文件的編輯運(yùn)行

VRML的編輯VRML是文本文件,它向VRML瀏覽器發(fā)出如何為虛擬空間創(chuàng)建3D造型的指令。使用VRML創(chuàng)建自己的虛擬空間,需要VRML瀏覽器(例如Windows中IE的組件VRML2.0)和某種字處理器(如記事本)就可以實(shí)現(xiàn)了。在字處理器鍵入VRML指令。然后,將文本文件存成*.wrl文件,最后將它裝入VRML瀏覽器,以3D形式查看。為了向空間添加更多東西,返回字處理器,鍵入其他VRML指令,保存文件,并將它重新讀回VRML瀏覽器。重復(fù)上述操作,逐漸創(chuàng)建自己的虛擬空間。編輯工具推薦VrmlPad2.1VRML文件的編輯運(yùn)行

VRML的編輯VRML的運(yùn)行運(yùn)行環(huán)境要求較低,采用Pentium4以上的計(jì)算機(jī),主頻2G以上、內(nèi)存128M以上、顯存64M以上、硬盤10G以上即可常用的VRML文件瀏覽器有CortonaPlayer和CosmoPlayer,我們這里使用CortonaPlayerVRML的運(yùn)行2.2VRML程序示例#VRMLV2.0utf8DEFqiutiTransform{#坐標(biāo)變換節(jié)點(diǎn)Children[Shape{appearanceAppearance{ materialMaterial{ diffuseColor010 }}GeometrySphere{radius1.1}}]}DEFtimeTimeSensor{#時(shí)間傳感器節(jié)點(diǎn) cycleInterval2.0 loopTRUE}DEFbianhua

PositionInterpolator{#位置插補(bǔ)節(jié)點(diǎn) key[0.0,1.0] keyValue[00-10006]}ROUTEtime.fraction_changedTObianhua.set_fraction#路由ROUTEbianhua.value_changedTOqiuti.set_translation#路由2.2VRML程序示例注意事項(xiàng):

vrml文件區(qū)分大小寫

vrml文件的語(yǔ)法結(jié)構(gòu)。一個(gè)實(shí)用的vrml文件一般由文件頭,節(jié)點(diǎn)和路由組成

vrml文件實(shí)際上是眾多節(jié)點(diǎn)的組合。一個(gè)節(jié)點(diǎn)由節(jié)點(diǎn)名和一對(duì)花括號(hào)組成,花括號(hào)內(nèi)可以有多條語(yǔ)句。路由語(yǔ)句根據(jù)需要可以有多個(gè)。一個(gè)最基本的vrml文件處必需的文件頭外,可以沒(méi)有路由語(yǔ)句,但至少應(yīng)包含一個(gè)節(jié)點(diǎn)。文件頭中的utf8表示文件使用的UTF-8字符集。計(jì)算機(jī)中使用的ASCII字符集是UTF-8字符集的子集。注意事項(xiàng):2.3VRML基本概念

文件頭 VRML文件中的第一行#VRMLV2.0utf8,這是VRML文件頭,任何VRML文件都必須有這樣的文件頭,并且必須放在第一行,它表述了以下三個(gè)含義:(1)#這個(gè)#不是注釋,而是VRML文件的一個(gè)部分;(2)VRML表示告訴瀏覽器,這是個(gè)vrml文件;(3)V2.0表示告訴瀏覽器,這個(gè)文件使用vrml2.0版的規(guī)范完成;(4)utf8表示文件是使用國(guó)際UTF-8的字符集。2.3VRML基本概念

文件頭域可理解為其他高級(jí)語(yǔ)言中的“變量”。分為兩種:普通域,公共域。如上例中radius是普通域,diffuseColor,cycleInterval,loop,key,keyValue為公共域,children也為公共域。VRML的空間坐標(biāo)與計(jì)量單位在構(gòu)建虛擬場(chǎng)景中,構(gòu)成場(chǎng)景的造型有大小的差別,物體間有相對(duì)位置的不同,并且造型還會(huì)有旋轉(zhuǎn)、移動(dòng)等運(yùn)動(dòng)。這就涉及到物體的空間坐標(biāo)系、相應(yīng)的長(zhǎng)度、角度及顏色等。在VRML中,采用空間直角坐標(biāo)系確定造型的位置,并且用特定的計(jì)量單位定量表示長(zhǎng)度。

虛擬現(xiàn)實(shí)vrml程序設(shè)計(jì)1-2-3章1.VRML空間坐標(biāo)系在VRML場(chǎng)景中,空間直角坐標(biāo)滿足右手螺旋法則,就是說(shuō),右手四指從X方向轉(zhuǎn)到Y(jié)方向,則拇指的指向是Z方向。在默認(rèn)情況下,X坐標(biāo)向右為正;Y坐標(biāo)向上為正;而Z坐標(biāo)指向觀察者,如圖所示。1.VRML空間坐標(biāo)系2.VRML長(zhǎng)度單位長(zhǎng)度及坐標(biāo)的計(jì)量單位采用VRML單位計(jì)量,在三維空間中,它是統(tǒng)一的,簡(jiǎn)稱為單位。需要注意的是,這里表示的單位和實(shí)際環(huán)境中的計(jì)量沒(méi)有任何可比性,和一些三維建模軟件如3DSMAX的計(jì)量單位也沒(méi)有可比性。在VRML場(chǎng)景中,只有物體間的大小和相對(duì)位置都用VRML單位計(jì)量,才能模擬出真實(shí)的現(xiàn)實(shí)。3.VRML角度單位在VRML中,使用的角度不是普通的角度,而是用弧度表示,這是瀏覽器接受的角度描述。當(dāng)在VRML中使用角度單位中,要先將其換算成弧度后,再將其寫入到VRML源程序中。VRML中的360o角度等于2π弧度,由此,1弧度約等于57o。4.空間立體著色在VRML三維空間中,無(wú)論是背景、光線的顏色、物體,它們的顏色都是由紅、綠、藍(lán)(RGB)組合而成,它們分別對(duì)應(yīng)3個(gè)浮點(diǎn)數(shù),其域值為0.0-1.0之間,由這三原色組合成各種顏色。2.VRML長(zhǎng)度單位節(jié)點(diǎn)和域節(jié)點(diǎn)是VRML文檔中最基本的組成單元,是VRML的精髓與核心。VRML借助于節(jié)點(diǎn)描述對(duì)象某一方面的特征,如各種形狀、材質(zhì)以及顏色等等。VRML場(chǎng)景往往由一組具有一定層次結(jié)構(gòu)的節(jié)點(diǎn)構(gòu)造出來(lái)。每個(gè)節(jié)點(diǎn)包含有子節(jié)點(diǎn)和描述節(jié)點(diǎn)屬性的“域名”、“域值”。相當(dāng)于其它高級(jí)語(yǔ)言中的變量、數(shù)組等,或是數(shù)據(jù)庫(kù)中的字段。節(jié)點(diǎn)和域一般節(jié)點(diǎn)語(yǔ)法定義如:Shape{#Shape模型節(jié)點(diǎn)appearanceAppearance{#定義造型外觀、顏色和表面紋理

materialMaterial{}#描述外觀材質(zhì)屬性

} geometryCone{#指定造型外觀為圓錐體節(jié)點(diǎn)

bottomRadius5.5#指定圓錐體底面半徑

height6.0}#指定圓錐體的高度}一般節(jié)點(diǎn)語(yǔ)法定義如:上述的一段VRML文檔描述了一個(gè)圓錐體的建立,其中Shape、Appearance、Material以及Cone就是節(jié)點(diǎn)。節(jié)點(diǎn)由節(jié)點(diǎn)名、節(jié)點(diǎn)類型、域、事件接口等基本組成部分。不同的節(jié)點(diǎn)包含有不同的域,各個(gè)域沒(méi)有次序之分,每個(gè)域都有自己的默認(rèn)值,而且有些域還可用同名的節(jié)點(diǎn)作為域值。根據(jù)域具有的域值情況的不同,可以把域分為兩類,一類為單值域,用SF標(biāo)記,它用一個(gè)值來(lái)描述對(duì)應(yīng)節(jié)點(diǎn)相應(yīng)的特征。另一類為多值域,用MF標(biāo)記。VRML的域值類型有很多種:比如SFBool表示單域值布爾型,取值為True或者False,以確定某個(gè)屬性是否打開;SFVec2f、MFVec2f表示單(多)域值二維浮點(diǎn)型,取值為兩個(gè)浮點(diǎn)數(shù)值,可用來(lái)確定一個(gè)二維坐標(biāo);而SFVec3f、MFVec3f則表示單(多)域值三維浮點(diǎn)型,取值為三個(gè)浮點(diǎn)數(shù)值,可用來(lái)確定一個(gè)三維坐標(biāo)。上述的一段VRML文檔描述了一個(gè)圓錐體的建立,其中Shape事件和路由在現(xiàn)實(shí)環(huán)境中,事物往往隨著時(shí)間會(huì)有相應(yīng)的變化。比如,物體的顏色隨著時(shí)間發(fā)生變化。在VRML中借助事件和路由的概念反映這種現(xiàn)實(shí)。1.事件在VRML中,每一個(gè)節(jié)點(diǎn)一般都有兩種事件,“入事件”(eventIn)和“出事件”(eventOut),每個(gè)節(jié)點(diǎn)通過(guò)這些“入事件”和“出事件”來(lái)改變節(jié)點(diǎn)自己的域值。如節(jié)點(diǎn)的顏色可以改變,可以表示為接收了這樣一種事件:set_color。當(dāng)節(jié)點(diǎn)被改變了,會(huì)對(duì)改變的狀態(tài)有所反應(yīng),送出一些事件,比如發(fā)出信號(hào),顏色改變了:Color_changed。事件相當(dāng)于高級(jí)程序語(yǔ)言中的函數(shù)調(diào)用。其中,“入事件”相當(dāng)于函數(shù)調(diào)用的入口參數(shù),而“出事件”相當(dāng)于函數(shù)調(diào)用時(shí)返回的參數(shù)。在VRML中的每一個(gè)節(jié)點(diǎn)內(nèi)部有些域被定義為“暴露域”,即指它能夠接收事件,也能輸出事件。事件的調(diào)用是臨時(shí)的,事件的值不會(huì)被寫入VRML中。事件和路由2.路由路由的功能是連接一個(gè)節(jié)點(diǎn)的“入事件”eventIn和另外一個(gè)節(jié)點(diǎn)的“出事件”eventOut。通過(guò)簡(jiǎn)單的語(yǔ)法結(jié)構(gòu),建立兩個(gè)節(jié)點(diǎn)之間的時(shí)間傳送的路徑。路由的說(shuō)明可以在VRML頂部,也可以在文件節(jié)點(diǎn)的某個(gè)域中。路由的出現(xiàn),可使虛擬空間具有交互性、動(dòng)感性與靈活性。借助于事件和路由,能夠使得所建立的虛擬場(chǎng)景更接近于現(xiàn)實(shí)。

2.路由(續(xù)上頁(yè))如語(yǔ)句:ROUTEtime.fraction_changedTObianhua.set_fraction這里,時(shí)間傳感器對(duì)象time在定時(shí)時(shí)間到時(shí)發(fā)生fraction_changed出事件,輸出的時(shí)間值傳送給位置插補(bǔ)節(jié)點(diǎn)對(duì)象bianhua的入事件set_fraction,計(jì)算出和時(shí)間值對(duì)應(yīng)的坐標(biāo)變化值。又語(yǔ)句:ROUTEbianhua.value_changedTOqiuti.set_translationBianhua通過(guò)本身的value_changed出事件將計(jì)算出的新坐標(biāo)值傳遞給球體造型qiuti的入事件set_translation,使球體造型產(chǎn)生位移,于是動(dòng)畫出現(xiàn)了。事件和路由構(gòu)成了VRML的動(dòng)畫體系。(續(xù)上頁(yè))三、創(chuàng)建三維立體造型3.1造型節(jié)點(diǎn)3.2簡(jiǎn)單幾何造型節(jié)點(diǎn)3.3復(fù)雜幾何造型節(jié)點(diǎn)3.4造型的外觀設(shè)計(jì)3.5創(chuàng)建文本造型Chapter3三、創(chuàng)建三維立體造型3.1造型節(jié)點(diǎn)Chapter33.1造型節(jié)點(diǎn)在VRML中創(chuàng)建三維立體造型是最基礎(chǔ)和重要的工作。Shape造型節(jié)點(diǎn)定義了立體造型的幾何形狀、尺寸、色彩、材質(zhì)、紋理等外觀特征。其語(yǔ)法格式如下:Shape{ appearance外觀域結(jié)點(diǎn)

geometry幾何造型域結(jié)點(diǎn)}3.1造型節(jié)點(diǎn)在VRML中創(chuàng)建三維立體造型是最基礎(chǔ)和重要的3.2簡(jiǎn)單幾何造型節(jié)點(diǎn)基本體素的建立形狀幾何由幾何節(jié)點(diǎn)描述,如Box,Cone,Cylinder等。3.2簡(jiǎn)單幾何造型節(jié)點(diǎn)基本體素的建立1.長(zhǎng)方體(Box) Box { sizexyz }x、y、z默認(rèn)值均為2.0域值為默認(rèn)值的域也可省略不寫1.長(zhǎng)方體(Box)2.圓柱體(Cylinder)

Cylinder { radiusr heighth }默認(rèn)r=1.0、h=2.0以y軸為對(duì)稱軸2.圓柱體(Cylinder)3.圓錐體(Cone)

Cone { bottomRadiusr heighth }默認(rèn)r=1.0、h=2.0以y軸為對(duì)稱軸錐頂指向y+向3.圓錐體(Cone)4.球體(Sphere)

Sphere { radiusr }默認(rèn)r=1.04.球體(Sphere)3.3復(fù)雜幾何造型節(jié)點(diǎn)

復(fù)雜形狀的建立

--動(dòng)物、植物、地表、機(jī)械零件,等等...--可借助點(diǎn)、線、面來(lái)構(gòu)建--對(duì)于地表等,甚至有特定的節(jié)點(diǎn)描述,如

ElevationGrid節(jié)點(diǎn)3.3復(fù)雜幾何造型節(jié)點(diǎn)

復(fù)雜形狀的建立PointSetShape{appearanceAppearance{...}geometryPointSet{coordCoordinate{point[...]}}}IndexedLineSetShape{appearanceAppearance{...}geometryIndexedLineSet{coordCoordinate{point[...]}coordIndex[...]}}PointSetIndexedFaceSetShape{appearanceAppearance{...}geometryIndexedFaceSet{coordCoordinate{...}coordIndex[...]solidTRUEccwTRUEconvexTRUE}}IndexedFaceSetElevationGridShape{appearanceAppearance{...}geometryElevationGrid{xDimension3zDimension2xSpacing1.0zSpacing1.0 height[……]...}}ElevationGridExtrusion--條形、管形、環(huán)形…--可由Extrusion節(jié)點(diǎn)建立ExtrusionExtrusion擠出造型節(jié)點(diǎn)語(yǔ)法格式如下:節(jié)點(diǎn)名稱域名稱或事件域值#域、域值或事件類型Extrusion{crossSection[11,1-1,-1-1,,-11,11]#MFVec2fspine [000,010]#MFVec2fscale11#MFVec2forientation0010#MFRotationbeginCapTRUE#SFBoolendCapTRUE#SFBoolccwTRUE#SFBoolconvexTRUE#SFBoolso1idTRUE#SFBoolcreaseAngle0.0#SFF1oatset_crossSection#eventInMFVec3fset_spine#eventInMFVec2fset_scale#eventInMFVec2fset_orientauon#eventInMFRotation}Extrusion擠出造型節(jié)點(diǎn)語(yǔ)法格式如下:Extrusion擠出造型的一個(gè)例子Extrusion擠出造型的一個(gè)例子3.4造型的外觀設(shè)計(jì)Appearance節(jié)點(diǎn)描述外觀

Appearance { material材質(zhì)域結(jié)點(diǎn)

texture貼圖域結(jié)點(diǎn)

}

--

可通過(guò)Material節(jié)點(diǎn)控制材料屬性,如顏色、高光、透明度等。

--可通過(guò)紋理映射為表面增添細(xì)節(jié)。

ImageTexture,PixelTexture,MovieTexture3.4造型的外觀設(shè)計(jì)Appearance節(jié)點(diǎn)描述外觀Material材質(zhì)節(jié)點(diǎn) Material { diffuseColor0.80.80.8--材料漫反射光色(r,g,b),0.0~1.0 specularColor0.00.00.0--材料鏡面反射光色(r,g,b),0.0~1.0 shininess0.2--亮度,0.0~1.0 ambientIntensity0.2--對(duì)比度,0.0~1.0 emissiveColor0.00.00.0--材料發(fā)射光色(r,g,b),0.0~1.0 transparency0.0--材料透明度,0.0~1.0 }Material材質(zhì)節(jié)點(diǎn)造型的色彩設(shè)計(jì)常見RGB分量的配比值RedGreenBlue顏色0.00.O0.0黑0.20.20.2深灰0.50.50.5中灰0.80.80.8淺灰1.01.01,0自1.00.00.0紅0.01.00.0綠0.00.01.0藍(lán)1.01.00.0黃造型的色彩設(shè)計(jì)RedGreenBlue顏色0.00.O0.0幾何造型的簡(jiǎn)單色彩設(shè)計(jì)VRML為整體造型添加同樣的顏色時(shí),只需為diffuseColor域的域值設(shè)置一組合適的RGB分量值,就完成了對(duì)造型基本顏色的設(shè)計(jì)。幾何造型的復(fù)雜色彩設(shè)計(jì)點(diǎn)集和線集造型的色彩設(shè)計(jì):一是通過(guò)Materia1材質(zhì)節(jié)點(diǎn)的emissiveColor域的域值,為造型設(shè)定單一的顏色。(注意:不能使用diffuseColor域的域值設(shè)定點(diǎn)和線造型的顏色,因?yàn)榍懊嬉呀?jīng)說(shuō)過(guò)點(diǎn)集和線集節(jié)點(diǎn)創(chuàng)建的造型不受光源的影響,沒(méi)有光照的情況下,無(wú)論diffuseColor域的域值設(shè)定成什么顏色,瀏覽器均顯示為黑色)二是通過(guò)Pointset點(diǎn)集節(jié)點(diǎn)和IndexedLineSet線集節(jié)點(diǎn)的color域的域值Color顏色節(jié)點(diǎn),為造型設(shè)定不同的顏色。IndexedLineSet線集節(jié)點(diǎn)有color、colorIndex、colorPerVertex三個(gè)域的域值用于為所創(chuàng)建的線段著色。面集造型的色彩設(shè)計(jì):color、colorIndex、colorPerVertex網(wǎng)格標(biāo)高造型的色彩設(shè)計(jì)

color、colorPerVertex

幾何造型的簡(jiǎn)單色彩設(shè)計(jì)四、造型的材質(zhì)設(shè)計(jì)造型的材質(zhì)設(shè)計(jì)是一項(xiàng)復(fù)雜的工作,現(xiàn)實(shí)世界中常用的材料,如金屬、木材、

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論