欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > DOC文档下载  

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

    • 资源ID:101171       资源大小:589KB        全文页数:13页
    • 资源格式: DOC        下载积分:5积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于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游戏有两种途径:/1:java3D.这里面还分基于openGL和基于directx两种。/2:jogl。也就是java+openGL的缩写java3d的结构继承了java的严谨。条理性趋近于完美。其结构如下:VirtualUniverse|Locale|/BGBG2|TGTG|ShapeViewPlatform=View=Canvas3D=Screen3D|/ApGeViewerEnviormentBG:BranchGroup分支节点TG:TransformGroup变换节点,可以用变换矩阵控制Ap:Appearance物体外观数据Ge:Geometry物体形状数据效率问题:java3D最大的问题就在于效率,实现同样的东西,FPS远不及用VC+D3D实现的高。这就是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设计环境采用IDE:Eclipse环境:WindowsXPprofessionaledition,javasdk1.4.1.2,java3d-1_3_1-windows-i586-opengl-sdk3、数据结构分析与设计3.1导入数据结构分析(属于IO模块)3ds文件数据是由块(chunks)组成的。块描述了紧接着的数据的信息,和数据的组成,以及数据块的ID和下一个块的位置。如果有不明数据块,就忽略他。下一个块的指针在这个不明块的开始就有说明。3ds文件的二进制信息使用非常特殊的方式写的,也就是汇编方式,与正常的高位和地位正好相反。比如:4A5C,那么5c是高位,4A是地位。如果一个长整数为:4A5C3B8F,那么5C4A是低位,8F3B是高位。对于数据块,被定义为: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模型结构拆分(属于功能模块)在导入3ds模型的时候形成了以整体模型为根节点的BranchGroup,其模型的树状结构如下:TG整体模型|BG|BGBG.|TGTG|ShapeShape.这些是模型最小分割|GeoAp在java树中,我们可以用父节点枚举子节点。利用反射原理,将整个的模型分割成最小的块。下面的ModelCutter类用来分割模型。publicclassModelCutter3.3帧结构设计(属于对象模块)对于模型的每一个最小细分,一个帧应该记录这个最小细分的三维位置向量,三维旋转量,和三维比例。除了这些,帧还应该有自己在整个动画里面的序号,指向前一个帧和后一个帧的指针。作为辅助,应该加上toString函数,这样随时可以获取当前帧的信息。最后提供了一个方便的构造函数,可以便捷的将输入帧作为上一帧。publicclassAFrameimplementsSerializable3.4动画结构*.ani的设计(IO模块)有两个问题在这里需要讨论:第一个是保存什么的讨论,在这里有两个选择,保存每个帧,或者保存关键帧。前

    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!