




已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1基于java3D的模型動作引擎中文摘要本工程著重對既有三維模型的復用,和對模型動畫的制作?,F(xiàn)在業(yè)界很少有基于java3D的動畫引擎,本工程也是對java3d在動畫方面的創(chuàng)新。工程圍繞對3DMax文件格式的解析,動畫幀的設計,動畫文件的存儲,動畫的驅(qū)動,以及用戶界面的設計做了詳盡的說明,并提供了可運行的范例代碼。在工程的尾聲部分,著重說明了代碼的重構(gòu)過程和調(diào)試方式。使代碼更加精簡,易讀。英文摘要Thisproject,toalreadyhavingthereplyingandusingofathreedimensionalmodelemphatically,andthemakingofthemodelanimation.Seldomthereisaengineofanimationbasedonjava3Dintheindustrynow,thisprojectisinnovationinanimationtojava3dtoo.Theprojectcentresontheanalysisof3DMaxfilelayout,thedesignoftheanimationframe,thememoryoftheanimationfilecorrectly,driveofanimation,anddesign,userofinterfacemakeexhaustiveexplanation,haveofferedtheexamplecodethatcanbeoperated.Insomeofcodaoftheproject,havestatedconstructingthecourseanddebuggingthewayagainofthecodeemphatically.Makethecodesimplifiedfurther,legible.關鍵詞Java3D、GUI、Swing、GUI、重構(gòu)1、概述1.1需求分析在3D愈來愈普及的情況下,了解并掌握相關知識已經(jīng)成為從業(yè)者的當務之急。1.2開發(fā)工具選擇目前開發(fā)三維圖形有幾種工具:windows上的directx,支持多平臺的openGL。論資源,openGL和directx都有很多的可參考編程實例可以參考。其中directx由于有比較快的更新速度,集成程度比openGL高。OpenGL由于是硬件接口,比directx的硬件映射模式速度略高。據(jù)我觀察,directx的普及率比openGL略高??梢哉f兩者不相伯仲,可以任選其一。我選擇用java開發(fā),因為有一個系統(tǒng)的3D程序設計結(jié)構(gòu)有利于以后向其他語言轉(zhuǎn)變。而java的系統(tǒng)化正是他的優(yōu)點。1.3可行性分析現(xiàn)在用java開發(fā)3d游戲有兩種途徑:/1:java3D.這里面還分基于openGL和基于directx兩種。/2:jogl。也就是java+openGL的縮寫java3d的結(jié)構(gòu)繼承了java的嚴謹。條理性趨近于完美。其結(jié)構(gòu)如下:VirtualUniverse|Locale|/BGBG2|TGTG|ShapeViewPlatform=View=Canvas3D=Screen3D|/ApGeViewerEnviormentBG:BranchGroup分支節(jié)點TG:TransformGroup變換節(jié)點,可以用變換矩陣控制Ap:Appearance物體外觀數(shù)據(jù)Ge:Geometry物體形狀數(shù)據(jù)效率問題:java3D最大的問題就在于效率,實現(xiàn)同樣的東西,F(xiàn)PS遠不及用VC+D3D實現(xiàn)的高。這就是jogl產(chǎn)生的原因。缺陷:動態(tài)加載就很成問題。1.4工程定位及概念設計我選擇制作模型動畫引擎,并選擇最著名的模型制作軟件3DMax制作出來的模型(*.3ds)作為我的引擎導入模型格式。這不僅因為3ds模型逼真,而且這種模型在網(wǎng)上有很多共享資源可以使用。2、基于java的模型動作引擎的選定和系統(tǒng)總體設計有人說種純oo的語言:java,c#在程序設計上強制oo,不僅僅帶來了條理性和可靠性,在可重用方面更是其他語言不能比擬的。2.1工程的劃分主模塊/驅(qū)動模塊:AnimationEditor.java功能:一切模型和視角動作的驅(qū)動(用主循環(huán)實現(xiàn)),程序入口(main方法和setup方法),GUI部分及響應(Swing類庫和Listener的使用)。IO模塊:ModelLoader.java,F(xiàn)rameIO.java,LocalDAO.java功能:負責模型的導入(3ds格式的解析,形成java3D格式模型),動畫的導入和導出(采用對象導入導出技術,對動作組進行反射壓棧),本地數(shù)據(jù)庫訪問。對象模塊:Aframe.java,MoveMatrix.java,ModelStruc.java功能:幀結(jié)構(gòu),動畫結(jié)構(gòu),模型結(jié)構(gòu)功能模塊:FrameAccesser.java,FramePlayer.java,ModelCutter.java,功能:幀結(jié)構(gòu)訪問代理類,動畫播放類(插值器),模型切分類(反射機制實現(xiàn))輔助模塊:Axis.java,Land.java,srcNameCheck.java功能:坐標軸,三維地面參考,源路徑檢測??刂颇K:GameControl.java,PickHighLightBehavior.java功能:編輯器視圖控制,被選擇部分模型高亮顯示。資源模塊:*.3ds,*.ani功能:模型資源,動畫資源2.2結(jié)構(gòu)流程圖32.3數(shù)據(jù)存儲方式選擇由于采用3dmax的*.3ds作為導入資源,所以用平面文件存儲數(shù)據(jù)比用數(shù)據(jù)庫更具有靈活性和可擴展性。用戶可以方便的通過復制粘貼,或者指定路徑來編輯指定模型的動畫。每個模型的動畫被存為單獨的文件,便于傳播和拷貝。2.4設計環(huán)境采用IDE:Eclipse環(huán)境:WindowsXPprofessionaledition,javasdk1.4.1.2,java3d-1_3_1-windows-i586-opengl-sdk3、數(shù)據(jù)結(jié)構(gòu)分析與設計3.1導入數(shù)據(jù)結(jié)構(gòu)分析(屬于IO模塊)3ds文件數(shù)據(jù)是由塊(chunks)組成的。塊描述了緊接著的數(shù)據(jù)的信息,和數(shù)據(jù)的組成,以及數(shù)據(jù)塊的ID和下一個塊的位置。如果有不明數(shù)據(jù)塊,就忽略他。下一個塊的指針在這個不明塊的開始就有說明。3ds文件的二進制信息使用非常特殊的方式寫的,也就是匯編方式,與正常的高位和地位正好相反。比如:4A5C,那么5c是高位,4A是地位。如果一個長整數(shù)為:4A5C3B8F,那么5C4A是低位,8F3B是高位。對于數(shù)據(jù)塊,被定義為:startendsizename012ChunkID254PointertonextchunkrelativetotheplacewhereChunkIDis,inotherwordsthelengthofthechunk塊有一個用ID表明的層次關系。3DS文件的主塊ID是4D4DH。這個塊永遠是文件的第一個塊。4下面的表就是塊樹的層次關系,不同的塊ID就表明了他們的屬性和位置。每一個塊都被起了一個名字,這樣是為了更便于將其放在源代碼中。MAIN3DS(0x4D4D)|+-EDIT3DS(0x3D3D)|+-EDIT_MATERIAL(0xAFFF)|./詳見3Dmax文檔.|+-KEYF3DS(0xB000)|+-KEYF_UNKNWN01(0xB00A)+-.(0x7001)(viewport,sameaseditor)3.2模型結(jié)構(gòu)拆分(屬于功能模塊)在導入3ds模型的時候形成了以整體模型為根節(jié)點的BranchGroup,其模型的樹狀結(jié)構(gòu)如下:TG整體模型|BG|BGBG.|TGTG|ShapeShape.這些是模型最小分割|GeoAp在java樹中,我們可以用父節(jié)點枚舉子節(jié)點。利用反射原理,將整個的模型分割成最小的塊。下面的ModelCutter類用來分割模型。publicclassModelCutter3.3幀結(jié)構(gòu)設計(屬于對象模塊)對于模型的每一個最小細分,一個幀應該記錄這個最小細分的三維位置向量,三維旋轉(zhuǎn)量,和三維比例。除了這些,幀還應該有自己在整個動畫里面的序號,指向前一個幀和后一個幀的指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非訴訟合同協(xié)議
- 集訓教練聘用合同協(xié)議
- 長租商鋪轉(zhuǎn)讓合同協(xié)議
- 除塵設備售賣合同協(xié)議
- 風力發(fā)電工人合同協(xié)議
- 食堂檔口轉(zhuǎn)租合同協(xié)議
- 露營用品采購合同協(xié)議
- 項目外包勞務合同協(xié)議
- 長隆項目開發(fā)合同協(xié)議
- 門市業(yè)務員合同協(xié)議
- 第二章中國體育產(chǎn)業(yè)的發(fā)展與現(xiàn)狀
- 靜脈炎的護理 課件
- DB3303T078-2024規(guī)模以上工業(yè)企業(yè)健康評價指標體系
- 特種作業(yè)合同協(xié)議
- 社工證考試試題及答案
- 2025年云南專升本招生計劃
- 2025年寬帶網(wǎng)絡拓展合作協(xié)議書
- 教學主管競聘培訓機構(gòu)
- 【9語期末】黃山市歙縣2024-2025學年九年級上學期期末語文試題
- 血液安全管理制度
- 《工程勘察設計收費標準》(2002年修訂本)
評論
0/150
提交評論