设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于Java3D的模型动画引擎-论文JAVA096
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

基于java3D的模型动作引擎

[中文摘要]
    本工程着重对既有三维模型的复用,和对模型动画的制作。现在业界很少有基于java3D的动画引擎,本工程也是对java3d在动画方面的创新。工程围绕对3D Max文件格式的解析,动画帧的设计,动画文件的存储,动画的驱动,以及用户界面的设计做了详尽的说明,并提供了可运行的范例代码。在工程的尾声部分,着重说明了代码的重构过程和调试方式。使代码更加精简,易读。
[英文摘要]
    This project, to already having the replying and using of a threedimensional model emphatically, and the making of the model animation. Seldom there is a engine of animation based on java3D in the industry now, this project is innovation in animation to java3d too. The project centres on the analysis of 3D Max file layout, the design of the animation frame, the memory of the animation file correctly, drive of animation, and design , user of interface make exhaustive explanation, have offered the example code that can be operated. In some of coda of the project , have stated constructing the course and debugging the way again of the code emphatically. Make the code simplified further, legible.http://www.16sheji8.cn/
[关键词]
Java3D、GUI、Swing、GUI、重构
  1、概述
    1.1需求分析

    在3D愈来愈普及的情况下,了解并掌握相关知识已经成为从业者的当务之急。
    1.2开发工具选择
    目前开发三维图形有几种工具:windows上的direct x ,支持多平台的openGL。论资源,openGL和direct x都有很多的可参考编程实例可以参考。其中direct x由于有比较快的更新速度,集成程度比openGL高。OpenGL由于是硬件接口,比directx的硬件映射模式速度略高。据我观察,direct x的普及率比openGL略高。可以说两者不相伯仲,可以任选其一。
    我选择用java开发,因为有一个系统的3D程序设计结构有利于以后向其他语言转变。而java的系统化正是他的优点。
    1.3可行性分析
现在用java开发3d游戏有两种途径:
/1:java3D.  这里面还分基于openGL和基于directx两种。
/2:jogl。 也就是java+openGL的缩写
   
java3d的结构继承了java的严谨。条理性趋近于完美。其结构如下:
VirtualUniverse
   |
   |
  Locale
   |
  / \
BG    BG
|      |
TG    TG
|       \
Shape    ViewPlatform====View====Canvas3D====Screen3D
|   \                    /   \
Ap  Ge                Viewer  Enviorment

BG: BranchGroup  分支节点 http://www.16sheji8.cn/
TG: TransformGroup  变换节点,可以用变换矩阵控制
Ap:Appearance  物体外观数据
Ge: Geometry  物体形状数据
效率问题:java3D最大的问题就在于效率,实现同样的东西,FPS远不及用VC+D3D实现的高。
这就是jogl产生的原因。
缺陷:
动态加载就很成问题。
1.4工程定位及概念设计
我选择制作模型动画引擎,并选择最著名的模型制作软件3D Max制作出来的模型(*.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结构流程图
 
2.3数据存储方式选择

由于采用3d max的*.3ds作为导入资源, 所以用平面文件存储数据比用数据库更具有灵活性和可扩展性。
用户可以方便的通过复制粘贴,或者指定路径来编辑指定模型的动画。每个模型的动画被存为单独的文件,便于传播和拷贝。
2.4设计环境
采用IDE: Eclipse
环境:Windows XP professional edition, java sdk 1.4.1.2, java3d-1_3_1-windows-i586-opengl-sdk
3、数据结构分析与设计http://www.16sheji8.cn/
3.1导入数据结构分析(属于IO模块)
    3ds文件数据是由块(chunks)组成的。 块描述了紧接着的数据的信息,和数据的组成,以及数据块的ID和下一个块的位置。如果有不明数据块,就忽略他。下一个块的指针在这个不明块的开始就有说明。3ds文件的二进制信息使用非常特殊的方式写的,也就是汇编方式,与正常的高位和地位正好相反。比如:4A 5C, 那么5c是高位, 4A是地位。 如果一个长整数为:4A 5C 3B 8F,那么5C4A是低位,8F3B是高位。对于数据块,被定义为:
   start end size name
   0     1   2    Chunk ID
   2     5   4    Pointer to next chunk relative to the place where
                  Chunk ID is, in other words the length of the chunk
   块有一个用ID表明的层次关系。3DS文件的主块ID是4D4DH。这个块永远是文件的第一个块。
   下面的表就是块树的层次关系,不同的块ID就表明了他们的属性和位置。每一个块都被起了一个名字,这样是为了更便于将其放在源代码中。
                  MAIN3DS  (0x4D4D)
                  |
                  +--EDIT3DS  (0x3D3D)
                  |  |
                  |  +--EDIT_MATERIAL (0xAFFF)
                  |  |  |
            
   . //详见3D max文档
   .
                  |
                  +--KEYF3DS (0xB000)
                     |
                     +--KEYF_UNKNWN01 (0xB00A)
                     +--............. (0x7001) ( viewport, same as editor )
                   
3.2模型结构拆分(属于功能模块)http://www.16sheji8.cn/

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于Python的在线自主考试系 基于腾讯云的个人知识库管理系统 基于Android的酒店预定系统
基于matlab变频器控制交流电 基于微信小程序的家校联动平台管理 基于时频分析与自适应滤波技术的多
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!