版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章虛擬現(xiàn)實(shí)建模語(yǔ)言——VRML1精選完整ppt課件本章各小節(jié)目錄2.1VRML的基本概念2.2VRML文件的基本要素2.3VRML的通用語(yǔ)法結(jié)構(gòu)2.4VRML的空間計(jì)量單位2.5VRML場(chǎng)景的編輯與瀏覽本章小結(jié)2精選完整ppt課件通過前面章節(jié)的學(xué)習(xí),對(duì)于虛擬現(xiàn)實(shí)技術(shù)有了一定的了解。本章主要學(xué)習(xí)在網(wǎng)絡(luò)上實(shí)現(xiàn)虛擬現(xiàn)實(shí)場(chǎng)景建模的技術(shù)術(shù)——虛擬現(xiàn)實(shí)建模語(yǔ)言(VirtualRealityModelingLanguage),該技術(shù)專門用來在網(wǎng)絡(luò)上實(shí)現(xiàn)三維虛擬場(chǎng)景。3精選完整ppt課件2.1VRML的基本概念VRML是一種建模語(yǔ)言,用來在Web環(huán)境中描述三維物體及其行為,從而在網(wǎng)絡(luò)環(huán)境中構(gòu)建虛擬場(chǎng)景(VirtualWorld)。VRML的基本目標(biāo)是建立因特網(wǎng)上的交互式三維多媒體環(huán)境。它以因特網(wǎng)作為應(yīng)用平臺(tái),作為構(gòu)筑虛擬現(xiàn)實(shí)應(yīng)用的基本構(gòu)架VRML具有包括分布式、三維、交互性、多媒體集成、境界逼真性等基本特征。VRML的出現(xiàn)及其發(fā)展使得虛擬現(xiàn)實(shí)能像多媒體和因特網(wǎng)一樣逐漸走進(jìn)我們的生活。隨著計(jì)算機(jī)技術(shù)特別是多媒體技術(shù)和互聯(lián)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們對(duì)于計(jì)算機(jī)所能展示的以及網(wǎng)4精選完整ppt課件絡(luò)所能傳播的信息有了越來越高的要求。不再僅僅滿足于文字表達(dá)的信息以及傳統(tǒng)的平面和三維技術(shù)帶來的信息表達(dá)方式,更希望以接近于現(xiàn)實(shí)的甚至是身臨其境的感覺交流信息。這樣,以虛擬現(xiàn)實(shí)為特征的網(wǎng)絡(luò)3D技術(shù)的出現(xiàn)和發(fā)展勢(shì)在必行的。而VRML就是網(wǎng)絡(luò)3D的核心技術(shù)。1994年5月,第一屆因特網(wǎng)國(guó)際會(huì)議上,有關(guān)專家發(fā)表的在網(wǎng)絡(luò)上運(yùn)行三維立體世界的研究引起了廣泛的討論。短短的幾個(gè)月,1994年10月,VRML1.0規(guī)范正式發(fā)布。這以后,許多專家、企業(yè)積極投身于VRML的推廣和研究,特別是VRML技術(shù)組(VAG)不懈的努力,VRML得到了迅速的發(fā)展。即便現(xiàn)在,在因特網(wǎng)上也還能夠看到許多用VRML1.0規(guī)范寫的VRML文檔在流傳,具有5精選完整ppt課件相當(dāng)高的水平,記述了當(dāng)年熱心于VRML發(fā)展和推廣的人們的努力。1996年,VRML2.0規(guī)范正式確定。到1998年1月被ISO正式批準(zhǔn)為國(guó)際標(biāo)準(zhǔn),這就是現(xiàn)在我們常說的VRML97。從此VRML的發(fā)展更為迅速,更為成熟。6精選完整ppt課件2.2VRML文件的基本要素7精選完整ppt課件2.2.1節(jié)點(diǎn)(node)和域(field)VRML文件的擴(kuò)展名為wrl,文件中最為重要的兩個(gè)基本要素是節(jié)點(diǎn)和域。節(jié)點(diǎn)節(jié)點(diǎn)是VRML文檔中基本的組成單元,VRML借助于節(jié)點(diǎn)可以描述對(duì)象某一方面的特征,比如:形狀、材質(zhì)以及顏色等,也可以描述對(duì)于場(chǎng)景的渲染方式,如光照、背景聲音等,還可以設(shè)置瀏覽者與場(chǎng)景交流的方式,如視點(diǎn)的變化、用戶鼠標(biāo)動(dòng)作的監(jiān)測(cè)等。VRML虛擬環(huán)境往往由一組具有一定層次結(jié)構(gòu)的節(jié)點(diǎn)構(gòu)8精選完整ppt課件造出來。例如:Shape{appearanceAppearance{materialMaterial{}}geometryCylinder{radius0.5height6.0}}上述的一段VRML文檔描述了一個(gè)圓柱體的造型,其中Shape、Appearance、Material以及Cylinder等等都是節(jié)點(diǎn)。9精選完整ppt課件節(jié)點(diǎn)具有節(jié)點(diǎn)名、節(jié)點(diǎn)類型、包含的域、事件接口等基本組成部分。在設(shè)計(jì)場(chǎng)景的時(shí)候,節(jié)點(diǎn)的第一個(gè)字母必須大寫。2.域域用來描述節(jié)點(diǎn)的屬性。域具有域值,它指明了節(jié)點(diǎn)所描述的對(duì)象的特征。上述的一段VRML文檔中,Cylinder是一個(gè)節(jié)點(diǎn),用來構(gòu)造一個(gè)圓柱體,而radius和height則是Cylinder節(jié)點(diǎn)的兩個(gè)域,分別表示圓柱體的半徑和高,它們描述了圓柱體所具有的形狀特征。可以直觀看出,其半徑為0.5VRML單位,高為6.0VRML單位。appearance、material、geometry也都是域。10精選完整ppt課件不同的節(jié)點(diǎn)包含有不同的域,節(jié)點(diǎn)中域的作用各不相同,域值的數(shù)據(jù)類型也不一定一樣,每個(gè)域值只能夠有一種數(shù)據(jù)類型。有的域可以用布爾型數(shù)據(jù)TRUE或者FALSE表示一種狀態(tài)。另外的域可以用(rgb)三原色表示顏色,而且從上面的一段VRML文檔也可以看出,有些域還用同名的節(jié)點(diǎn)作為域值。比如appearance域,其域值是Appearance節(jié)點(diǎn)。在使用域的時(shí)候,不必設(shè)置每個(gè)域,每個(gè)域都有自己的默認(rèn)值,對(duì)于一個(gè)節(jié)點(diǎn),如果不設(shè)置域,則每個(gè)域都取自己的默認(rèn)值。下面三個(gè)小程序都取自己的默認(rèn)值。下面三個(gè)小程序都能夠運(yùn)行,表示一個(gè)邊長(zhǎng)為1.0的正方體,但是由于設(shè)置不同,表現(xiàn)的材質(zhì)特征(比如顏色、發(fā)光狀態(tài)等)則不同。11精選完整ppt課件例2.1#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}}geometryBox{}}例2.2#VRMLV2.0utf8Shape{appearanceAppearance{}geometryBox{}}12精選完整ppt課件例2.3#VRMLV2.0utf8Shape{geometryBox{}}可以用記事本等文本編輯工具書寫這些簡(jiǎn)單的程序并且保存為wrl文件在瀏覽器中觀察效果。例2.1設(shè)置了造型的外觀、材質(zhì),但是均取默認(rèn)值;例2.2設(shè)置了造型、外觀,沒有設(shè)置材質(zhì);例2.3只設(shè)置了造型(box),造型默認(rèn)是邊長(zhǎng)為1.0的正方體。在使用域的時(shí)候應(yīng)該注意,在同一節(jié)點(diǎn)中,各個(gè)域沒有次序之分,哪個(gè)在前,哪個(gè)在后效果是一樣的。并且13精選完整ppt課件,域名稱第一個(gè)字母必須小寫。域和節(jié)點(diǎn)書寫的情況不同。節(jié)點(diǎn)應(yīng)該用大括號(hào){}將所有的域括起來。域值一般可以跟在域名稱后面直接寫。如果是多域值的情況,要用中括號(hào)[]將域值括起來,域值之間用逗號(hào)或者空格隔開。從域具有的域值情況的不同,可以把域分為兩類,一類為單值域,用SF(Singlevaluefields)標(biāo)記,顧名思義,它用一個(gè)或者一組值來描述對(duì)應(yīng)節(jié)點(diǎn)相應(yīng)的特征。另一類為多值域,用多個(gè)或者多組值描述對(duì)應(yīng)節(jié)點(diǎn)的特征,標(biāo)記為MF(Multiplevaluefields)。所謂多域值,并非是指由多個(gè)數(shù),而是由其數(shù)據(jù)類型確定的。比如三原色表示為(rgb),是三個(gè)數(shù)值確定一個(gè)顏色。比如,造型表面的漫散射光的顏色表示為:diffuseColor1.00.00.0,表示紅顏色,只用這一組就可確定,故其14精選完整ppt課件是單域值。有的表示顏色的域值,要有許多組來表示,比如表示背景的天空的顏色,為了顯示出層次,會(huì)用到幾組顏色值來表示,比如:skyColor[1.00.00.01.00.40.01.01.00.0]這里用到了三組,是多域值。如果編程的時(shí)候要寫為一行,各組中間可用空格或者逗號(hào)隔開。VRML有下述幾種域值類型:SFBool單域值布爾型。取值為TRUE或者FALSE,確定某個(gè)屬性是否有效。如一個(gè)圓錐體是否要底面,光源是否打開等。注意這里不能像程序設(shè)計(jì)語(yǔ)言那樣用1或者0取代TRUE或15精選完整ppt課件FALSE。SFColor和MFColor單域值顏色型和多域值顏色型。取值為3個(gè)浮點(diǎn)數(shù)組成的數(shù)組,對(duì)應(yīng)RGB規(guī)定的顏色,這里只能取0到1間的數(shù)值。例如:光照的顏色、物體的鏡面反射顏色等。SFInt32和MFInt32單域值32位整數(shù)和多域值32位整數(shù)。取值為正整數(shù)。例如某些節(jié)點(diǎn)的索引列表域。SFVec2f和MFVec2f單域值二維浮點(diǎn)型和多域值二維浮點(diǎn)型。取值為兩個(gè)浮點(diǎn)數(shù)值,用來確定一個(gè)二維的位置。SFVec3f和MFVec3f單域值三維浮點(diǎn)型和多域值三維浮點(diǎn)型。取值為三個(gè)浮點(diǎn)數(shù)值,用來確定一個(gè)三維的位置。16精選完整ppt課件SFNode和MFNode單域值節(jié)點(diǎn)型和多域值節(jié)點(diǎn)型。取值為一個(gè)或者多個(gè)節(jié)點(diǎn),用來更進(jìn)一步描述該域的特征。例如:表示材質(zhì)屬性的域material其域值是構(gòu)建材質(zhì)的節(jié)點(diǎn)Material,該節(jié)點(diǎn)帶有一些域,用來表述造型的材質(zhì)。SFImage單域值圖像型。取值為一些描述圖像特性的數(shù)值,可以繪制造型表面的紋理圖像。比如在紋理貼圖中的像素貼圖。SFRotation和MFRotation單域值旋轉(zhuǎn)型和多域值旋轉(zhuǎn)型。取值為4個(gè)浮點(diǎn)數(shù)構(gòu)成的一組數(shù)值,前三個(gè)確定旋轉(zhuǎn)軸,第四個(gè)指定繞軸旋轉(zhuǎn)的角度。用來描述對(duì)象的旋轉(zhuǎn)特征。17精選完整ppt課件SFString和MFString單域值字符串型和多域值字符串型。取值為字符串。用來表達(dá)某些要用文字表述的含義比如在文本造型中描述字體風(fēng)格的域值。SFTime和MFTime單域值時(shí)間型和多域值時(shí)間型。取值為以秒計(jì)算的時(shí)間。用來描述時(shí)間。比如控制造型開始運(yùn)動(dòng)或者停止運(yùn)動(dòng)的時(shí)間。SFFloat和MFFloat單域值浮點(diǎn)型和多域值浮點(diǎn)型。取值為單精度浮點(diǎn)數(shù),可以是正值、負(fù)值。用來描述需要用浮點(diǎn)數(shù)確定的性質(zhì)。比如用來對(duì)造型尺寸的描述,對(duì)于角度弧度值的描述等。多域值浮點(diǎn)數(shù)的值包含多個(gè)這樣的浮點(diǎn)數(shù),以描述要用多個(gè)浮點(diǎn)數(shù)確定的性質(zhì),比如構(gòu)建背景的各個(gè)顏色層對(duì)應(yīng)的角度等。18精選完整ppt課件2.2.2事件(Event)和路由(Route)在現(xiàn)實(shí)環(huán)境中,事物往往隨著時(shí)間會(huì)有相應(yīng)的變化。比如,物體的位置隨著時(shí)間發(fā)生變化。在VRML中借助事件和路由的概念控制這種變化,從而真實(shí)地在網(wǎng)絡(luò)中反映現(xiàn)實(shí)。在交互和動(dòng)畫設(shè)計(jì)中會(huì)用到事件和路由。節(jié)點(diǎn)的某些特征可以通過接收事件而改變。比如,一個(gè)場(chǎng)景被設(shè)計(jì)為用戶的鼠標(biāo)指針移到某個(gè)對(duì)象上時(shí),造型的顏色發(fā)生變化。用檢測(cè)器節(jié)點(diǎn)檢測(cè)到用戶的動(dòng)作,就輸出事件給相應(yīng)的節(jié)點(diǎn)中描述顏色的域發(fā)送一個(gè)事件,該域接收了這個(gè)事件,改變顏色,可以表示為:set_color。當(dāng)節(jié)點(diǎn)的相應(yīng)的域被改變了,會(huì)對(duì)改變的狀態(tài)有所反應(yīng),送出一些事件,比如發(fā)19精選完整ppt課件出信號(hào),顏色改變了,可以表示為:Color_changed。這些是事件的通常用法,隨情況的不同,表達(dá)也會(huì)有些差別。事件有兩種:入事件EventIn,表示接收事件;出事件EventOut,表示發(fā)送事件。輸入事件EventIn和輸出事件EventOut表示節(jié)點(diǎn)之間的聯(lián)系方式,也就是一種接口。許多節(jié)點(diǎn)中域的接口類型是exposedfield,通稱為可見域,以后在具體討論事件和路由時(shí)再詳細(xì)說明。路由的功能是連接一個(gè)節(jié)點(diǎn)的接收事件eventIns和另外一個(gè)節(jié)點(diǎn)的發(fā)送事件eventouts。通過簡(jiǎn)單的語(yǔ)法結(jié)構(gòu),建立兩個(gè)節(jié)點(diǎn)之間事件傳送的通道。當(dāng)有事件發(fā)生時(shí),沿著這條通道傳送事件。借助于事件和路由,可以創(chuàng)建動(dòng)畫效果以及瀏覽者和場(chǎng)景的交互,使得所建立的虛擬場(chǎng)景更接近于現(xiàn)實(shí)。20精選完整ppt課件2.2.3VRML元素的描述方法學(xué)習(xí)各個(gè)節(jié)點(diǎn)的時(shí)候,不僅僅要知道該節(jié)點(diǎn)的作用,使用在什么場(chǎng)合,還應(yīng)該確切的理解節(jié)點(diǎn)中各個(gè)元素(比如,域、事件接口等)的意義。一方面能夠熟練地使用節(jié)點(diǎn)構(gòu)建所需要的場(chǎng)景,提高開發(fā)效率。另外一方面,能夠全面地了解節(jié)點(diǎn)之間的關(guān)系,在創(chuàng)建交互式場(chǎng)景的時(shí)候,明確某個(gè)節(jié)點(diǎn)和其他節(jié)點(diǎn)之間事件傳遞的方式,從而在使用的時(shí)候更加得心應(yīng)手。以Anchor節(jié)點(diǎn)為例,說明在本書中節(jié)點(diǎn)的描述方法:Anchor{children[]#exposefieldMFNodedescription“”#exposefieldSFStringparameter[]#exposefieldMFStringurl“”#exposefieldMFString21精選完整ppt課件bboxCenter000#SFVec3fbboxSize-1-1-1#SFVec3f}第一列為節(jié)點(diǎn)名稱,這里是Anchor;第二列為域名稱,比如children;第三列為該域的默認(rèn)域值,比如[],默認(rèn)是空值,對(duì)于這里的情況來說,表示不帶任何子節(jié)點(diǎn);第四列為域的事件接口類型,如#exposefield,表示children域的接口類型是“可見域”,以后在討論動(dòng)畫等內(nèi)容的時(shí)候再詳細(xì)說明“可見域”的含義。并不是所有的域都是這樣的類型,可以看到Anchor節(jié)點(diǎn)最后的兩個(gè)域就不是這樣的類型;第五列為域類型,比如MFNode,表示多域值節(jié)點(diǎn)型,即可以帶有多個(gè)節(jié)點(diǎn)作為域值。其中,事件接口和域類型只是對(duì)于域的進(jìn)一步說明,在使用節(jié)點(diǎn)的時(shí)候不必列出。22精選完整ppt課件仿照說明,可以得知域url的默認(rèn)值是一個(gè)空值,是可見域,并且是多域值字符串型,即如果必要,可以在url后面跟上多個(gè)描述文件路徑的字符串值。除了上面介紹的節(jié)點(diǎn)的一般形式以外,對(duì)于節(jié)點(diǎn),還有一個(gè)很重要的概念,就是其本身還具有事件,事件分為入事件和出事件兩種,前面已經(jīng)大致介紹了入事件和出事件的概念,在學(xué)習(xí)節(jié)點(diǎn)的時(shí)候,還應(yīng)該了解節(jié)點(diǎn)本身所具有的事件名稱和事件傳遞的值的類型。23精選完整ppt課件2.3VRML的通用語(yǔ)法結(jié)構(gòu)首先觀察一個(gè)VRML文件:#VRMLV2.0utf8#DrawthecolumnShape{ appearanceDEFYellowAppearance{ materialMaterial{ diffuseColor1.01.00.0 } } geometryCylinder{ radius0.5 height4.0 }}24精選完整ppt課件這個(gè)VRML文檔描述了一個(gè)黃顏色的圓柱體,雖然這里只是構(gòu)建了一個(gè)很簡(jiǎn)單的幾何體,但是卻是一個(gè)很典型的VRML文件。文件中表達(dá)了下述幾個(gè)方面的內(nèi)容:VRML文件的文件頭第一行#VRMLV2.0utf8是VRML文件頭,任何VRML文件都必須有這樣的文件頭,只是如果所用的規(guī)范不同,會(huì)有一些差別,比如,采用1.0規(guī)范的VRML文件,就同這里表示的不同。文件頭向我們表述了以下三個(gè)含義:#VRML表示這是個(gè)VRML文件;25精選完整ppt課件V2.0表示文件使用VRML2.0版的規(guī)范完成;utf8表示文件是使用國(guó)際UTF-8的字符集合在Internet上面,現(xiàn)在還依然可以看到采用1.0規(guī)范的VRML文件,除了語(yǔ)法規(guī)范不同以外,它的文件頭也同這里表示的不同。#VRMLV1.0ascii仿照上面的分析,不難看出這個(gè)文件頭的含義。2.VRML文件中的注釋#Drawthecolumn是一個(gè)注釋,用以對(duì)文件作些說明。在VRML中,注釋是在語(yǔ)法的前面加上#符號(hào)。注釋并不是必須的,但是在必要的地方適當(dāng)?shù)募由献⑨?6精選完整ppt課件是一個(gè)很好的編程習(xí)慣,便于讀程序,也便于調(diào)試。3.節(jié)點(diǎn)和域的書寫格式在文件中,節(jié)點(diǎn)用大寫字母開頭,域用小寫字母開頭。一個(gè)節(jié)點(diǎn)的所有的域都要用一對(duì)大括號(hào){}括起來。如果節(jié)點(diǎn)用小寫字母開頭,系統(tǒng)會(huì)認(rèn)為這是一個(gè)未知的節(jié)點(diǎn)而無法執(zhí)行程序。域值一般直接在域名稱后面直接寫,如果是多域值類型的域,并且也跟有多個(gè)域值,應(yīng)該用中括號(hào)[]將所有域值括起來,且域值中間用逗號(hào)或者空格分隔開。4.節(jié)點(diǎn)的定義與調(diào)用27精選完整ppt課件在文檔中,還可以看到這樣一句:DEFYellowAppearance,這是為節(jié)點(diǎn)Appearance定義的一個(gè)名稱。有時(shí)候,一個(gè)造型的外觀、一個(gè)造型甚至一個(gè)場(chǎng)景可能會(huì)多次在文檔中出現(xiàn)。這時(shí)可以將描述造型的節(jié)點(diǎn)、描述外觀的節(jié)點(diǎn)或者描述一個(gè)場(chǎng)景的一組節(jié)點(diǎn)定義起來,在需要的地方引用,這樣就節(jié)省了開發(fā)時(shí)間,同時(shí)也使得程序不至于太過繁雜,理解上更為清晰。節(jié)點(diǎn)定義的基本方法如下:DEF節(jié)點(diǎn)名稱節(jié)點(diǎn){}這里,節(jié)點(diǎn)名稱用來給所要引用的節(jié)點(diǎn)起一個(gè)名字,它可以由大小寫字母、下劃線和數(shù)字組成,但是要注意這個(gè)節(jié)點(diǎn)名稱是區(qū)分大小寫的,并且名稱不能以數(shù)字開頭;節(jié)點(diǎn)名稱也不能包括非打印字符,如:空格等,節(jié)28精選完整ppt課件點(diǎn)名稱中也不能含有各種運(yùn)算符號(hào)、括號(hào)以及一些特殊字符,如:@等;節(jié)點(diǎn)名稱不能用VRML中有特殊作用的字符串,也可稱為保留字。下表2-1中的字符串是VRML中有特殊作用的字符串,不能用作定義節(jié)點(diǎn)名稱。表2-1VRML中的保留字定義好了節(jié)點(diǎn),以后需要引用該節(jié)點(diǎn)的時(shí)候,使用語(yǔ)法為:保留字保留字保留字保留字DEFUSEROUTENULLEventInEventOutTRUEFALSEFieldExposeFieldISTOEXTERPROTORROTO29精選完整ppt課件USE節(jié)點(diǎn)名稱下面看兩個(gè)例子:構(gòu)建一組造型(Shape),由三個(gè)圓錐體(Cone)和三個(gè)圓柱體(Cylinder)組成。它們的顏色都相同。可以看到,由于每個(gè)造型都要設(shè)置顏色,則有六個(gè)顏色設(shè)置是一樣的。同時(shí)還要設(shè)計(jì)三個(gè)相同的圓錐和三個(gè)相同的圓柱,里面有許多的重復(fù)項(xiàng),如果不用節(jié)點(diǎn)重用,程序顯得很臃腫,比較長(zhǎng)。例2.4#VRMLV2.0utf8Shape{30精選完整ppt課件 appearanceAppearance{ materialMaterial{ diffuseColor0.50.250.2 } } geometryCone{ bottomRadius0.4 height2.0 }}Transform{31精選完整ppt課件 translation 0.0-2.00.0 children[ Shape{ appearanceAppearance{ materialMaterial{ diffuseColor0.50.250.2 } } geometryCone{ bottomRadius0.4 height2.0 } } ]}32精選完整ppt課件Transform{translation0.02.00.0children[ Shape{ appearanceAppearance{ materialMaterial{ diffuseColor0.50.250.2 } } geometryCone{ bottomRadius0.4 height2.0 } }]}33精選完整ppt課件Transform{translation0.0-1.00.0children[Shape{ appearanceAppearance{ materialMaterial{ diffuseColor0.50.250.2 } }
geometryCylinder{ radius0.6 height0.1 } }]}34精選完整ppt課件Transform{translation0.01.00.0children[Shape{
appearanceAppearance{ materialMaterial{ diffuseColor0.50.250.2 } } geometryCylinder{ radius0.6 height0.1 } }]}35精選完整ppt課件Transform{translation0.0-3.00.0children[Shape{ appearanceAppearance{ materialMaterial{ diffuseColor0.50.250.2 } } geometryCylinder{ radius0.6 height0.1 } }]}36精選完整ppt課件現(xiàn)在還不能讀懂這個(gè)程序,主要注意程序中相同的節(jié)點(diǎn)設(shè)置處。所謂相同的節(jié)點(diǎn),是指它們下面的域使用相同,域值相同。程序中用斜體、下劃線、雙下劃線表示的節(jié)點(diǎn)是重復(fù)使用的節(jié)點(diǎn)。Shape表示相同的圓錐體設(shè)計(jì),Shape表示相同的圓柱體設(shè)計(jì),material表示了重復(fù)的材質(zhì)(這里只是漫散射光顏色)的設(shè)置。對(duì)此,采用節(jié)點(diǎn)重用,程序要簡(jiǎn)化些。重用的部分就是這里重復(fù)使用的那些節(jié)點(diǎn),能夠看到,由于有三組重復(fù)項(xiàng),必然應(yīng)該定義三個(gè)節(jié)點(diǎn)。例2.5#VRMLV2.0utf8DEFtaperShape{37精選完整ppt課件 appearanceAppearance{ materialDEFcolorMaterial{ diffuseColor0.50.250.2 } } geometryCone{ bottomRadius0.4 height2.0 }}Transform{translation0.0-2.00.0children[USE taper]}38精選完整ppt課件Transform{translation0.02.00.0children[USE taper]}Transform{translation0.0-1.00.0children[DEF cyShape{ appearanceAppearance{ materialUSEcolor } geometryCylinder{ radius0.6 height0.1 } }]}39精選完整ppt課件Transform{translation0.01.00.0children[USE cy]}Transform{translation0.0-3.00.0children[USE cy]}40精選完整ppt課件不難看到,程序簡(jiǎn)潔了。實(shí)際上,taper定義了圓錐體整體,也包含了它的材質(zhì)設(shè)置,但是由于圓柱體的材質(zhì)同圓錐相同,所以也定義了圓錐體的材質(zhì),以便在以后設(shè)計(jì)圓柱體時(shí)調(diào)用。研究這兩個(gè)例子,注意定義的位置,定義的是定義式(DEF名稱節(jié)點(diǎn))后面的節(jié)點(diǎn)。比如,例子中的color定義的是材質(zhì),確切地說,定義的是:DEFcolorMaterial{diffuseColor0.50.250.2}Material這一部分,與后面的別的節(jié)點(diǎn)無關(guān)。同理,taper定義的是Shape:DEFtaperShape{41精選完整ppt課件appearanceAppearance{materialDEFcolorMaterial{diffuseColor0.50.250.2}}geometryCone{bottomRadius0.4height2.0}}在VRML場(chǎng)景的設(shè)計(jì)中,重復(fù)造型、重復(fù)材質(zhì)的設(shè)置是很多的。對(duì)大量重復(fù)使用的節(jié)點(diǎn)定義和重用,優(yōu)勢(shì)是很明顯的。42精選完整ppt課件2.4VRML的空間計(jì)量單位在實(shí)際環(huán)境中,物體有大小的差別,物體間有相對(duì)位置的不同,并且物體還可能有旋轉(zhuǎn)、移動(dòng)等運(yùn)動(dòng)。與此相對(duì)應(yīng),在VRML中,為了逼真的描述環(huán)境,也要相應(yīng)的描述出造型的大小,造型間的相對(duì)位置以及造型方位的不同。如下圖所示,在VRML中采用空間直角坐標(biāo)系確定造型的位置,并且用特定的計(jì)量單位定量表示長(zhǎng)度。43精選完整ppt課件空間直角坐標(biāo)滿足右手螺旋法則,就是說,右手四指從X方向轉(zhuǎn)到Y(jié)方向,則拇指的指向是Z方向。在VRML瀏覽器中,默認(rèn)情況下,X坐標(biāo)向右為正,Y坐標(biāo)向上為正,而Z坐標(biāo)指向觀察者。長(zhǎng)度及坐標(biāo)的計(jì)量單位采用VRML單位計(jì)量,可以簡(jiǎn)稱為單位。例如:geometryCylinder{radius0.5height4.0}這段程序表示的是一個(gè)圓柱體造型:半徑為0.5單位,高為4.0單位。需要注意的是,這里表示的單位和實(shí)際環(huán)境中的計(jì)量單位沒有任何可比性,和一些三維44精選完整ppt課件建模軟件如3DSMAX的計(jì)量單位也沒有可比性。只有在VRML中,各個(gè)尺寸之間的長(zhǎng)度以及位置的計(jì)量才能夠相比。在VRML場(chǎng)景中,只有物體間的大小和相對(duì)位置都用VRML單位計(jì)量,才能模擬出接近真實(shí)的場(chǎng)景。在VRML中,角度用弧度描述,這是瀏覽器接受的角度描述。360等于2p弧度,由此,1弧度約等于57。45精選完整ppt課件2.5VRML場(chǎng)景的編輯與瀏覽46精選完整ppt課件2.5.1VRML文件的編輯同許多程序設(shè)計(jì)語(yǔ)言類似,VRML是文本敘述文件,因而可以用各種文本編輯器來書寫、編輯程序文件,但是保存的時(shí)候要保存為以wrl為后綴的文件名。在實(shí)際創(chuàng)作中,由于VRML文件往往結(jié)構(gòu)比較復(fù)雜,節(jié)點(diǎn)相互嵌套,文本編輯器編輯的過程中很容易由于疏忽而出現(xiàn)錯(cuò)誤,而一般的文本編輯器沒有糾錯(cuò)提示的功能,為了提高效率,可以借助于專門的VRML編輯器編寫VRML文檔。ParallelGraphics公司的VRMLPad就是一個(gè)功能非常強(qiáng)大的VRML編輯器,能夠高效、便捷的編寫VRML文件。圖2-2所示為VRMLPad的界面。右邊是編輯區(qū),VRMLPad提供了節(jié)點(diǎn)和域的提示功能,每當(dāng)輸入節(jié)點(diǎn)或者域47精選完整ppt課件的第一個(gè)字母時(shí),會(huì)出現(xiàn)相應(yīng)的節(jié)點(diǎn)列表或者域列表,供設(shè)計(jì)者選擇。圖2-3即為出現(xiàn)的節(jié)點(diǎn)提示框。甚至在輸入完節(jié)點(diǎn)以后,在列表框中會(huì)很容易看到屬于該節(jié)點(diǎn)下面的域,極大的提高了編輯VRML文件的效率。此外,在編輯過48精選完整ppt課件程中,節(jié)點(diǎn)或者域出現(xiàn)了語(yǔ)法錯(cuò)誤,在編輯器最下邊的狀態(tài)欄處會(huì)出現(xiàn)錯(cuò)誤提示(如圖2-4所示),同時(shí)在出現(xiàn)錯(cuò)誤的語(yǔ)句中相應(yīng)的也有標(biāo)記,能及時(shí)排除編輯過程中的錯(cuò)誤。49精選完整ppt課件在編輯器中主窗口的左半部分,還提供了一些輔助窗口以幫助設(shè)計(jì)者更方便的設(shè)計(jì)和管理VRML文件。編輯器還內(nèi)置了材質(zhì)庫(kù),供設(shè)計(jì)者方便的設(shè)置造型的材質(zhì)。在Internet上還有第三方提供的一些編輯器插件。熟練使用VRMLPad,能使得VRML文件的編輯工作快捷迅速。另外,借助于一些三維建模軟件,如3DAMAX、MAYA等,也可以導(dǎo)出VRML文件,但是文件尺寸會(huì)大許多,如果不是很復(fù)雜的造型或者特殊的需要,一般并不推薦這樣做。50精選完整ppt課件2.5.2VRML場(chǎng)景的瀏覽要在瀏覽器中觀察VRML場(chǎng)景,需要VRML瀏覽器插件,目前,有許多VRML瀏覽器插件,譬如:CosmoPlayer、BlaxxunContact、Cortona、WorldView等,這些瀏覽器各有不同的特點(diǎn),但是在使用上有許多相似之處。下面以ParallelGraphics公司的Cortona4.0為例說明VRML瀏覽器的使用(下載地址:/bin/cortVRML.exe)。用Cortona打開一個(gè)文件擴(kuò)展名為wrl的VRML文件,出現(xiàn)的三維場(chǎng)景如下圖所示:51精選完整ppt課件可以看到,Cortona4.0瀏覽界面由分別位于瀏覽器窗口的左邊和底邊的控制按鈕以及顯示3D場(chǎng)景畫面的三維窗口組成。左邊的為交互按鈕,使用方法一般是先按一下按鈕,然后回到三維窗口中,按下鼠標(biāo)左鍵移動(dòng)鼠標(biāo)進(jìn)行交互觀察。而底邊的按鈕則是非交互式的,只是按一下按鈕,就可以看到相應(yīng)反應(yīng)。52精選完整ppt課件表2-2給出了交互按鈕的具體使用功能。表2-3給出了非交互按鈕的具體功能。表2-2交互按鈕的使用按鈕功能walkWalk按鈕:漫步瀏覽模式。使用漫步模式時(shí),在窗口中按下鼠標(biāo)左鍵拖動(dòng),觀察者可以類似于在地面上前進(jìn)、后退、左右轉(zhuǎn)等方式觀察行為??膳c物體發(fā)生碰撞flyFly按鈕:飛行瀏覽模式。使用飛行模式時(shí),在窗口中按下鼠標(biāo)左鍵拖動(dòng),觀察者可以在三維空間中做任意上升、下降、前進(jìn)、后退、左右轉(zhuǎn)等方式觀察行為。不與物體發(fā)生碰撞studyStudy按鈕:觀察瀏覽模式。使用觀察模式時(shí),按下鼠標(biāo)左鍵拖動(dòng),可以將三維場(chǎng)景繞其自身的中心沿任意軸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美容院美容師實(shí)習(xí)生實(shí)習(xí)考核及就業(yè)保障合同4篇
- 江蘇省無錫市江陰市要塞片2019-2020學(xué)年八年級(jí)下學(xué)期期中物理試題【含答案、解析】
- 2025版國(guó)際貿(mào)易信用證抵押融資服務(wù)合同樣本3篇
- 2025年度旅游車輛租賃合同(含景點(diǎn)導(dǎo)覽系統(tǒng))4篇
- 《新生兒氣胸》課件
- 2025版小學(xué)生校車租賃合同范本編制3篇
- 2025年度木工支模工程綠色施工與評(píng)價(jià)合同4篇
- 2025年分銷商分潤(rùn)協(xié)議范例
- 2025年分銷合同的法律適用
- 2025版幼兒托管班信息化管理及數(shù)據(jù)共享協(xié)議3篇
- 2024年國(guó)家工作人員學(xué)法用法考試題庫(kù)及參考答案
- 國(guó)家公務(wù)員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術(shù)》課件 第6講 阻燃纖維及織物
- 人教版五年級(jí)上冊(cè)遞等式計(jì)算100道及答案
- 2024年部編版初中語(yǔ)文各年級(jí)教師用書七年級(jí)(上冊(cè))
- 2024年新課標(biāo)全國(guó)Ⅰ卷語(yǔ)文高考真題試卷(含答案)
- 湖南省退休人員節(jié)日慰問政策
- QB/T 5998-2024 寵物尿墊(褲)(正式版)
- 傳感器與測(cè)試技術(shù)試卷及答案
- 2020年普通高等學(xué)校招生全國(guó)統(tǒng)一數(shù)學(xué)考試大綱
- GB/T 679-2002化學(xué)試劑乙醇(95%)
評(píng)論
0/150
提交評(píng)論