胡圣武,韓合軒
(1.河南理工大學(xué)測(cè)繪學(xué)院,河南焦作 454000;2.河南省公路工程局集團(tuán)有限公司,河南鄭州,450052)
基于OGRE渲染引擎虛擬拆裝的研究
胡圣武1,韓合軒2
(1.河南理工大學(xué)測(cè)繪學(xué)院,河南焦作 454000;2.河南省公路工程局集團(tuán)有限公司,河南鄭州,450052)
研究了基于OGRE渲染引擎虛擬拆裝的方法及實(shí)現(xiàn)。三維模型虛擬裝配軟件采用MFC混合三維繪制ActiveX組件實(shí)現(xiàn)。界面負(fù)責(zé)將配置文件、模型文件的名稱(chēng)傳遞給三維模型裝配軟件,在其加載三維模型完畢后,界面可以訪問(wèn)其三維繪制功能,獲取其內(nèi)部的數(shù)據(jù)信息;同時(shí)可以操作三維空間內(nèi)的任意一個(gè)模型的組件;最后通過(guò)修改每個(gè)關(guān)鍵幀內(nèi)的模型組件位置和旋轉(zhuǎn)信息,自動(dòng)生成過(guò)渡幀動(dòng)畫(huà),來(lái)實(shí)現(xiàn)最后的動(dòng)畫(huà)錄制和播放功能。
虛擬拆裝;OGRE渲染引擎;三維模型
裝配是按一定的精度和技術(shù)要求,將一組零散的零件按一定的次序連接組合成產(chǎn)品的過(guò)程,其核心內(nèi)容是裝配序列規(guī)劃,對(duì)產(chǎn)品質(zhì)量起著決定性的作用。據(jù)統(tǒng)計(jì),在產(chǎn)品的生產(chǎn)過(guò)程中大約1/3以上的人直接或間接從事與裝配有關(guān)的活動(dòng),裝配費(fèi)用則占整個(gè)生產(chǎn)成本的30%~50%(對(duì)于某些復(fù)雜產(chǎn)品,這個(gè)比例會(huì)更高)。另外,裝配環(huán)節(jié)也是制約生產(chǎn)自動(dòng)化的主要因素,裝配性能的好壞是決定產(chǎn)品能否采用自動(dòng)化裝配的關(guān)鍵。因此,一個(gè)好的裝配順序規(guī)劃和工藝規(guī)劃,對(duì)改進(jìn)產(chǎn)品設(shè)計(jì)、降低成本、縮短產(chǎn)品生產(chǎn)周期具有重要意義。
傳統(tǒng)的產(chǎn)品開(kāi)發(fā)過(guò)程中,對(duì)產(chǎn)品裝配性能的分析和評(píng)價(jià)通常都是借助實(shí)物模型來(lái)完成的,這種方法既費(fèi)時(shí)、費(fèi)力、準(zhǔn)確性差,又不能及時(shí)、方便地進(jìn)行修改,延長(zhǎng)了產(chǎn)品的設(shè)計(jì)過(guò)程,造成了財(cái)力、物力的浪費(fèi)。
虛擬現(xiàn)實(shí)技術(shù)的發(fā)展為解決上述問(wèn)題提供了新的途徑[1-2]。在虛擬環(huán)境下,工程師可以模擬實(shí)際的裝配過(guò)程。這樣,在利用裝配工程師經(jīng)驗(yàn)的同時(shí),產(chǎn)生的裝配信息又可以用于裝配規(guī)劃,經(jīng)過(guò)整理歸納,經(jīng)驗(yàn)形成規(guī)則被存入知識(shí)庫(kù),系統(tǒng)可以根據(jù)已有的規(guī)劃處理類(lèi)似的產(chǎn)品,從而可以解決自動(dòng)裝配規(guī)劃中類(lèi)似的裝配問(wèn)題。
2.1 OGRE簡(jiǎn)介
OGRE(面向?qū)ο蟮膱D形渲染引擎)是用C++開(kāi)發(fā)的面向?qū)ο笄沂褂渺`活的 3D引擎[3-4]。它的目的是讓開(kāi)發(fā)者能更方便和直接地開(kāi)發(fā)基于3D硬件設(shè)備的應(yīng)用程序或游戲。引擎中的類(lèi)庫(kù)對(duì)更底層的系統(tǒng)庫(kù)的全部使用細(xì)節(jié)進(jìn)行了抽象,并提供了基于現(xiàn)實(shí)世界對(duì)象的接口和其他類(lèi)。
2.2 OGRE設(shè)計(jì)理念
OGRE通過(guò)面向?qū)ο蟮姆椒▽?shí)現(xiàn)了這樣的一個(gè)入口,從實(shí)際應(yīng)用進(jìn)入到3D引擎具體的本職工作:把基本幾何體渲染到目標(biāo)區(qū)域(一般情況下指的是CRT或LCD顯示設(shè)備的屏幕緩存,但也有例外)[5-6]。
如果使用面向?qū)ο蟮姆椒▉?lái)渲染幾何體,就可以從幾何體級(jí)別的處理工作中抽離出來(lái),轉(zhuǎn)而處理具體的場(chǎng)景和在場(chǎng)景中的物體。其中的物體包括:可活動(dòng)的物體、靜態(tài)物體組成的場(chǎng)景本身、燈光、攝像機(jī)以及其他。你只需簡(jiǎn)單的把物體放到場(chǎng)景之中,Ogre會(huì)幫助你完成雜亂的幾何渲染處理,從而脫離對(duì)調(diào)用API的依賴(lài)。而且你也可以通過(guò)簡(jiǎn)單的方法來(lái)操作場(chǎng)景中的物體來(lái)代替矩陣變換:例如,可以簡(jiǎn)單地通過(guò)角度或者弧度來(lái)控制物體在不同空間內(nèi)旋轉(zhuǎn),而不必要通過(guò)矩陣的變換這種抽象的方法來(lái)操作實(shí)現(xiàn)變換。簡(jiǎn)而言之,面向?qū)ο笞屇憧梢蕴幚砀呦蟮奈矬w、屬性和方法;而不用處理抽象的頂點(diǎn)列表、三角形列表、旋轉(zhuǎn)矩陣等底層概念。
OGRE的面向?qū)ο罂蚣芴峁┝税ㄈ夸秩具^(guò)程的對(duì)象模型。渲染系統(tǒng)把復(fù)雜且不同的底層API的功能抽象成一個(gè)統(tǒng)一的操作接口;場(chǎng)景圖也被抽象成為另外的一組接口,并且允許使用不同的場(chǎng)景管理算法實(shí)現(xiàn)“即插即用”的效果;所有可渲染對(duì)象,不論是動(dòng)態(tài)還是靜態(tài),都被抽象出一組接口,用來(lái)被具體的渲染操作調(diào)用,可活動(dòng)對(duì)象提供了一組通用接口接受各種各樣的操作方法。
3.1 幾何建模技術(shù)
幾何建模是計(jì)算機(jī)圖形學(xué)的傳統(tǒng)方法。首先,在計(jì)算機(jī)中建立起三維幾何模型(用多邊形表示,通常為三角形),在給定觀察點(diǎn)和觀察方向以后,利用計(jì)算機(jī)和相應(yīng)的繪制算法,完成消隱,光照及投影等成像過(guò)程,從而產(chǎn)生幾何模型的圖像。幾何建模一般包括建立對(duì)象的外形建模和對(duì)象的外表材質(zhì)建模。
3.2 高亮效果顯示
三維模型裝配軟件系統(tǒng)使用模板緩存技術(shù)實(shí)現(xiàn)三維模型的高亮顯示,模板緩存可以保持屏幕上某些部位的圖形不變,而其他部位仍然可以進(jìn)行圖形繪制。比如說(shuō),可以通過(guò)模板緩存來(lái)繪制透過(guò)汽車(chē)擋風(fēng)玻璃觀看車(chē)外景物的畫(huà)面。首先,將擋風(fēng)玻璃的形狀存貯到模板緩存中去,然后再繪制整個(gè)場(chǎng)景。這樣,模板緩存擋住了通過(guò)擋風(fēng)玻璃看不見(jiàn)的任何東西,而車(chē)內(nèi)的儀表及其他物品只需繪制一次。因此,隨著汽車(chē)的移動(dòng),只有外面的場(chǎng)景在不斷地更改。
模板緩沖還能夠用來(lái)實(shí)現(xiàn)一些抽象的效果,如輪廓。如果我們將一個(gè)模板掩模應(yīng)用到一個(gè)與圖元有相同形狀但是尺寸較小一些的圖像上,那么最終的圖像就會(huì)得到這個(gè)圖元的輪廓。然后,可以在模板掩模的區(qū)域填充一個(gè)具有固定顏色的圖像,從而得到一種類(lèi)似于高亮輪廓的效果。
3.3 移植性技術(shù)
與傳統(tǒng)的針對(duì)某個(gè)具體系統(tǒng)的建模方式不同,氣路圖形建模軟件對(duì)氣路系統(tǒng)的建模采用模塊化方法。采用模塊化方法后,計(jì)算程序與系統(tǒng)結(jié)構(gòu)無(wú)關(guān),如果系統(tǒng)結(jié)構(gòu)有所改變——例如添加刪除一些元件,或者元件的組合形式有所改變時(shí),只需要修改系統(tǒng)結(jié)構(gòu)矩陣輸入文件并對(duì)添加或者刪除的文件進(jìn)行屬性設(shè)置,就可以進(jìn)行新系統(tǒng)的仿真,而無(wú)需深入到計(jì)算程序中修改源代碼。此外,仿真程序還具有改進(jìn)和擴(kuò)充模型庫(kù)的二次開(kāi)發(fā)能力。模型庫(kù)中仿真模塊的類(lèi)型按照要求不少8個(gè),并具有擴(kuò)展接口的能力。
三維模型虛擬裝配系統(tǒng)大體功能需求劃分如圖 1所示。
1)跨平臺(tái)三維模型數(shù)據(jù)支持功能??缙脚_(tái)三維模型數(shù)據(jù)支持功能主要實(shí)現(xiàn)三維軟件數(shù)據(jù)向三維模型裝配系統(tǒng)的導(dǎo)入。導(dǎo)入功能要求保留三維軟件中模型的點(diǎn)、面、紋理、紋理坐標(biāo)、空間位置、旋轉(zhuǎn)屬性,要求支持導(dǎo)入三維軟件中已經(jīng)建立的燈光、攝像機(jī)。本功能包括三維軟件數(shù)據(jù)導(dǎo)出、模型導(dǎo)入、攝像機(jī)自適應(yīng)、燈光自適應(yīng)功能。
2)三維模型繪制功能。主要實(shí)現(xiàn)實(shí)時(shí)三維模型的繪制功能。支持高效率的繪制三維模型,同時(shí)需要支持動(dòng)態(tài)的縮放窗口,并且自動(dòng)對(duì)齊鼠標(biāo)以支持后續(xù)的三維模型的空間操作功能。
3)三維模型空間操作功能。三維模型空間操作功能為三維模型裝配軟件的核心功能,其主要包括:①模型定位與選取功能;②模型部件拆卸功能;③模型高保真突出顯示功能;④外部事件與數(shù)據(jù)轉(zhuǎn)換組件;⑤模型空間漫游功能;⑥交互方式參數(shù)配置功能。
4)三維模型裝配動(dòng)畫(huà)錄制功能。三維模型裝配動(dòng)畫(huà)錄制功能實(shí)現(xiàn)三維模型裝配軟件的動(dòng)畫(huà)錄制功能,其包括:關(guān)鍵幀生成與記錄功能、關(guān)鍵幀信息導(dǎo)入與重建功能。
5)三維模型裝配動(dòng)畫(huà)播放功能。主要包括自動(dòng)生成過(guò)渡幀、播放動(dòng)畫(huà)功能。
圖1 系統(tǒng)功能需求劃分圖
5.1 項(xiàng)目背景
此項(xiàng)目名稱(chēng)為裝甲兵工程學(xué)院三維模型虛擬裝配系統(tǒng)。此系統(tǒng)主要是為了解決軍隊(duì)教學(xué)中多種弊端,在現(xiàn)實(shí)生活中依靠實(shí)物進(jìn)行教學(xué)、訓(xùn)練,費(fèi)用高且效率低,而利用開(kāi)發(fā)的虛擬仿真系統(tǒng),不需要借助實(shí)物就可在計(jì)算機(jī)上進(jìn)行日常的教學(xué)、訓(xùn)練,費(fèi)用低廉而且安全,在身臨其境的人機(jī)交互中,原本復(fù)雜深?yuàn)W的裝置構(gòu)造、原理、拆裝、維修知識(shí)變得直觀易懂,這樣極大地提高了教學(xué)效率和學(xué)員學(xué)習(xí)熱情。
5.2 項(xiàng)目實(shí)現(xiàn)方案
三維模型虛擬裝配軟件采用MFC+BCG+OGRE實(shí)現(xiàn),BCG是MS的界面庫(kù),像office這樣的辦公軟件的界面就是采用的BCG,OGRE是一個(gè)開(kāi)源的渲染引擎。界面負(fù)責(zé)將三維模型裝配軟件需要的配置文件、模型文件的名稱(chēng)傳遞給三維模型裝配軟件,三維模型裝配軟件負(fù)責(zé)加載顯示該軟件。在其加載完畢三維模型后,界面可以訪問(wèn)其三維繪制功能,獲取其內(nèi)部的數(shù)據(jù)信息;同時(shí)可以操作三維空間內(nèi)的任意一個(gè)模型的組件;最后通過(guò)修改每個(gè)關(guān)鍵幀內(nèi)的模型組件位置和旋轉(zhuǎn)信息,自動(dòng)生成過(guò)渡幀動(dòng)畫(huà),來(lái)實(shí)現(xiàn)最后的動(dòng)畫(huà)錄制和播放功能。系統(tǒng)整體構(gòu)架如圖2所示。
圖2 系統(tǒng)整體構(gòu)架圖
本文提出的OGRE+BCG+VC++虛擬仿真系統(tǒng)開(kāi)發(fā)方案有著廣泛的適用性,還具有能夠?qū)崿F(xiàn)用戶(hù)的個(gè)性化需求,滿足計(jì)算機(jī)通訊實(shí)時(shí)性的優(yōu)點(diǎn);但它的缺點(diǎn)是要求用戶(hù)掌握較深的編程知識(shí),三維實(shí)體模型數(shù)據(jù)的文件大且結(jié)構(gòu)復(fù)雜,直接進(jìn)行場(chǎng)景驅(qū)動(dòng)對(duì)硬件水平要求高,編程困難,利用dotsceneformat得到了文件格式簡(jiǎn)單、占用內(nèi)存少、便于添加渲染效果的 Scene文件,使低硬件條件下的場(chǎng)景實(shí)時(shí)驅(qū)動(dòng)成為可能,從而為從現(xiàn)有機(jī)械模型進(jìn)行視覺(jué)仿真和交互開(kāi)辟了一條新途徑。
虛擬裝配將從根本上改變傳統(tǒng)的產(chǎn)品設(shè)計(jì)和制造模式,在實(shí)際生產(chǎn)之前,首先在虛擬制造環(huán)境中完成虛擬產(chǎn)品原型代替實(shí)際產(chǎn)品進(jìn)行實(shí)驗(yàn),對(duì)其性能和可裝配性等進(jìn)行評(píng)價(jià),從而達(dá)到整個(gè)產(chǎn)品全局最優(yōu),縮短產(chǎn)品設(shè)計(jì)與制造周期,降低產(chǎn)品開(kāi)發(fā)成本,提高產(chǎn)品快速響應(yīng)市場(chǎng)變化的能力。隨著國(guó)家工業(yè)化和信息化建設(shè)速度的加快,必將帶來(lái)更大的經(jīng)濟(jì)和社會(huì)效益。
[1](美)普雷斯曼著,鄭人杰等譯.軟件工程:實(shí)踐者的研究方法(原書(shū)第6版)[M].北京:機(jī)械工業(yè)出版社,2007
[2] 毋國(guó)慶.軟件需求工程[M].北京:機(jī)械工業(yè)出版社,2006
[3] 伽瑪?shù)戎?,李英軍等譯.設(shè)計(jì)模式--可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].北京:機(jī)械工業(yè)出版社,2005
[4](美)科曼(Cormen,T.H.)等著,潘金貴 等譯.算法導(dǎo)論(原書(shū)第2版)[M].北京:機(jī)械工業(yè)出版社,2006
[5](美)Frank D.luna.DirectX 9.0 3D游戲開(kāi)發(fā)編程基礎(chǔ)[M].北京:清華大學(xué)出版社,2007
[6] 洪炳 等編著.虛擬現(xiàn)實(shí)及其應(yīng)用[M].北京:國(guó)防工業(yè)大學(xué)出版社,2005
Research on Virtual Destuffing Based on OGRE Rendering Engine
by HU Shengwu
The system provided a rendering engine based on OGRE virtual dismantling of the method and implementation of three-dimensional virtual simulation.Threedimensional model of virtual assembly software used MFC,Active X components to achieve three-dimensional rendering.Interface was responsible for assembling threedimensional model of software configuration files needed,the model name of the file passed to the three-dimensional model assembly software,3D model display assembly software responsible for loading the software.Loaded in its three-dimensional model, the interface could access the3D rendering capabilities,access to its internal data.At the same time three-dimensionalspace could operate any component of a model.Finally,modify the frame of the model components for each key position and rotation information,automatically generate the transition frame animation,to achieve the final animation recording and playback functions.
Virtual disassembly,OGRE rendering engine,three-dimensional model(Page:16)
P208
B
1672-4623(2011)02-0016-03
2010-09-15
項(xiàng)目來(lái)源:國(guó)家自然科學(xué)基金資助項(xiàng)目(40474003)。
胡圣武,副教授,博士?,F(xiàn)主要從事GIS基礎(chǔ)理論和圖像處理技術(shù)研究工作。