




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南大学毕业设计(论文) 第I 页 湖南大学软件学院 HUNAN UNIVERSITY 毕业设计(论文) 设计论文题目:设计论文题目: 3DS三维模型的可视化系统设计 与实现 学生姓名: 罗正龙 学生学号: 20031610511 专业班级: 软件工程2003级5班 学院名称: 软件学院 指导老师: 欧阳柳波 学院院长: 林亚平 2007 年 6 月 7 日 湖南大学毕业设计(论文) 第II 页 湖南大学软件学院 3DS 三维模型可视化平台设计与实现 3DS 三维模型可视化平台设计与实现 摘 要 科学计算可视化将计算中所涉及和产生的数字信息以直观的图像或图形的 形式呈现在研究者面前,使他们能够观察到模拟和计算;同时还提供与模拟和计 算的视觉交互手段。通常科学计算可视化也称为科学可视化(Scientific Visualization)或简称为可视化(Visualization)。自二十世纪九十年代以来, 可视化也逐渐成为了人们日常生活中的重要元素。 首先,本文给出了可视化技术的背景及其应用领域,并从大众需求分析了该 系统的必要性,结合图形开发包 OpenGL 的成熟度、3DS 格式的理论性研究与客 户/服务器模型的广泛应用得出了系统的可行性,然后通过对国内外研究状况进 行分析得出系统研究的意义。 其次,本文给出了 3DS 格式的简介,对其基本主块、全局子块、编辑子块和 关键帧块进行了详细说明,分析了各个块及其子块的逻辑结构和存储结构;并介 绍了用 C+实现 3DS 解析程序的主要过程。 最后,本文介绍了系统设计的客户/服务器模型(C/S) ,突出其可扩展性、 可维护性、结构易读性以及模块划分的内聚性与封装性。并从系统控制和业务逻 辑这两个角度对系统结构进行分析。 创新点在于: (1) 提供了一个轻量级的三维模型浏览平台, 它实现了一些模型浏览的通用 功能,并预制了很多用于功能扩展的插件接口;这样,它一方面可以为三维模型 的共享与检索提供支持环境,另一方面它也提供了一个可扩展的,能够支持多格 式三维模型插件的环境; (2) 使得可视化技术能够服务于低端领域,从而提高三维图形的普及程度, 甚至让三维图形取代二维图形在人们日常生活中的地位;反过来,这些影响也能 反作用于可视化技术,促进可视化技术的发展。 关键词:可视化;3ds 格式;三维模型;系统设计 湖南大学毕业设计(论文) 第III 页 湖南大学软件学院 Abstract Visualization can present the information to people with graphic form, which makes it very explicit and provide the capacity to let people observe the process of emulation. Whats more, it can allow people to communicate with the information visually. From 1990s to now on, Visualization is becoming a very important issue in our daily life. First, the thesis introduce the background of visualization technology and its application fields; Then we analyze the requirement on visualization system based on the peoples daily needs. And we get the feasibility of the system because OpenGL graphic development tool kits is very mature, the theoretic research of 3DS file format is being run very well, and the client-server mode is being used widely when we design application based on Windows. Secondly, the thesis introduces the 3DS file format briefly and gives a detailed reference to the main block, the global block, the edit block and the main frame block. Then the thesis presents the logical structure and gives storage structure accordingly for most of important blocks. And we introduce how to parse 3DS file format in C+. At last, the thesis states the client-server mode used in system design, and concentrates on its expansibility, maintainability, structural readability and the cohesion and encapsulation for model design. Then it analyses the system structure from the angle of system control flow and system logical business flow. The innovative points of the thesis are as following: (1) It provides a light-weighted platform for 3D model Browning. It implements the common function set for browning multiple-format models, and it also preserves some plug-in interfaces for functions expansibility. Then, on the one hand it can provide environment for sharing and searching 3D models; on the other hand, it can support other 3D file formats through plug-in mechanism. (2) It applies visualization technology to low-end fields, thus can enhances the popularity of 3D shapes, even let 3D shapes instead of 2D graphics in peoples daily life; thus it can also promote development of visualization technology. Key Words: Visualization; 3DS file format;3D model;System design 湖南大学毕业设计(论文) 第IV 页 湖南大学软件学院 目 录 摘 要II AbstractIII 目 录 IV 第一章 引言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 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 页 湖南大学软件学院 第一章 引言 1.1 课题研究的必要性 1.1.1 可视化技术 1987 年 2 月,美国国家科学基金会正式组织召开了“科学计算可视化”专 题讨论会,与会人员包括学术界、企业界和政府代表,年底发布了讨论会的总结 报告,标志着科学计算可视化作为一门新兴学科正式诞生。 视觉信息是人类最主要的信息来源。医学和心理学研究表明,人类日常生活 中接受的信息 80%来自视觉,而 50%的脑神经细胞和视觉相连。科学计算可视化 综合利用计算机图形学、图像处理、计算机视觉、计算机辅助设计等多门学科, 将数据转换为图形或图像并进行交互处理。它的本质是将数据转换为图形或图 像,利用人类视觉功能提供人类理解数据的能力。 进入 20 世纪 90 年代,世界各国投入了大量的人力、物力、财力,有计划有 组织地开展了可视化技术的研究。但是,历来科学可视化技术往往只被应用于高 端领域,例如计算流体力学、有限元分析、生物医学、分子模型构造、地学、空 间科学、天体物理及气象预报等,并促进了这些领域的飞速发展 1。 然而, 在人们的日常生活中, 三维模型的应用越来越广泛, 从工业产品设计、 建筑设计、教育到三维游戏和影视动画角色建模,无不有它的踪影。据估计,目 前有数以兆计的三维模型存在,并且每天都有大量的三维模型产生和传播。统计 发现,在 CAD 领域,2001 年三维模型的造型已达到 66%,到 2005 年末,达到 80%。由此可见,大众对可视化技术的需求初显端倪 2。 1.1.2 3DS 三维模型 3DS 格式文件是 AutoDesk 公司的 3D Studio 软件的文件格式,3D Studio 软 件是现在广为流行的三维图形制作工具,在 3D 游戏和多媒体制作方面,深受用 户的欢迎,尤其随着网络的推广和普及,3DS 文件素材库也越来越充实,充分利 用这些素材,可以减轻我们的制作负担,提高工作的效率和质量。因此,我们决 定选择 3DS 格式文件作为数据的基本来源。 1.1.3 OpenGL 图形开发库 OpenGL 的第一个版本主要是作为 AutoDesk 公司的 3D Max 的 API 而开发 的,所以它与 3D Max 软件有个良好的融合性。 湖南大学毕业设计(论文) 第2 页 湖南大学软件学院 基于以上三点,我们设计了基于 3DS 三维模型可视化系统;它的主要目的 就是满足人们浏览 3DS 三维模型的日常需要。 1.2 课题研究的可行性 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 文件有了更加深入的认识。 1.2.3 客户/服务器模式研究 自从 70 年代末微处理器的性能不断提高,而微机的价格却在不断下降,已 与传统的终端价格相当。此时的主机便由处理各类终端型作业转向为以请求/响 应方式为各联机提供更高层次的服务,这样便形成了客户/服务器模式。 由于其灵活性、可维护性与可扩充性,后来这种模式又被应用于应用程序系统结 构设计 4。 1.3 国内外研究状况 下面列出了几种开源的可视化软件,并给出了简单的介绍: 1. OpenDX:它是一个开源的可视化框架,它允许用户把先进的可视化与分析技 术应用于元数据上。这些技术能帮助用户在众多领域包括计算科学、工程学、医 学以及商业应用中获得对数据的全新认识。它提供了比较全面的功能集,包括数 据的图形化生成、 变换、 处理、 渲染以及模拟数据的动态变化等基本功能; 而且, 还允许用户进行基于点、线、二维平面、三维立体和其他集合元信息以及它们的 湖南大学毕业设计(论文) 第3 页 湖南大学软件学院 组合信息的可视化分析技术。它采用了数据源独立的设计策略,因此它能很容易 适应新的数据源和新的应用场合。另外,它采用了基于面向对象的用户界面设计 方法,能方便用户进行操作。它的最明显特征就是其面向对象的,自描述的数据 模型方式。 这一特点使得该软件只要被链接相应的数据输入处理模块就能处理所 有形式的数据输入,不管这些数据格式是标准的还是用户自定义的 5。 2. Vis5D:它是一个能可视化网格数据和非规则的用户自定义数据的软件系统。 数据源可以是用数字表示的天气状况信息,实体扫描和其他类似的途径。它能描 述最多五维的数据信息,也就是三维坐标再加上时间坐标,最后一维用于描述多 个所关注的物理变量的向量。它的最明显特征就是支持多种数据集合的比较。也 就是说,软件会在运行过程中维持一个文件集合,这个集合包含所有的已打开的 文件;并且文件能够在软件运行过程中动态加入到这个集合中去。所有的文件信 息能够在同时在一个三维场景或者是多个棋盘格窗口中显示 6。 1.4 基本概念描述 1.4.1 显示变换 三维空间中的物体要在二维屏幕上显示,必须通过投影的方式把三维物体转 换成二维的平面图形。投影的方式有平行投影和透视投影两种。往往在图形显示 时只需要显示图形的某一部分,这时可以在投影面上定义一个窗口,只有在窗口 内的图形才显示。在屏幕上也可以定义一个矩形,称为视区。就广告窗口到视区 的变换,窗口内的图形才能变换到视区中显示 7。 1.4.2 光照模型 物体表面所呈现的颜色是由表面向视线方向辐射进入人眼中的光决定的。 当 光照射到物体表面时,光可能被吸收、反射和透射;其中,只有反射和透射光能 窗 口 到 视 区 变 换 几 何 变 换 投 影 变 换 对 窗 口 裁 剪 显 示 湖南大学毕业设计(论文) 第4 页 湖南大学软件学院 够进入人眼产生视觉效果。当物体不透明时,物体的颜色就只有反射光决定。通 常物体表面的反射光包含 3 个分量:对环境光的反射、对特定光源的反射和镜面 反射。 1.4.3 纹理 物体表面的细节可以分为两类:一类是由物体表面的材质属性,也就是颜色 纹理;另一类是物体表面不规则的细小凹凸造成的细节,也就是几何纹理。颜色 纹理的基本思想是首先给出期望的物体表面出现的花纹图案样式, 这可以通过纹 理函数予以刻画。其次在物体表面和花纹图案之间建立一种对应关系(纹理映射 函数)。几何纹理的实现基于如下事实:粗糙表面不同于光滑表面之处在于粗糙 表面的法矢量具有一个比较小的随机分量, 这使得其上的光线反射方向也具有一 定的随机分量。 湖南大学毕业设计(论文) 第5 页 湖南大学软件学院 第二章 3DS 文件解析原理及其实现 2.1 3DS 文件格式说明 2.1.1 简介 3D Studio 是 Autodesk 公司开发的用于制作三维动画的应用程序,它所生成 的图形文件格式是 3DS 文件格式。该软件的功能非常强大,许多精美的电视广 告都是用它制作的,现在应经发展到了 3D Studio Max9。由于 3DS 是一种非常 普遍的数据格式,以 3DS 格式保存的三维图形文件非常丰富。各种三维图形素 材光盘以及丰富的网上图形站点,都有非常丰富的 3DS 模型库。直接利用 3DS Studio 软件制作的 3DS 格式的三维图形文件也非常容易。 因此, 学会读取和操作 3DS 文件对于建立比较实用的三维图形应用软件显得非常重要。 3DS 文件由许多块组成, 每个块首先描述其信息类型, 即该块是如何组成的, 块的信息类型用 ID 来标识,块还包含了下一个块的相对位置信息。因此,即使 不理解一个块的含义,也可以很容易地跳过它,因为在该块中指出了下一个块相 对于该块起始位置的偏移字节数。值得注意的是,块长度是指与该块信息相关的 所有块含有的字节数,而不仅仅指当前块的长度。也就是说,当我们的解析程序 跳高一段时会忽略当前块及其所有子块。与许多文件格式一样,3DS 二进制文件 中俄数据也是按低位在前、高位在后的方式组织的,例如,两个十六进制字节 4A5C 组成的整型数,表明 5C 是高字节,4A 是低字节 8。 2.1.2 基本主块 一级子块只有一个,其块 ID 是 0x4D4D,它包含整个文件,因此这个块的大 小就是文件的大小减去其块头的大小。如果文件中不包含这个块头,系统就认为 所读取的文件不是 3DS 格式。 2.1.3 全局子块 版本信息块(0x0002)是它的一个子块,如表 2-1 所示。 表 2-1 ID 含义 级别 ID 含义 级别 0x0010 FRGB 颜色块 2 0x0011BRGB 颜色块 2 0x0013 FRGB gamma 修 正 2 0x0012BRGB gamma 修正 2 0x0030 I 比率块 2 0x0031F 比率块 2 湖南大学毕业设计(论文) 第6 页 湖南大学软件学院 FRGB 颜色块的存储字节布局如表 2-2 所示。 表 2-2 起始位置 结束位置 大小 数据类型 含义 0 3 4 浮点型 红值域为 0.0-1.0 4 7 4 浮点型 绿值域为 0.0-1.0 8 11 4 浮点型 蓝值域为 0.0-1.0 BRGB 颜色块存储字节布局如表 2-3 所示。 表 2-3 起始位置 结束位置 大小 数据类型 含义 0 1 2 字符型 红 值 域 为 0-255 2 3 2 字符型 绿 值 域 为 0-255 4 5 2 字符型 蓝 值 域 为 0-255 2.1.4 编辑子块 编辑子块的块 ID 是 0x3D3D,它所包含的子块如表 2-4 所示。 表 2-4 ID 含义 级别 ID 含义 级别 0x0100 配 置 的 一 部 分 2 0x2100环境颜色 2 0x1100 背景位图块 2 0x2200雾 2 0x1200 背景色 2 0x2210雾 2 0x1201 是 否 使 用 背 景色 2 0x2300未知 2 0x1300 背 景 色 梯 度 值 2 0x3000未知 2 0x1400 阴 影 映 射 偏 度 2 0x3D3E编辑程序配置主 块 2 0x1420 阴 影 映 射 尺 度 2 0x4000一个物体的定义 2 0x1450 阴 影 映 射 取 样范围 2 0xAFFF材质列表开始 2 0x1460 光 线 跟 踪 偏 度 2 0x1470是否使用光线跟 踪 0x1301 是 否 使 用 背 景颜色梯度 2 0x1500 未知 2 0x1101是否使用背景位 图 湖南大学毕业设计(论文) 第7 页 湖南大学软件学院 线框块的子块如表 2-5 所示。 表 2-5 ID 含义 级别 ID 含义 级别 0x4110 顶点列表块 4 0x4120面列表块 4 0x4130 面 材 质 列 表 块 4 0x4140纹理映射坐标 4 0x4150 平滑组列表 4 0x4160局部坐标系 4 0x4165 物体颜色块 4 顶点列表块(0x4110)的存储字节布局如表 2-6 所示。 表 2-6 起始位置 结束位置 大小 数据类型 含义 0 1 2 无符号整数 顶点数 2 5 4 浮点数 X 分量 6 9 4 浮点数 Y 分量 10 13 4 浮点数 Z 分量 0xA010-0xA040 分别是 Ambient 块、Diffuse 块、Specular 块和 Shininess 块。0x4110 顶点块,0x4120 面块,0x4140 纹理块,0x4160 矩阵块。 3ds 创建的模型全部以三角形的方式存在,所以记录每个面只要记录它的 3 个顶点就可以了。 纹理坐标变换必须基于这个物体上使用的每个材质。对于每个材质,我们能 够取得它的 UV 方向上的 Offset 和 Tiling,以及 W 方向上的 Rotate。3ds 处理 纹理的方法是先绕纹理中心旋转 W 角度, 然后根据 Offset 和 Tiling 选定矩形区 域。完整的公式如下: ftvfouyWfouxWy ftufouyWfouxWx 5 . 0*)5 . 00(*cos)5 . 00(*(sin1 5 . 0*)5 . 00(*sin)5 . 00(*(cos1 += += ou 和 ov 分别表示 UV 方向的 Offset,tu 和 tv 则表示 UV 方向上的 Tiling。加减 0.5 是因为 Offset 采用的比较奇特的表示方法,它并不是将中心点而是左上角 当作原点。 顶点选项块(0x4111)有一些整数组成,第一个整型数表明顶点个数,然后 对每个顶点用一个整型数标识一些位信息,其中,0-7,11-12 位影响物体的可 见性,8-10 位是随机信息,13-15 位表明该顶点是否在某个选择集中被选中。顶 点选项块不是很重要,即使将其删除,3DS 也能正确地将物体装入。 面列表块(0x4120)的存储字节布局如表 2-7 所示。 湖南大学毕业设计(论文) 第8 页 湖南大学软件学院 表 2-7 起始位置 结束位置 大小 数据类型 含义 0 1 2 无符号整数 三角形面数 2 3 2 无符号整数 顶点 A 的序号 4 5 2 无符号整数 顶点 B 的序号 6 7 2 无符号整数 顶点 C 的序号 8 9 2 无符号整数 面信息 顶点的序号是从 0 开始编号;顶点的顺序影响着面的法向量方向。一般情况 下三角形应按逆时针方向定义,但有些 3DS 文件使用顺时针方向,这时就需要在 程序中将其调整过来。面信息是一个整型数,其中前 3 个二进制位给出了三角形 每条边的顺序,可以根据它们判断三角形是以逆时针还是顺时针顺序给出的。这 三个数字要么全是 0,要么全是 1 。当他们是 111,意味着三角形的三个顶点的 正确顺序是 A,C,B,即 A,C,B 给出的是顺时针方向;反之,这三位全是 0, 则意味着 A,B,C 给出的是逆时针方向。 下面给出面信息中每一位的具体含义: Bit0 指名 AC 边顺序:1 代表 C,A;0 代表 A,C Bit1 指名 BC 边顺序:1 代表 B,C;0 代表 C,B Bit2 指名 AB 边顺序:1 代表 A,B;0 代表 B,A Bit3 指名纹理映射(可选项) Bit4-8 保留 Bit9-10 随机数 Bit11-12 保留 Bit13 面在第 3 选择集中被选中 Bit14 面在第 3 选择集中被选中 Bit15 面在第 3 选择集中被选中 面材质块(0x4130)给出了物体中使用的每一种材质,但并不是每个物体都 有材质块,只使用默认材质的物体就没有材质块。每一个面材质块以一个 0 结尾 的材质名称字符串开始,接着跟一个由数字表示的与该材质相关的面的数目,然 后就是各个面的序号列表。0x0000 表示 0x4120 面列表中的第一个面。它的存储 字节布局如表 2-8 所示。 湖南大学毕业设计(论文) 第9 页 湖南大学软件学院 表 2-8 起始位置 结束位置 大小 数据类型 含义 0 不确定 不确定 C 字符串 材质名称 不确定 不确定 不确定 字符型 面数 不确定 不确定 不确定 整型 面序号 纹理映射坐标块(0x4140)中,前 2 个字节表示定义的顶点数,然后为每个 顶点定义 2 个浮点型的纹理映射坐标。也就是说,如果一个顶点的纹理映射在纹 理平面的中心,那么其映射坐标即为(0.5,0.5) 。 面平滑组块(0x4150)其块大小为面的个数*4 字节,即每个基本数据是一 个长整型数,第 n 个数字表示该面是否属于第 n 个平滑组。 局部坐标轴块(0x4160)代表局部坐标系轴信息,开始的 3 个浮点数定义了物体 的局部坐标轴在绝对坐标系内的 X、Y、Z 坐标。最后的 3 个浮点数十物体的局部 中心。 标准映射块(0x4170)中,前两个字节表明映射的类型,其中,0 表明平面 映射或指定映射, 当指定映射时, 与这个块中的信息就无关了, 1 表明圆柱映射, 2 表明球映射。接着用 21 个浮点数来描述这个映射。 如果文件中包含点光源块,那么光源就是点光源而不是全方向光源。点光源 的存储字节布局如表 2-9 所示。 表 2-9 起始位置 结束位置 大小 数据类型 含义 0 3 4 浮点数 目标位置 X 坐 标 4 7 4 浮点数 目标位置 Y 坐 标 8 11 4 浮点数 目标位置 Z 坐 标 12 15 4 浮点数 热点 16 19 4 浮点数 发散 相机块用于记录透视投影中相机所处的位置,以及视线方向;它的存储字节 布局如表 2-10 所示。 湖南大学毕业设计(论文) 第10 页 湖南大学软件学院 表 2-10 起始位置 结束位置 大小 数据类型 含义 0 3 4 浮点数 相机位置 X 坐标 4 7 4 浮点数 相机位置 Y 坐标 8 11 4 浮点数 相机位置 Z 坐标 12 15 4 浮点数 相机目标 X 坐标 16 19 4 浮点数 相机目标 Y 坐标 20 23 4 浮点数 相机目标 Z 坐标 24 27 4 浮点数 相机旋转角度 28 31 4 浮点数 相机镜头 编辑程序配置块(0x3D3E)的子块如表 2-11 所示。 表 2-11 ID 含义 级别 ID 含义 级别 0x7001 视口指示器 3 0x7012视口定义 (类型 1) 3 0x7011 视口定义(类型 2) 3 0x7020视口定义 (类型 3) 3 0x3D3E 块中包含了许多冗余数据,其中较为重要的块是 0x7020,这个块定 义了编辑程序块中 4 个活动的视口。假设在编辑程序布局中使用了 4 个视口,编 辑程序配置中包含 5 个 0x7020 视口定义块和 5 个 0x7011 视口定义块。 但事实上 只有开始的四个 0x7020 块对用户的视口外观有影响,其他的视口中只包含了一 些附加信息。该块的第 6、7 字节表明视图的类型,合法的 ID 及其对应的视口定 义如下所示: 0x0001 顶视图 0x0002 底视图 0x0003 左视图 0x0004 右视图 0x0005 前视图 0x0006 后视图 0x0007 用户视图 0xFFFF 相机视图 0x0008 光源视图 0x0010 无效 材质列表块(0xAFFF)子块列表如表 2-12 所示。 表 2-12 ID 含义 级别 ID 含义 级别 0xA000 材质名称 3 0xA040 材质明亮系数 3 0xA010 材质环境光分量 3 0xA041 强度块 3 0xA020 材质漫射光分量 3 0xA200 -0xA34C Map 3 0xA030 材质镜面光分量 3 2.1.5 关键帧块 关键帧对于读取静态模型一点用处也没有,但是如果做的东西包含动画的 湖南大学毕业设计(论文) 第11 页 湖南大学软件学院 话,它就显得很重要了。它的目的就是描述物体、光源和相机在场景中的移动; 其一级子块如表 2-13 所示。 表 2-13 ID 含义 级别 ID 含义 级别 0xB00A 未知 3 0xB009未知 3 0xB008 帧信息块 3 0xB002物体信息开始块 3 名称与层次结构描述表(0xB010)的存储字节布局如表 2-14 所示。 表 2-14 起始位置 结束位置 大小 数据类型 含义 0 未确定 2 字符串 物体名称 未确定 未确定 2 无符号整型 未知 未确定 未确定 2 无符号整型 未知 未确定 未确定 2 无符号整型 物体的层次结 构 物体的层次结构并不复杂, 场景中给予每个物体一个数字以标识其在场景树 中的顺序。相应地,3DS 文件中也用相同的方法表示了物体在场景树中的位置。 作为根物体给予数字-1(0xFFFF)作为其数字标识。当读取文件的时候,就会得 到一系列的物体数字标识。如果当前数字标识比前一个大,那么当前物体是前一 个物体的子物体; 反之, 当数字标识比前一个数字标识小, 则又回到上一层结构。 2.2 3DS 解析实现 3DS 解析程序实现的基本思路是: 1. 根据 3DS 文件格式的结构性特征,将模型二进制信息转存至中间设立的 3DS 模型对象中; 2. 将中间对象的信息输出到软件的内部数据块中。 图 2-1 数据结构关系图 数据模型具体说明如下: H3dsFace:存储三角面的三个顶点索引值,还有一个表示顶点排列顺序是否 湖南大学毕业设计(论文) 第12 页 湖南大学软件学院 反向的标识位; H3dsVert:存储顶点的三维坐标; H3dsMap:存储二维纹理映射坐标; H3dsMatList:存储共同拥有某种材质的面列表; H3dsRGBColor:存储颜色的红、绿和蓝分量; H3dsTexture:存储纹理名称; H3dsMat:存储材质的相关属性,包括材质名称、材质类型、是否双面、以 及材质的环境光、镜面反射光和透射光分量; H3dsMeshObj:存储模型的名称,它所包含的顶点、面以及映射坐标列表、 材质列表等属性。 程序的执行流程图如图 2-1 所示 9 图 2-2 程序调用关系图 ReadMainBlocks ReadShadingChunk ReadMatChunk ReadObjBlocks ReadMaterialBlocks ReadObjMeshBlcoks ProcessFile ReadTraMatrix readTriMeshBlocks ReadTextureChunk ReadRGBFloat ReadFaceMaterial ReadMapList ReadFaceList ReadVertList ReadTextureNameChunk ReadRGBByte 湖南大学毕业设计(论文) 第13 页 湖南大学软件学院 第三章 用户交互功能的原理与实现 3.1 几何变换基本原理 用户交互主要是指用户能够从任意角度浏览三维模型, 也就是指用户能够对 模型进行基本的旋转、平移和缩放操作。这三种操作都输入几何变换的范畴;几 何变换提供了构造和修改图形的一种方法,图形在位置、方向、尺寸和形状方面 的改变主要是通过几何变换来实现。 几何变换的基本方法是把变换矩阵作为一个算子, 作用到图形一系列顶点的 位置矢量,从而得到这些顶点在几何变换后的新的顶点序列,连接新的顶点系列 就得到变换后的图形。在以下的讲述中,均假设用),(zyxP表示三维空间中的原 始点,改点经过变换后的新点用) , , ( zyxP表示 10。 3.1.1 平移变换 平移变换是指将 P 点沿直线路径从一个坐标位置移动到另一个坐标位置的 过程。如果点) , , (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 焖渣坑施工方案
- 钢板止水带施工方案
- 【《汽车前悬架的主要参数确定计算案例》1900字】
- 大连钢质防火门施工方案
- 消防安全设施设计审查服务合同范本
- 事业单位合同制工作人员招聘与聘用管理方案
- 企业工资集体协商执行与监督合同范本
- 亲子美术培训机构课程及师资力量转让合同
- 刚性层浇筑合同3篇
- 社区儿童故事会组织服务费合同
- 颅内占位疑难病例讨论
- 视网膜出血的治疗及护理
- 心理学基础(第2版) 课件 第1章 概述
- 2025至2030银行人工智能行业市场发展前景及发展趋势与投资机会报告
- 职业少儿创意美术课件
- 职业人群心理健康知识讲座:减压赋能与心理调适
- 工模具点检管理制度
- 非营利组织纳税管理制度
- 2025年新疆维吾尔自治区中考物理真题含答案
- 数字健康行为干预-第1篇-洞察及研究
- 2025至2030年中国核辐射探测器行业市场行情监测及前景战略研判报告
评论
0/150
提交评论