会员注册 | 登录 | 微信快捷登录 支付宝快捷登录 QQ登录 微博登录 | 帮助中心 人人文库renrendoc.com美如初恋!
站内搜索 百度文库

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

   首页 人人文库网 > 资源分类 > DOC文档下载

基于java3D的模型动作引擎毕业论文.doc

  • 资源星级:
  • 资源大小:589.00KB   全文页数:13页
  • 资源格式: DOC        下载权限:注册会员/VIP会员
您还没有登陆,请先登录。登陆后即可下载此文档。
  合作网站登录: 微信快捷登录 支付宝快捷登录   QQ登录   微博登录
友情提示
2:本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3:本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

基于java3D的模型动作引擎毕业论文.doc

1基于java3D的模型动作引擎中文摘要本工程着重对既有三维模型的复用,和对模型动画的制作。现在业界很少有基于java3D的动画引擎,本工程也是对java3d在动画方面的创新。工程围绕对3DMax文件格式的解析,动画帧的设计,动画文件的存储,动画的驱动,以及用户界面的设计做了详尽的说明,并提供了可运行的范例代码。在工程的尾声部分,着重说明了代码的重构过程和调试方式。使代码更加精简,易读。英文摘要Thisproject,toalreadyhavingthereplyingandusingofathreedimensionalmodelemphatically,andthemakingofthemodelanimation.Seldomthereisaengineofanimationbasedonjava3Dintheindustrynow,thisprojectisinnovationinanimationtojava3dtoo.Theprojectcentresontheanalysisof3DMaxfilelayout,thedesignoftheanimationframe,thememoryoftheanimationfilecorrectly,driveofanimation,anddesign,userofinterfacemakeexhaustiveexplanation,haveofferedtheexamplecodethatcanbeoperated.Insomeofcodaoftheproject,havestatedconstructingthecourseanddebuggingthewayagainofthecodeemphatically.Makethecodesimplifiedfurther,legible.关键词Java3D、GUI、Swing、GUI、重构1、概述1.1需求分析在3D愈来愈普及的情况下,了解并掌握相关知识已经成为从业者的当务之急。1.2开发工具选择目前开发三维图形有几种工具windows上的directx,支持多平台的openGL。论资源,openGL和directx都有很多的可参考编程实例可以参考。其中directx由于有比较快的更新速度,集成程度比openGL高。OpenGL由于是硬件接口,比directx的硬件映射模式速度略高。据我观察,directx的普及率比openGL略高。可以说两者不相伯仲,可以任选其一。我选择用java开发,因为有一个系统的3D程序设计结构有利于以后向其他语言转变。而java的系统化正是他的优点。1.3可行性分析现在用java开发3d游戏有两种途径/1java3D.这里面还分基于openGL和基于directx两种。/2jogl。也就是javaopenGL的缩写java3d的结构继承了java的严谨。条理性趋近于完美。其结构如下VirtualUniverse||Locale|/\BGBG2||TGTG|\ShapeViewPlatformViewCanvas3DScreen3D|\/\ApGeViewerEnviormentBGBranchGroup分支节点TGTransformGroup变换节点,可以用变换矩阵控制ApAppearance物体外观数据GeGeometry物体形状数据效率问题java3D最大的问题就在于效率,实现同样的东西,FPS远不及用VCD3D实现的高。这就是jogl产生的原因。缺陷动态加载就很成问题。1.4工程定位及概念设计我选择制作模型动画引擎,并选择最著名的模型制作软件3DMax制作出来的模型(.3ds)作为我的引擎导入模型格式。这不仅因为3ds模型逼真,而且这种模型在网上有很多共享资源可以使用。2、基于java的模型动作引擎的选定和系统总体设计有人说种纯oo的语言java,c在程序设计上强制oo,不仅仅带来了条理性和可靠性,在可重用方面更是其他语言不能比拟的。2.1工程的划分主模块/驱动模块AnimationEditor.java功能一切模型和视角动作的驱动(用主循环实现),程序入口(main方法和setup方法),GUI部分及响应(Swing类库和Listener的使用)。IO模块ModelLoader.java,FrameIO.java,LocalDAO.java功能负责模型的导入(3ds格式的解析,形成java3D格式模型),动画的导入和导出(采用对象导入导出技术,对动作组进行反射压栈),本地数据库访问。对象模块Aframe.java,MoveMatrix.java,ModelStruc.java功能帧结构,动画结构,模型结构功能模块FrameAccesser.java,FramePlayer.java,ModelCutter.java,功能帧结构访问代理类,动画播放类(插值器),模型切分类(反射机制实现)辅助模块Axis.java,Land.java,srcNameCheck.java功能坐标轴,三维地面参考,源路径检测。控制模块GameControl.java,PickHighLightBehavior.java功能编辑器视图控制,被选择部分模型高亮显示。资源模块.3ds,.ani功能模型资源,动画资源2.2结构流程图32.3数据存储方式选择由于采用3dmax的.3ds作为导入资源,所以用平面文件存储数据比用数据库更具有灵活性和可扩展性。用户可以方便的通过复制粘贴,或者指定路径来编辑指定模型的动画。每个模型的动画被存为单独的文件,便于传播和拷贝。2.4设计环境采用IDEEclipse环境WindowsXPprofessionaledition,javasdk1.4.1.2,java3d1_3_1windowsi586openglsdk3、数据结构分析与设计3.1导入数据结构分析属于IO模块3ds文件数据是由块(chunks)组成的。块描述了紧接着的数据的信息,和数据的组成,以及数据块的ID和下一个块的位置。如果有不明数据块,就忽略他。下一个块的指针在这个不明块的开始就有说明。3ds文件的二进制信息使用非常特殊的方式写的,也就是汇编方式,与正常的高位和地位正好相反。比如4A5C,那么5c是高位,4A是地位。如果一个长整数为4A5C3B8F,那么5C4A是低位,8F3B是高位。对于数据块,被定义为startendsizename012ChunkID254PointertonextchunkrelativetotheplacewhereChunkIDis,inotherwordsthelengthofthechunk块有一个用ID表明的层次关系。3DS文件的主块ID是4D4DH。这个块永远是文件的第一个块。4下面的表就是块树的层次关系,不同的块ID就表明了他们的属性和位置。每一个块都被起了一个名字,这样是为了更便于将其放在源代码中。MAIN3DS0x4D4D|EDIT3DS0x3D3D|||EDIT_MATERIAL0xAFFF|||.//详见3Dmax文档.|KEYF3DS0xB000|KEYF_UNKNWN010xB00A.............0x7001viewport,sameaseditor3.2模型结构拆分(属于功能模块)在导入3ds模型的时候形成了以整体模型为根节点的BranchGroup,其模型的树状结构如下TG整体模型|BG|\\BGBG.....|\TGTG|\ShapeShape......这些是模型最小分割|\GeoAp在java树中,我们可以用父节点枚举子节点。利用反射原理,将整个的模型分割成最小的块。下面的ModelCutter类用来分割模型。publicclassModelCutter3.3帧结构设计(属于对象模块)对于模型的每一个最小细分,一个帧应该记录这个最小细分的三维位置向量,三维旋转量,和三维比例。除了这些,帧还应该有自己在整个动画里面的序号,指向前一个帧和后一个帧的指针。作为辅助,应该加上toString函数,这样随时可以获取当前帧的信息。最后提供了一个方便的构造函数,可以便捷的将输入帧作为上一帧。publicclassAFrameimplementsSerializable3.4动画结构.ani的设计(IO模块)有两个问题在这里需要讨论第一个是保存什么的讨论,在这里有两个选择,保存每个帧,或者保存关键帧。前

注意事项

本文(基于java3D的模型动作引擎毕业论文.doc)为本站会员(网游小王子)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网([email protected]),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

copyright@ 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5