王美麗,孫 鈺,牛曉靜,陳 偉,曾德興,金 陽,張宏鳴
(西北農(nóng)林科技大學(xué)信息工程學(xué)院,陜西楊凌712100)
目前通過使用Auto CAD 技術(shù)和3DS MAX 軟件可以建立機(jī)械設(shè)計基礎(chǔ)上應(yīng)用的機(jī)械零件、標(biāo)準(zhǔn)件等的模型庫,使設(shè)計者可以從模型庫中調(diào)用三維模型,進(jìn)行設(shè)計和裝配,對設(shè)計和制造工作具有很大的幫助,有關(guān)機(jī)械零件方面的三維模型庫已經(jīng)初步建立[4-6],針對這些模型庫的檢索工作也有了一定的進(jìn)展[7]。國內(nèi)外建立的關(guān)于動物和人體三維模型及其各器官三維模型非常多,但是這些模型都比較分散,沒有建成完善、專門的動物模型數(shù)據(jù)庫,而且很少有關(guān)于動物內(nèi)部結(jié)構(gòu)的模型。因此,建立比較完善的常見家畜及其動物器官模型數(shù)據(jù)庫具有非常重要的意義,使用者能夠方便地檢索到自己需要的模型,提高其工作效率。尤其是近年來出現(xiàn)的虛擬手術(shù)系統(tǒng)是計算機(jī)技術(shù)、圖像處理技術(shù)和醫(yī)學(xué)物理等科學(xué)與醫(yī)學(xué)的交叉融合并應(yīng)用于醫(yī)學(xué)領(lǐng)域產(chǎn)生的成果。動物模型數(shù)據(jù)庫的建立為動物虛擬手術(shù)的開發(fā)奠定了基礎(chǔ)[8],可以作為獸醫(yī)專業(yè)學(xué)生的術(shù)前培訓(xùn)。
由于動物形體不規(guī)則,因此需要綜合運(yùn)用多種建模方法來建立完整的動物模型,這里將分別介紹多種優(yōu)秀建模方法(細(xì)分、擠出、鏡像、組合建模等)在常見動物模型建立中的應(yīng)用[9]。
細(xì)分建模主要針對較為規(guī)則的平面光滑曲面的物體。這種建模方法通過對子物體(頂點(diǎn)Vertex或面polygon等)的修改,形成造型物的形狀或大致輪廓,并加入MeshSmooth修改器,設(shè)定不同的參數(shù),3DS MAX 會自動插值,重新定義頂點(diǎn),形成光滑的表面。以山羊的頭部建模為例,首先創(chuàng)建一個長方體,并將建立的長方體轉(zhuǎn)換為可編輯多邊形,增加分段數(shù),對長方體進(jìn)行修改,使之生成山羊頭部的大概輪廓。圖1為使用細(xì)分建模分別建模的山羊、馬頭部模型以及山羊心臟模型。
圖1 細(xì)分建模實(shí)例Fig.1 Subdivide models for the head of goat and horse and the heart of goat
使用擠出建模建立山羊的軀干模型時,首先選擇頭部模型的背面,然后使用擠出命令擠出脖子,用細(xì)分的方法對擠出的脖子進(jìn)行修改。修改完后再用擠出的方法擠出軀干的大概模型,對擠出的大概模型添加頂點(diǎn)、修改頂點(diǎn)位置和細(xì)分處理獲得軀干的最終模型。圖2為使用擠出建模制作的羊身體部分和馬尾巴部分模型。
圖2 擠出建模實(shí)例Fig.2 Extrude models for the body of goat and a horse tail
復(fù)制和鏡像建模針對有規(guī)則形態(tài)的形體,或排列具有一定的規(guī)律性的造型建模,這也是3DS MAX 建模中常用的方法。由于常見動物模型具有對稱性,對于模型的各個部位(腹部、腿部和頭部等等)均采用鏡像建模的方法。對于類似模型,可以采用復(fù)制建模(如腿部)。圖3為使用復(fù)制、鏡像建模方法建立的馬、牛腿部模型。
圖3 鏡像建模實(shí)例Fig.3 Mirror models for the legs of horse and cattle
動物是由多個相同或者不同的其他部分組成,要完成最終的目標(biāo)物體,需要利用各種不同的坐標(biāo)軸,經(jīng)常還需要改變部分的軸心,使用旋轉(zhuǎn)、移動、縮放、對齊、陣列等各種常用工具,通過切換各個視圖來方便的進(jìn)行操作,最后組合成一個完整的有機(jī)部分。通過綜合使用各種建模方法,最終形成的山羊和馬的模型(圖4),可以看出,模型的整體形態(tài)完全接近動物的真實(shí)體型,體型結(jié)構(gòu)合理。
模型庫的建立和管理通過Microsoft Visual C++6.0和SQL SERVER2008[10]來實(shí)現(xiàn)。圖5為三維動物模型庫的總體框架圖,具體功能描述如下:
(1)模型信息錄入,包括模型文件的選擇,模型的編號,以及模型的名稱。
(2)模型信息修改,選中某一記錄,選擇修改,可修改選中記錄的模型文件、模型的編號和模型的名稱。
設(shè)定有m個處理器,主處理器已接收來自從處理器的最優(yōu)解,S={S1,S2,…,Sm},其中 Sm 代表第m個處理器求得的最優(yōu)解,接下來是使用雜交算子方法來分析和處理該最優(yōu)解。上述的算法中,結(jié)合路網(wǎng)的實(shí)際,使用了啟發(fā)式雜交算子,通過實(shí)驗(yàn)案例來表達(dá)如下所示。
(3)模型信息的刪除,選中某一記錄,選擇刪除,即可將選中的記錄刪除。
(4)模型信息查找,在查找的文本框中輸入要查找的關(guān)鍵字,點(diǎn)擊搜索即可將匹配的記錄全部顯示出來。可以進(jìn)行模糊搜索。
圖4 建模完成實(shí)例Fig.4 Completed models for goat and horse
圖5 系統(tǒng)總體框架圖Fig.5 The overall framing pipeline for generating animal 3D models database
2.2.1 配置環(huán)境
(1)下載OpenGL庫文件;
(2)將包里的.h文件(gl.h,glu.h,glaux.h)放到VC 的include/gl/目錄下(.../Microsoft Visual Studio/VC98/Include/GL/);
(3)將包里的.lib 文件(glu32.lib,glaux.lib,opengl32.lib)放到.../Microsoft Visual Studio/VC98/Lib/目錄下;
(4)將包里的.dll 文件(glu.dll,glu32.dll,opengl32.dll)放到C://WINDOWS/system32 目錄下;
(5)在每個VC創(chuàng)建的工程作如下設(shè)置:project->settings->link選項(xiàng)卡->object/library modules里添加OpenGL32.lib glu32.lib glaux.lib。
2.2.2 數(shù)據(jù)庫鏈接 在工程中導(dǎo)入ADO 動態(tài)鏈接庫msado15.dll,并添加代碼#import"c: Program Files Common Files System ado msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF"),這樣就可以進(jìn)行數(shù)據(jù)庫操作。
2.2.3 系統(tǒng)運(yùn)行 圖6為三維模型庫運(yùn)行主界面,其中左側(cè)為模型庫信息,右側(cè)為模型顯示。該系統(tǒng)可對模型進(jìn)行添加、修改和刪除操作,通過雙擊模型信息可以顯示模型,也可以通過查找關(guān)鍵字在模型庫中搜索所需模型,支持模糊查找。圖7為羊的前(a)后(b)左(c)右(d)模型,通過按下鼠標(biāo)右鍵,可以調(diào)整模型的大小,按下鼠標(biāo)左鍵,可以對模型進(jìn)行平移和旋轉(zhuǎn)。
本文首先使用3DS MAX 軟件建立常見動物三維模型,針對動物模型的復(fù)雜性選取了細(xì)分曲面、組合建模技術(shù)來建立動物模型;模型庫的建立和管理通過Microsoft Visual C++6.0和SQL SERVER2008來實(shí)現(xiàn),可以實(shí)現(xiàn)模型添加、修改、刪除以及檢索等操作。三維模型庫可作為動物科學(xué)專業(yè)教學(xué)和實(shí)習(xí)的輔助工具,同時可為虛擬動物手術(shù)奠定基礎(chǔ)。
圖6 系統(tǒng)主界面Fig.6 The main page of animal 3D models database
圖7 不同角度模型顯示圖(以山羊?yàn)槔〧ig.7 The goat 3D models from different angles
[1]張 華.現(xiàn)代技術(shù)在獸醫(yī)臨床教學(xué)中的優(yōu)勢[J].黑龍江畜牧獸醫(yī),2010(23):75.
[2]黎宗強(qiáng).關(guān)于現(xiàn)代家畜解剖學(xué)教學(xué)的一些改進(jìn)[J].廣西農(nóng)學(xué)報,2012,26(5):75-77.
[3]李春生,韓玉清.現(xiàn)代生物技術(shù)在內(nèi)蒙古鄂爾多斯市家畜改良工作中的應(yīng)用[J].畜牧與飼料科學(xué),2011(2):62-64.
[4]黃明聰,張樹生,張孝龍,等.一種基于二維草圖的三維CAD模型檢索方法[J].鍛壓裝備與制造技術(shù),2013,48(3):107-110.
[5]方 舟,張利娜,房亞東.云制造中的標(biāo)準(zhǔn)件三維模型庫技術(shù)[J].西安工業(yè)大學(xué)學(xué)報,2013,32(10):821-824.
[6]王占松,田凌.基于功能的三維模型檢索系統(tǒng)[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2013,25(12):1 877-1 885.
[7]Eitz M,Richter R,Boubekeur T,et al.Sketch-based shape retrieval[J].ACM Trans Graph,2012,31(4):31.
[8]Kiefer P,Noack T,Vollroth M,et al.3D-rotational angiography(Dyna-CT)for mitral valve imaging in an acute animal model[C]//Cardiology.Allschwilerstrasse 10,Ch-4009 Basel,Switzerland:Karger,2012,121(2):111-111.
[9]鄭 艷,徐偉偉,李紹勇.3DS Max 2012 基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2012.
[10]張 莉.SQL Server數(shù)據(jù)庫原理與應(yīng)用教程[M].北京:清華大學(xué)出版社,2012.