李蘭



摘 ?要: VRML作為描述三維虛擬場景網(wǎng)絡(luò)的一種標(biāo)準(zhǔn),在各領(lǐng)域的虛擬現(xiàn)實(shí)仿真中得到了廣泛的應(yīng)用。系統(tǒng)地闡述VRML幾何建模機(jī)制;提出一種以VRML語言為基礎(chǔ),綜合運(yùn)用多種建模工具高效建立幾何模型的方法;給出一個(gè)實(shí)例,將該方法應(yīng)用于貼裝機(jī)的靜態(tài)建模,生成的模型具有較高的逼真度,驗(yàn)證了方法的有效性。
關(guān)鍵詞: VRML; 幾何建模; 貼裝機(jī); 方法
中圖分類號(hào):TP391.9 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? 文章編號(hào):1006-8228(2020)01-66-03
Abstract: As a standard to describe 3D virtual scene network, VRML has been widely used in virtual reality simulation of various industries. This paper describes the VRML geometric modeling mechanism systematically and proposes a VRML based method to establish geometric model by using various modeling tools. An example is given to apply this method to the static modeling of mounting machine. The model generated has high fidelity, which verifies the effectiveness of the method.
Key words: VRML; geometric modeling; mounting machine; method
0 引言
靜態(tài)建模主要就是建立物體的幾何模型。VRML(虛擬現(xiàn)實(shí)建模語言)相比其他三維建模工具,具有很強(qiáng)的沉浸感、交互性,重要的是語法簡單、建模更方便[1]。文獻(xiàn)[2]利用VRML的文本編輯器創(chuàng)建了AUV的虛擬場景;文獻(xiàn)[3]用SolidWorks建模軟件構(gòu)建聯(lián)合收割機(jī)進(jìn)而轉(zhuǎn)換為VRML模型;文獻(xiàn)[4]利用MATLAB的V-Realm Builder 2工具搭建了導(dǎo)彈和目標(biāo)的模型,均取得了較好的效果但建模方法單一。因此,本文基于VRML建模語言,探討綜合運(yùn)用多種建模工具,高效建立幾何模型的方法。
1 VRML幾何建模機(jī)制
VRML對(duì)三維場景有很強(qiáng)的描述能力,對(duì)象構(gòu)成虛擬場景,對(duì)象及其屬性表示為節(jié)點(diǎn),節(jié)點(diǎn)是構(gòu)成VRML文件的基本單元。VRML2.0中包含了54個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)由不同的域(Field)和事件(Event)組成,域定義了節(jié)點(diǎn)的各個(gè)屬性,域取不同的值,節(jié)點(diǎn)就會(huì)有不同的特征,可完成一項(xiàng)特定的功能[5]。下面就VRML幾何建模的關(guān)鍵節(jié)點(diǎn)加以論述。
⑴ 單個(gè)幾何體:用外形Shape節(jié)點(diǎn)創(chuàng)建,appearance域的值定義一個(gè)節(jié)點(diǎn),即Appearance節(jié)點(diǎn),定義造型的外觀,包括顏色和表面紋理,geometry域的值指定一個(gè)節(jié)點(diǎn),定義造型的幾何結(jié)構(gòu)。
⑵ 簡單幾何體:包括長方體Box節(jié)點(diǎn)、圓柱Cylinder節(jié)點(diǎn)、圓錐Cone節(jié)點(diǎn)、球Sphere節(jié)點(diǎn)。
⑶ 基于頂點(diǎn)幾何體:基于邊界表示法的點(diǎn)線面造型,點(diǎn)線面是空間造型的最基本元素,點(diǎn)線面造型的基礎(chǔ)就是給出一系列有序空間點(diǎn)的參數(shù),然后創(chuàng)建虛擬空間中的點(diǎn)線面,因而,理論上可以創(chuàng)建出虛擬空間中任意的三維造型,包括PointSet節(jié)點(diǎn)(點(diǎn))、IndexedLineSet節(jié)點(diǎn)(線)、IndexedFaceSet節(jié)點(diǎn)(面)。
⑷ 復(fù)雜幾何體:①海拔柵格造型ElevationGrid節(jié)點(diǎn)主要用來創(chuàng)建諸如起伏地面和山脈等空間造型;②擠壓造型Extrusion節(jié)點(diǎn)為那些可以用二維截面圖形經(jīng)空間中沿某一路徑移動(dòng)而形成的形體提供了一種有效和直接的構(gòu)造方式。
⑸ 幾何體的組裝和場景的生成:復(fù)雜物體可由多個(gè)簡單幾何體組裝而成,多個(gè)物體進(jìn)行坐標(biāo)定位又構(gòu)成場景,VRML文件中通過組節(jié)點(diǎn)實(shí)現(xiàn),主要有Group節(jié)點(diǎn)、Transform節(jié)點(diǎn)。其中Transform節(jié)點(diǎn)為其子節(jié)點(diǎn)定義坐標(biāo)系統(tǒng),更重要的作用在于對(duì)VRML空間坐標(biāo)系進(jìn)行變換,以建立一個(gè)或多個(gè)相對(duì)于已有坐標(biāo)系的新坐標(biāo)系。
⑹ 幾何體的引用:要?jiǎng)?chuàng)建多個(gè)相同的幾何體,可在VRML文件中通過DEF節(jié)點(diǎn)為已創(chuàng)建的造型命名,再采用USE節(jié)點(diǎn)反復(fù)引用實(shí)現(xiàn)。
⑺ 原型:對(duì)節(jié)點(diǎn)類型集合進(jìn)行擴(kuò)充,通過PROTO節(jié)點(diǎn)用以描述一個(gè)自定義的節(jié)點(diǎn)類型,簡化了場景的制作過程。
2 協(xié)同建模及優(yōu)化
目前,VRML建模工具主要有文本編輯器、可視化開發(fā)工具及常用的造型軟件等,以下分別介紹。
⑴ VRML的文本編輯器:VRML是一種描述性的文本語言,通過對(duì)物體節(jié)點(diǎn)的描述,理論上,任何三維形體都可以精確或近似地構(gòu)造,但它不是造型語言,對(duì)于復(fù)雜的模型,僅靠VRML造型節(jié)點(diǎn)實(shí)現(xiàn)就很困難[6]。
⑵ VR的“所見即所得”可視化開發(fā)工具:這種方法非常適合構(gòu)造簡單的三維模型,但對(duì)于復(fù)雜的模型和動(dòng)畫的創(chuàng)建則比較困難。MATLAB虛擬現(xiàn)實(shí)工具箱下自帶的V-Realm Builder 2三維物體構(gòu)造工具包是一種常用的VR可視化開發(fā)工具,提供了強(qiáng)大的三維物體的編輯功能,菜單和工具欄中包括了幾乎所有VRML節(jié)點(diǎn),只需用鼠標(biāo)點(diǎn)擊即可完成對(duì)象的創(chuàng)建,并可以方便地對(duì)節(jié)點(diǎn)進(jìn)行增加、編輯和修改,相應(yīng)的場景立即得到更改,實(shí)現(xiàn)了“可視化”開發(fā);另外,V-Realm Builder 2自帶了三個(gè)例庫:對(duì)象庫、材質(zhì)庫和紋理庫,用戶可分別直接將現(xiàn)成庫的對(duì)象、材質(zhì)、紋理應(yīng)用到虛擬場景中去,提高了開發(fā)效率[7]。
⑶ 常用的造型軟件:對(duì)于場景中復(fù)雜的部分,常用的三維造型軟件有AUTOCAD、3D Studio Max等,在三維造型方面AUTOCAD雖然不是最好的系統(tǒng),但所提供的支持已足夠,就其普及性、二次開發(fā)的友好性而言,是其他系統(tǒng)所不能比擬的。利用它建立的三維模型文件.dxf通過VRML Export(ARX應(yīng)用程序)轉(zhuǎn)換為*.wrl文件,但導(dǎo)出的造型均以IndexedFaceSet節(jié)點(diǎn)來描述, 數(shù)據(jù)量較大,不利于文件傳輸,可用VRML優(yōu)化工具vizup進(jìn)行進(jìn)一步數(shù)據(jù)優(yōu)化,提高模型的轉(zhuǎn)化效率。
由于制造單元的結(jié)構(gòu)和外形的復(fù)雜性,為了提高建模效率及模型的逼真度,本文選取多種工具協(xié)同建模:對(duì)于復(fù)雜的造型利用AUTOCAD建模,在保證模型逼真度的同時(shí)用VRML優(yōu)化工具vizup進(jìn)行數(shù)據(jù)優(yōu)化,提高模型的轉(zhuǎn)化效率;然后在V-Realm Builder 2中創(chuàng)建能直接生成的造型;最后利用文本編輯器VrmlPad進(jìn)行修改并完善模型的交互功能,添加多視點(diǎn)和動(dòng)畫等效果。實(shí)踐表明,三種方法的綜合運(yùn)用,可以大大提高模型的構(gòu)建效率。
3 建模實(shí)例
貼裝機(jī)是SMT生產(chǎn)線中最關(guān)鍵的數(shù)控設(shè)備。本文以國內(nèi)首臺(tái)全視覺貼裝機(jī)SMT2505為例[8],建立其外部的靜態(tài)模型,實(shí)際外部如圖1所示。根據(jù)結(jié)構(gòu)特點(diǎn)可分為本體部分、顯示監(jiān)控部分和操作控制部分。其中本體部分與裸機(jī)直接發(fā)生關(guān)系,包括上架外殼、下架外殼和基礎(chǔ)連接架三部分;顯示監(jiān)控部分包括信息顯示的界面和報(bào)警裝置,主要指PC 機(jī)顯示器和警示燈;操作控制部分,即指令輸入與動(dòng)作調(diào)整,有鍵盤、電氣開關(guān)等。
下面以下架外殼為例,詳述具體的模型構(gòu)造過程。它由殼體、底座、把手三部分組成,由于比較規(guī)則、簡單,因而在V-Realm Builder 2中分別建模并賦予材質(zhì)等屬性,然后進(jìn)行裝配構(gòu)成場景圖。
⑴ 殼體:它不是基本造型,故采用擠壓節(jié)點(diǎn)Extrusion完成,以倒角矩形為放樣圖形、直線為路徑生成模型,節(jié)點(diǎn)樹如圖2所示。
⑵ 底座:用基本造型圓柱節(jié)點(diǎn)Cylinder完成。
⑶ 把手:屬于面造型,用面節(jié)點(diǎn)IndexedFaceSet完成。
分別調(diào)整殼體、底座和把手之間的位置關(guān)系,然后通過Transform節(jié)點(diǎn)將所要安排位置和方向的造型編組,在V-Realm Builder 2中生成的下架外殼模型和VRML模型節(jié)點(diǎn)結(jié)構(gòu)樹如圖3所示。
其他部件的構(gòu)造同下架外殼的方法基本一致,最終生成的貼裝機(jī)外部模型如圖4所示。
4 結(jié)束語
建模主要解決模型逼真度、開發(fā)效率、沉浸效果等問題。VRML作為描述三維虛擬場景網(wǎng)絡(luò)的一種標(biāo)準(zhǔn),在各領(lǐng)域的虛擬現(xiàn)實(shí)仿真中得到廣泛的應(yīng)用。本文詳細(xì)介紹了如何運(yùn)用多種建模工具建立VRML模型的方法,并給出具體的實(shí)例運(yùn)用,具有一定的可操作性。進(jìn)一步的研究工作將在虛擬場景中加入光照效果、紋理映射以及交互性等基本特性,對(duì)提高三維虛擬場景的逼真度具有重要意義。
參考文獻(xiàn)(References):
[1] 許愛軍,張文金,易丹.基于VRML的虛擬現(xiàn)實(shí)技術(shù)及應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2009.37(4):186-189
[2] 許喆,嚴(yán)衛(wèi)生,高劍.MATLAB下6自由度AUV的VRML建模及仿真[J].系統(tǒng)仿真學(xué)報(bào),2007.19(10):2241-2244
[3] 張亞楠,郝倩.Web 3D虛擬現(xiàn)實(shí)平臺(tái)在收割機(jī)零部件設(shè)計(jì)中的應(yīng)用[J].農(nóng)機(jī)化研究,2019.41(4):233-237
[4] 王意存,陳琦,常思江.采用Simulink和VRML的六自由度彈道多視角可視化仿真[J].兵器裝備工程學(xué)報(bào),2019.40(1):143-147
[5] 汪興謙.VRML虛擬造型實(shí)戰(zhàn)演練[M].北京:中國水利水電出版社,2002.
[6] 殷鵬蓮,余學(xué)祥.VRML和Java支持下的三維虛擬校園構(gòu)建[J].測繪與空間地理信息,2015.38(4):165-168
[7] 張家祥等.基于MATLAB6.X的系統(tǒng)分析與設(shè)計(jì)—虛擬現(xiàn)實(shí)[M].西安:西安電子科技大學(xué)出版社,2002.
[8] 宋福民,張小麗,馬如震. SMT2505全視覺多功能貼片機(jī)的研制[J].電子工業(yè)專用設(shè)備,2002.31(4):219-223