3DS三维模型可视化平台设计与实现毕业论文
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
目 录
摘 要 I
Abstract II
目 录 III
第一章 引言 1
1.1课题研究的必要性 1
1.1.1 可视化技术 1
1.1.2 3DS三维模型 1
1.1.3 OpenGL图形开发库 1
1.2课题研究的可行性 2
1.2.1 三维绘图标准 2
1.2.2 3DS格式理论性研究 2
1.2.3客户/服务器模式研究 2
1.3国内外研究状况 2
1.4 基本概念描述 3
第二章 3DS文件解析原理及其实现 5
2.1 3DS文件格式说明 5
2.1.1简介 5
2.1.2基本主块 5
2.1.3 全局子块 5
2.1.4 编辑子块 6
2.1.5关键帧块 10
2.2 3DS解析实现 11
第三章 用户交互功能的原理与实现 13
3.1 几何变换基本原理 13
3.1.1平移变换 13
3.1.2 缩放变换 13
3.1.3 旋转变换 14
3.2 程序实现 15
第四章 可视化系统的系统分析与实现 19
4.1系统功能描述 19
4.2软件的系统结构分析 20
4.2.1系统的组成和结构 20
copyright think58
[来源:http://www.think58.com]
4.2.2多维体系结构设计 21
4.2.3绘图引擎组件结构设计 22
4.2.4数据流、控制流分析与设计 23
4.2.5用户界面设计 26
第五章 性能分析 27
5.1表面材质与环境光照模型 27
5.2模型坐标变换及法向量控制 28
总 结 29
致 谢 30
参考文献 31
附录 32
课题研究的可行性
1.2.1 三维绘图标准
OpenGL 的前身是SGI公司为其图形工作站开发的IRISGL。IRISGL
是一个工业标准的3D图形软件接口,英文全称是“Open Graphics Library”。OpenGL于1992年7月由SGI公司发布,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件,也可在微机上运行。后来随着一些支持OpenGL的商业软件如AutoCAD、UG、SolidEdge等的成功,这些赋予了OpenGL更强的生命力[3]。
1.2.2 3DS格式理论性研究
AutoDesk公司虽然在早期并没有发布关于3DS文件格式的详细规范;但是,在三维游戏制作的过程中,因为总是要求软件工程师对3DS角色模型进行格式转换,因此软件开发者们越来越体会到理解3DS文件格式内容的重要性。后来由Jeff Lewis根据自己的程序分析以及其他人的经验借鉴编写了3DS文件格式的非正式初稿,最终随着David Farrell发布其相应3DS解析程序View3DS而使人们对3DS文件有了更加深入的认识。 think58 [来源:http://think58.com]
1.2.3客户/服务器模式研究
自从70年代末微处理器的性能不断提高,而微机的价格却在不断下降,已与传统的终端价格相当。此时的主机便由处理各类终端型作业转向为以请求/响应方式为各联机提供更高层次的服务,这样便形成了客户/服务器模式。
由于其灵活性、可维护性与可扩充性,后来这种模式又被应用于应用程序系统结构设计[4]。
1.3国内外研究状况
下面列出了几种开源的可视化软件,并给出了简单的介绍:
1. OpenDX:它是一个开源的可视化框架,它允许用户把先进的可视化与分析技术应用于元数据上。这些技术能帮助用户在众多领域包括计算科学、工程学、医学以及商业应用中获得对数据的全新认识。它提供了比较全面的功能集,包括数据的图形化生成、变换、处理、渲染以及模拟数据的动态变化等基本功能;而且,还允许用户进行基于点、线、二维平面、三维立体和其他集合元信息以及它们的组合信息的可视化分析技术。它采用了数据源独立的设计策略,因此它能很容易适应新的数据源和新的应用场合。另外,它采用了基于面向对象的用户界面设计方法,能方便用户进行操作。它的最明显特征就是其面向对象的,自描述的数据模型方式。这一特点使得该软件只要被链接相应的数据输入处理模块就能处理所有形式的数据输入,不管这些数据格式是标准的还是用户自定义的[5]。
think58
[资料来源:THINK58.com]
2. Vis5D:它是一个能可视化网格数据和非规则的用户自定义数据的软件系统。数据源可以是用数字表示的天气状况信息,实体扫描和其他类似的途径。它能描述最多五维的数据信息,也就是三维坐标再加上时间坐标,最后一维用于描述多个所关注的物理变量的向量。它的最明显特征就是支持多种数据集合的比较。也就是说,软件会在运行过程中维持一个文件集合,这个集合包含所有的已打开的文件;并且文件能够在软件运行过程中动态加入到这个集合中去。所有的文件信息能够在同时在一个三维场景或者是多个棋盘格窗口中显示[6]。
程序实现
在实际绘图中,常常要对图形连续做多次变换。这样需要对该图形上的点集按变换顺序依次进行计算,计算量较大。如果只对图形进行旋转和缩放两类变换,则可以将这些变换复合为一个变换,即将两次晕眩转换成一次性的矩阵和向量乘法。但是如果变换中加入平移变换,这些变换就不容易合并了。这主要是因为平移变换和旋转、缩放变换的表示形式不一样;平移变换为矢量加法,而旋转、缩放变换为矩阵乘法。为了使各种变换的表示形式一致,从而使变换合成更容易,有必要引入齐次坐标的概念[11]。
所谓齐次坐标表示用n+1维向量表示n维向量。例如,在二维平面中,点 的齐次坐标表示为 。这里,w是任一个不为0的比例系数。类似地,三维空间中坐标点的齐次坐标表示为 。推而广之,n维空间中的一个点 的齐次坐标为 。 copyright think58
[资料来源:www.THINK58.com]
这里需要注意的是,用笛卡尔直角坐标表示n维空间中一个点向量是惟一的。而用齐次坐标表示则不是惟一的,例如(10, 25, 15, 5), (6, 15, 9, 3)均为点(2, 5, 3)这一点的齐次坐标。这种多对一的映射关系往往使运算较为复杂,所以通常 的齐次坐标表示为 。
其次坐标表示法一方面可以表示无穷远点,例如,n+1维向量中,w=0的齐次坐标实际上表示一个n维的无穷远点;另一方面用齐次坐标表示,使得所有几何变换都可以用矩阵相乘来表示,获得了平移、旋转和缩放变换的一致性表示,无论哪种变换形式,变换矩阵均可以用一个统一的4*4矩阵来表示。 think58
[资料来源:THINK58.com]
[来源:http://think58.com]