施美雅
(泉州師范學(xué)院 應(yīng)用科技學(xué)院,福建 泉州 362000)
關(guān)于人體模型處理技術(shù)的探究
施美雅
(泉州師范學(xué)院 應(yīng)用科技學(xué)院,福建 泉州 362000)
選擇VRML和Java3D技術(shù)處理三維人體模型,該方法不僅可以高效地支持人體模型的可視化,還支持基于三維人體模型的研究與應(yīng)用.采用Java3D技術(shù)對三維人體模型進(jìn)行處理,可成功地解決前人利用VRML技術(shù)開發(fā)系統(tǒng)所碰到的若干問題.
VRM L;Java3D;三維人體模型;可視化
VRML即虛擬現(xiàn)實建模語言,指的是一種可描述三維體型和交互環(huán)境的標(biāo)準(zhǔn)的三維文件格式.目前,市場上已存在很多的基于VRML技術(shù)的瀏覽器,比較流行的有Parallel Graphics所提供的Cortona Vrml Client,SGI公司所提供的CosmoPlayer等瀏覽器.
1)優(yōu)點:具有平臺的無關(guān)性;在因特網(wǎng)上已廣泛普及,應(yīng)用前景廣闊;VRML程序編寫方便,可用來構(gòu)造三維的虛擬交互環(huán)境,于電子商務(wù)中展示數(shù)字化的三維產(chǎn)品模型,編寫三維的動畫片,編寫三維的游戲,用于計算機(jī)的輔助教學(xué).
2)缺點:基于Vrml技術(shù)的瀏覽器不提供用戶的擴(kuò)展機(jī)制;語言功能還不是很強(qiáng),例如目前沒有形體之間的碰撞的檢查功能;與JAVA語言等其他高級語言的連接相對比較難掌握,難以適應(yīng)某些領(lǐng)域的應(yīng)用.
MATLAB產(chǎn)品家族是由美國Math Works公司所開發(fā)的,主要是用于概念設(shè)計,建模仿真,算法仿真,實時實現(xiàn)的理想的集成的環(huán)境.
1)優(yōu)點:具有先進(jìn)的設(shè)計思路、先進(jìn)的開發(fā)思路、完整的專業(yè)體系;在許多領(lǐng)域都具有比較廣闊的應(yīng)用,特別是在建模仿真、科學(xué)計算和信息工程系統(tǒng)方面的相關(guān)設(shè)計及開發(fā),現(xiàn)已經(jīng)成為了對應(yīng)行業(yè)內(nèi)的第一個首選的設(shè)計的工具;在航空航天、機(jī)械化工、教育、電信、金融財務(wù)等行業(yè)已有非常多的用戶,企業(yè)用戶超過了五十萬,個人用戶超過了上千萬;具有比較強(qiáng)大功能的工具箱,特別是對于矩陣和線性代數(shù)方面的計算能力;具有比較多的擴(kuò)展資源;在虛擬的服裝人體模型上也有一定的應(yīng)用,支持對Web站點的擴(kuò)展應(yīng)用以及虛擬現(xiàn)實和三維圖形的現(xiàn)實及處理[1].
2)缺點:存在網(wǎng)絡(luò)多用戶的實時訪問限制;不便于與用戶的實時交互.
DIRECT3D是微軟公司所推出的三維圖形的編程API.
1)優(yōu)點:用于三維游戲的編程.
2)缺點:相關(guān)的學(xué)習(xí)資料目前比較少,而且難于獲??;API一般情況下需要由VC等編程工具來編程,因此相關(guān)的編程人員就必須要具有比較高的編程功能,較難普及.
JAVA3D是基于JVAA2的,它封裝了目前比較流程的3D開發(fā)工具,如Direct X和OpenGL,具有較高的編寫三維圖形的功能,JAVA語言相對比較簡單,因此也較容易進(jìn)行推廣.
具有VRML2.0提供的所有的功能;可編寫一個比較完善的三維應(yīng)用程序;可生成簡單的三維形體,還可以直接調(diào)用已有的三維形體;可實現(xiàn)具有顏色、貼圖以及透明效果的形體;可在三維環(huán)境下生成燈光或者移動燈光;可生成霧、聲音以及各式各樣的背景等;可對形體進(jìn)行多種變化以生成三維動畫,如移動動畫或變形動畫;具有了行為的處理判斷能力;可編寫比較高級復(fù)雜的三維圖形應(yīng)用程序;可應(yīng)用于各個領(lǐng)域,例如VR等;作為一種高級高效的三維圖形編程工具,能利用硬件的加速功能對場景實現(xiàn)預(yù)編譯,提高工作效率;Java3D技術(shù)可與Java技術(shù)實現(xiàn)無縫連接,使得系統(tǒng)的擴(kuò)展性更強(qiáng);對于Java3D技術(shù)的支持功能是用Java3D技術(shù)開發(fā)的,因此簡單易用;對于Java3D技術(shù)暫不支持的功能,可利用Java技術(shù)來作底層開發(fā);系統(tǒng)的結(jié)構(gòu)靈活、易進(jìn)行擴(kuò)展、可隨心所欲編程,可滿足用戶種種需求;具有共享精神,容易反編譯,有相當(dāng)多的共享源代碼可學(xué)習(xí)及借鑒,使得Java技術(shù)發(fā)展迅速.
選用VRML技術(shù)描述3D人體模型,即用VRML文件保存人體模型.選擇Java3D技術(shù)實現(xiàn)系統(tǒng)的開發(fā).利用這種方法來開發(fā)三維人體模型不僅可實現(xiàn)自由地對整個人體進(jìn)行顯示、旋轉(zhuǎn)和縮放,還可以單獨地對軀干等部分進(jìn)行顯示,并可支持點云或表面或網(wǎng)絡(luò)等三種不同方式的顯示,對于人體模型可完全進(jìn)行控制,為人體服裝模型的應(yīng)用奠定了基礎(chǔ).
在VRML文件中,三維人體模型數(shù)據(jù)有7大組成部分,它們分別是Rightl_FACE,Leftl_FACE,Torso_FACE,l Arm_FACE,RArm_FACE,LHand_FACE,RHand_FACE.
三維場景的描述是利用文本信息來實現(xiàn)的,是由許多節(jié)點層層嵌套形成的,每個節(jié)點是由域組成的,每個域都有對應(yīng)的域值,這些域值都指定了一個場景的特征.
人體模型數(shù)據(jù)的VRML文件具有以下幾個類型的節(jié)點[2]:
3.2.1 定位、縮放、旋轉(zhuǎn)節(jié)點 Transform
Transform節(jié)點,具有10個域:縮放節(jié)點域-Scale、定位節(jié)點域-Translation、旋轉(zhuǎn)節(jié)點域-Rotation、子節(jié)點列表域-chileren等.
3.2.2 外形節(jié)點Shap
Shap節(jié)點主要是用于創(chuàng)建造型,具有兩個域:一個是Appearance域,一個是Geometry域.Appearance域值是用于定義造型的外觀的,而Geometry域值是用于定義空間造型的幾何尺寸大小的,主要包括了基本的造型和高級造型.
3.2.3 Appearance節(jié)點
該節(jié)點具有3個域,分別是Mmaterial域(用于指定造型的材料)、Texture Transform域和Texture域(用于指定造型的表面貼圖).
3.2.4 Material節(jié)點
該節(jié)點具有6個域,分別是SpecularColor(用于鏡面反射光)、Shininess(用于造型亮度)、EmissiveColor(用于自發(fā)光顏色)、DiffuseColor(用于漫反射)、AmbientIntesity(用于對環(huán)境光的反射)和Transparency(用于透明設(shè)置).
3.2.5 Indexed FaceSet面節(jié)點
該節(jié)點主要包括兩個節(jié)點:Coordinate節(jié)點(用于表示頂點坐標(biāo))和CoordIndex節(jié)點(用于表示頂點坐標(biāo)索引,例如,-1表示的是一個空間面的完結(jié)以及另一個空間面的開始).
采用Java3D技術(shù)實現(xiàn)對三維人體數(shù)據(jù)的處理,Java3D是一種面向?qū)ο蟮木幊碳夹g(shù),它的數(shù)據(jù)結(jié)構(gòu)采用的是場景圖,具有方向性、不對稱性的樹狀層次模型.
靈活的樹型結(jié)構(gòu)類似描述列表,包含了有關(guān)場景中的所有對象,以及渲染這些對象的所有的信息.
Java3D的場景樹由視圖分支和內(nèi)容分支這兩個分支組成.
4.2.1 視圖分支
視圖分支主要是包含了復(fù)雜的Java3D視圖模型的所有一切細(xì)節(jié).它由代表虛擬世界中視點的ViewPlatform對象和代表物理世界中觀察者為之的View對象兩部分組成.利用這兩個對象,建立兩個世界位置坐標(biāo).
4.2.2 內(nèi)容分支
內(nèi)容分支主要是描述了用戶將在場景中所看到的內(nèi)容,包括了所有的圖形對象,如球體、立方體或更加復(fù)雜的幾何對象等;及這些對象的具體顏色、具體的問題和這些對象之間的相互位置及交互內(nèi)容;移動的對象,轉(zhuǎn)換的對象,對象的具體行為等;場景中的所有的光照和煙霧.相對于視圖分支,內(nèi)容分支相對比較復(fù)雜.
建立三維人體模型場景的具體步驟如下:
1)創(chuàng)建一個對象,Canvas3D對象;
2)創(chuàng)建一個對象,Virtural Universe對象;
3)創(chuàng)建一個對象,Local對象,將其與對象Vritrual Universe進(jìn)行聯(lián)系;
4)創(chuàng)建View Platform視野子圖;
5)創(chuàng)建三維人體模型子圖:將用于屏幕上顯示的三維人體模型作為ObjBG加入到場景中;
6)將具體的鼠標(biāo)鍵盤的行為加入到SceneRoot,這樣就可以控制Scene TG的縮放、平移和旋轉(zhuǎn)操作;
7)對子圖進(jìn)行編譯;
8)將子圖插入到Locale.
利用上述操作所建立的場景將會包含作為TransformGroup節(jié)點的人體的坐標(biāo)系信息,作為子節(jié)點TransformGroup節(jié)點的人體部件的信息,以及作為Geometry節(jié)點和Appearance節(jié)點的人體部件的幾何坐標(biāo)和膚色的信息.
Java3D技術(shù)可實現(xiàn)三維形體的自由平移或旋轉(zhuǎn),可在鼠標(biāo)的控制下隨意進(jìn)行旋轉(zhuǎn),縮放和平移操作.這些動作模型均作用在Transform Group節(jié)點,為了實現(xiàn)這些功能,可直接在該TransformGroup節(jié)點下添加一些屬性值即可實現(xiàn).
本文對多種三維圖形處理技術(shù)的優(yōu)缺點進(jìn)行對比,選擇VRML技術(shù)描述三維人體模型,選擇Java3D技術(shù)實現(xiàn)對三維人體模型的處理,該方法不僅高效地支持人體模型的可視化,同時也支持基于三維人體模型的研究與應(yīng)用.
[1] 劉 雁,耿兆豐.Matlab在三維人體及服裝建模上的應(yīng)用[J].微型機(jī)與應(yīng)用,2003,22(9):38-40
[2] 吳小華.構(gòu)建個性化網(wǎng)絡(luò)虛擬世界:VRML從入門到精通[M].北京:國防工業(yè)出版社,2002
Research of Human Body Model Processing Technology
Shi Meiya
(Applied Science and Technology College,Quanzhou Normal University,Quanzhou 362000,China)
Choosing VRML and Java3D technology processes 3d model of the human body,this method can not only effectively support the visualization model of the human body,also support the research and application of 3d model of the model body.Ussing the Java3D technology processes the 3d model of the human body can successfully solve some problems by VRML technology.
VRML;Java3D;3d model of the human body;visualization
王映苗】
1672-2027(2011)04-0112-04
TP37
A
2011-06-19
施美雅(1981-),女,福建晉江人,碩士,泉州師范學(xué)院助教,主要從事多媒體方向研究.