基于OpenGL的三维仿真技术研究独家优秀】

上传人:QQ加14****9609 文档编号:116994 上传时间:2017-08-02 格式:DOC 页数:47 大小:1.74MB
返回 下载 相关 举报
基于OpenGL的三维仿真技术研究独家优秀】_第1页
第1页 / 共47页
基于OpenGL的三维仿真技术研究独家优秀】_第2页
第2页 / 共47页
基于OpenGL的三维仿真技术研究独家优秀】_第3页
第3页 / 共47页
点击查看更多>>
资源描述
目录 第一章 绪论 . 1 究背景和意义 . 1 内外 3D 仿真技术应用 . 1 外研究现状 . 1 内研究现状 . 2 D 仿真技术的应用发展 . 2 术简介 . 2 展历程 . 3 术特点 . 4 要研究内容 . 4 第二章 三维仿真基础理论 . 6 维图形学基础 . 6 . 6 量 . 6 阵 . 7 础原理 . 7 据类型 . 7 作方式 . 7 状态机 . 8 染管线 . 9 标变换 . 9 标系统 . 10 点变换 . 10 型变换 . 11 影变换 . 11 口变换 . 13 第三章 程原理 . 14 染环境搭建 . 14 制的图形输出为位图 . 15 本图元绘制 . 16 照和材质 . 17 照 . 17 质 . 18 场景中添加光线的步骤 . 18 示列表 . 20 配显示列表编号 . 20 建显示列表 . 21 用显示列表 . 21 毁显示列表 . 22 理贴图 . 23 建纹理图像 . 23 理缠绕 . 25 理对象 . 26 贴图纹理 . 27 游 . 27 第四章 充电车仿真系统程序 . 30 统简介 . 30 序模块和流程图 . 31 体流程图 . 31 示模块 . 32 据接口模块 . 32 撞检测模块 . 33 迹显示模块 . 34 度调控模块 . 34 序运行结果 . 35 结 . 37 第五章 总结和展望 . 38 结 . 38 望 . 38 参考文献 . 40 致谢 . 42 附录 . 43 I 摘 要 近几年,电影院真实的 3D 场景,游戏中炫酷的特效,海外旅行,战斗机虚拟演习,设计模拟展示等等都是三维仿真的魔力展现。三维仿真一直都是一个有趣的领域。它被广泛的应用到计算机可视化、军事仿真、虚拟漫游、以及商务虚拟展示等领域。 本文研究了基于 3D 仿真技术,包括 程序框架构建,基本坐标系统、三维图形的原理、三维矩阵的变换、渲染交互理论以及三维模型的导入等,构建了一个充电 车两车对接充电的过程,真实的模拟了两车在真实环境下对接的各种可能情况,详细计算了充电和碰撞距离,以及充电过程,大大减少了充电车检测的成本和时间。该系统不仅可以实时接收真实的汽车的速度和角度数据,用以充电车进行跟踪循迹至待冲车辆,还利用轨迹球技术实现角度调控模块,可以任意模拟充电对接的角度用以测量预估充电的安全性和稳定性,确立最佳的充电位置。该系统将辅助科技设计开发者更便捷、安全的完成产品的设计和检测,大大推进了三维仿真技术在工业和环保事业中等的应用。 关键词: 3D 仿真 程 漫游 n D in in so is an It is to on D of to in to in is to of he of to of in 3D 第 1 页 第一章 绪论 本章共 3 小节,分别讲述了本系统的研究背景和意义,简单介绍了国内外三维仿真技术的现状和发展趋势,描述了系统采用的 维仿真技术的基本概况和发展历程。 究背景和意义 3D 虚拟仿真是利用 3D 技术和网络技术来真实体现现实场景,它具有真实性、可操作性和简单重复性等特征,能够模拟现实世界,帮助用户构造虚拟世界操作从而减少实际的实验成本和危险。 随着三维仿真技术的发展成熟,越来越多的工业设计等开始使用三维仿真技术进行前期的设计实验,大大减少了实际开发的成本和实际,同时提高了设计的可靠 性。石油能源的紧缺,环境污染的严重使汽车能源向电能以及新能源的转型,当今电池车的技术日渐成熟,比如硅谷诞生的“特斯拉”电池车性能良好,深受大众喜爱,但是充电却成为了其推广的最大阻碍。修建充电桩的成本很高,为了达到使用方便,必须短距离就建立一个充电桩。但是如果把充电桩变成移动式的充电车就将大大减少成本,使环保的电池车成为马路“环保达人”! 内外 3D 仿真技术应用 外研究现状 近几年深入研究 3D 仿真技术的国外公司已经趋近成熟,并且将 3D 仿真技术应用在各个领域。 虚拟洛杉矶( 是美国加利福尼亚大学洛杉矶分校( 于 1994 年的一个科研与运用相结合的项目,计划覆盖面积超过 10,000平方英里,是当今城市仿真系统中最成功最为复杂的系统 【 3】 。视景包括从洛杉矶盆地的卫星影像到街道景观,精确到植物、建筑物的窗口、外墙的纹理等。 费城城市模型 ( 是由美国 司利用 件和其自我开发出来的软件工具,在 1996 年初的开始 第 2 页 制作,至今已经完成费城的中心区共 35 个街区。费城此项目的主要特点就是将完整的费城的模型用 据格式,通过使用 任何人都可以享受到虚拟的实时费城旅游体验。城市的设计人员以及建筑师们通过 览器可以对城市的三维景观直观的漫游,也可对真实的城市景观去进行分析,获得精准的土地以及建筑结构这方面的相关的资料信息,大大地解决了建筑师在委托设计此项目时候缺乏详细资料的问题。费城的模型同时也提供了精确的三维地下的管线系统,方便了城市的地下管网系统的维护以及更新,所以获得了美国建筑师学会的 (度评价。 一家专门从事三维实时系统开发的美国公司,在视景仿真领域一直处于领先地位。其无与伦比的强大三维实体建模工具和三维地景生成工具,被公认为是当今最近优秀的建模软件。其可以满足航海,红外线,雷达,电路网络,交通管理等多种模拟需求 【 5】 。 内研究现状 国内的 3有比较先进的 3002 年,中视典与中科院遥感所合作,成功开发出国内第一个数字地球原型系统,该系统为数字地球的研究工作提供了一个可操作的虚拟平台,已经在能源、灾害、数字城市、数字战场等各个方面的研究提供服务,并在 02 年和 07 年国家级重点项目数字奥运仿真中发挥了重要的作用,是相关部门指定的 08 奥运虚拟现实技术服务商 【 7】 。 2010 年上海世博会中国馆的动态清明上河图惊艳四方,他采用的 3D 仿真技术完美展现了古代的繁华生活,惟妙惟肖,如图所示。 D 仿真技术的应用发展 随着 3D 仿真技术的日益成熟,他将越来越被应用到生活当中,渗透到各个方面。未来的 3D 仿真技术将会大量应用于演示虚拟仿真,安全培训虚拟仿真,矿山地形演示虚拟仿真,美术馆虚拟仿真,数字展馆虚拟仿真 事故演练。 术简介 一个底层图形库规范。它为程序员提供了一个小的几何图元库和一 第 3 页 个支持 2D/3D 几何对象绘图命令库,通过图元和命令来控制对象的呈现(绘图)。术适用于从普通 大型图形工作站等各类计算机,而且还可以与各种操作系统兼容,从而成为主导地位的跨平台的专业 3D 图形应用开发包,进而也成为行业标准。 语言 关系 紧密。 使程序员很容易 熟练 高的可移植性。 目标就是作为一种独立于硬件的接口 、 流线型的,在当今 的 主流操作系统 中( T/2000/ 都有其相应的实现。 但是 述 3 函数 (这类函数可 以 允许你指定相对来说 较为复杂 些 的形状、例如 飞机、 身体的某个部位、汽车、分 子 或分 机 等 )。在 须 依 据少数 的 几个基本图元 (例如点、 曲 线、 四 边形 )来创建你所 想 要的模型。 为适应 统下 的 序独立编程接口需求而设计出来的,该接口被设计的简单又实用。从 移除 统操作是一个很英明的决定,这意味着 图形系统能够被用于更加广泛的操作系统中 (包括功能很强大但是昂贵的图形工作站和需大量图形运算地视频游戏、个人电脑和互动电视机的机顶盒 )。 单化了 行渲染的程序的实现。 展历程 1992 年 7 月, 司首次发布了 本,后又与微软公司合作开发了 T 版本的 而使部 分原来必须在高级图形工作站上面运行的大型的 3D 图形处理软件也能在微机上运用。 1995 年 本,此版本较 能提高很多,同时加入了一些新功能。包括 提高顶点位置、色彩指数、法线、颜色、纹理坐标、引入了新的纹理特性、多边形边缘标识的传输速度,等等。 2003 年的 7 月份, 同公布了 括了式 扩展规格的绘制语言即“ 乘方纹理、隐蔽 查询、顶点 能等。 2004 年 8月, 本发布。 持了新的 展特性、 第 4 页 及其他多项新增特性。 2008 年 作组在 008 大会上宣布了 形接口规范, 言以及其他新增功能再次为未来开放 3D 接口的发展指明方向。 2011 年 8 月 9 日,于温哥华举行的 011 大会上, 布了最新的 准,对于支持的现有硬件的 入了一些新的支持特性。同样, 要应用在 别硬件(如 D 5000/6000,00/500 系列显卡),不过 开发者社区曾经表示,部分特性可以通过扩展功能在最老支持 别的硬件上实现。 术特点 为当前三维行业的标准,是从事三维工作开发人员必须掌握的开发工具,它的具有以下特点: 图形质量好、性 能高 当前行业标准 稳定性高 可移植性强 充分的可扩展性 适应性强 易用性高 要研究内容 本文主要研究了基于 三维仿真技术的研究背景和国内外研究现状, 系统采用嵌入 染环境的窗口进行三维图像的绘制,先进行主窗口渲染,在视图模型下绘制出初始状态的地形和小车。然后对小车轨迹进行读取计算,碰撞检测,轨迹的显示,还可以通过鼠标进行角度调控等。 主要工作包括: 第一章 介绍了三维仿真技术的背景和国内外研究现状。 第二章 本章主要介绍了三维仿真的基础三维图形学,对点,向量,矩阵,还有 第 5 页 工 作方式、坐标系统以及变换透视等重要三维图像的基础知识。 第三章 本章共包含了七小节,系统的讲述了利用 术实现三维仿真的实际编程基础。 第四章 本章主要针对充电车三维仿真系统做了详细的介绍,对其系统的功能和模块的实现进行了讲解,包括主窗口模块,数据接口模块,碰撞检测模块等 。 第五章 总结了本课题的研究成果,同时对没有研究成功的方法也做了系统的总结,并在接下来的时间里继续努力的去完善它。 第 6 页 第二章 三维仿真基础理论 本章包含了三小节,主要介绍了三维仿真的基础三维图形学,对点,向量,矩阵,还有 工作方式、坐标系统以及变换透视等重要三维图像的基础知识。 维图形学基础 点是图形中最基本的几何对象。 3D 场景中用三维坐标 x,y,z 表示一个点,例如点A(2, 3)。并且三维空间两点间的距离 D 也和二维空间相似,两点 A( B(距离为: 222 )12()12()12( 公式 2 向量 向量是一个具既有数量又有方向的量。向量的方向用来描述其在空间的指向 【 1】 。单位向量就是大小为 1 的向量,向量归一化即为 : |o r m公式 2量的运算在三维世界坐标变换的基础,向量的运算包括点乘运算和叉乘运算。向量点乘的结果表示了两个向量的方向相似程度,向量的点乘运算公式: c o s| 公式 2量 叉乘运算的到的是两个向量的垂直向量,其结果应用于 3D 图形很多领域,比如光照,物理计算和碰撞检测等等。向量叉乘运算公式: ),( A y B xA x B yA x B zA z B xA z B yA y B 公式 2第 7 页 阵 矩阵是三维图像的重要基础,在线性代数里面,矩阵是以行和列的形式组成的数字块。通常用 m*n 来定义矩阵的尺寸,它表示此矩阵为 m 行 n 列。一个矩阵通常用第 i 行第 j 列表示。例如 3*3 矩阵 B 表示如下: 222120121110020100 公式 2三维世界里面,最重要的就是矩阵的乘法计算,矩阵的乘法有三种情况: 1、 标量和矩阵相乘; 2、 向量和矩阵相乘; 3、 矩阵和矩阵相乘,且 ; 础原理 据类型 义了自己的数据类型,主要有 同的 现在选择哪些 C 语言的数据类型来表示 数据类型方面存在某些差异。使用 己定义的数据类型,就可以在 码跨平台移植时避免不匹配类型的问题。 作方式 令模式是典型的 C/S(户 /服务器 )模型,通常是把用户程序 (客户 )发出的命令提交给内核程序 (比如服务器 ),内核程序再对各种指令进行编译,并初步处理,再交给操作系统而转交给硬件。上述的过程可在同一台计算机上完成,也能在网络环境中,由不同的计算机一 体合作完成, 过上述的合作实现了网络透明。 第 8 页 应用程序框架作流程 封装在库或共享程序集中,应用程序 在 发出 行 处理。 再 传 给 服务内核 去 处理后 将 进一步交 给 操作系统,操作系统 依 据具体的硬件,例如 用 不同的显示卡 来 具体处理。 例如 调用调用公共驱动程序 或者 厂家的服务驱动程序, 然后再 传给视频显示驱动, 由 驱动程序 的 驱动显卡向显示屏幕 进一步 提供显示。 此 处理过 程 完全 在计算机 的 后台完成,基本 上 不需程序员 的参与。程序员只要 在 应用程序开发 的 部分, 而 管理硬件的工作 都 交 给 计算机完成。 状态机 一种状态机模式,它保持自身的状态,除非用户输入一条命令让它改变状态。 首先,从本质上讲,我们现在的电脑就是典型的状态机。可以对照理解:电脑的存储器,可以记住电脑自己当前的状态(当前安装在电脑中的软件、保存在电脑中的数据,其实都是二进制的值,都属于当前的状态)。 电脑的输入设备接收输入,最后可以得出输出。当它进入到某个特殊的状态时,它就不再接收任何输入,继而 停止工作。 其次让我们先对照理解一下: 以记录自己的状态(比如:当前所使用的颜色)。 以接收输入,依据输入的内容以及自己的状态,来判断自己的状态是否修改,并且可以得到输出(比如我们调用 收到这个输入后会修改自己的“当前颜色”状态;我们调用 输 第 9 页 出一个矩形)。 够进入到停止状态,不再继续接收输入。这个或许在我们的程序当中表现得不是太明显,不过在当下程序退出前, 定先停止当下的工作的。 举例 来说比如我们可以使用 数来选择一种颜色,以后绘制的所有物体都是这种颜色,除非再次使用 数重新设定。可以使用 数来设置一个纹理坐标,以后绘制的所有物体都是采用这种纹理坐标,除非再次使用数重新设置。可以使用 数来指定混合功能的源因子和目标因子,以后绘制的所有物体都是采用这个源因子和目标因子,除非再次使用数重新指定。可以使用 数来指定光源的位置、颜色,以后绘制的所有物体都是采 用这个光源的位置、颜色,除非再次使用 数重新指定。 染管线 有超强的图形绘制能力,包括绘制物体、启动光照、管理位图、纹理映射、动画、图像增强以及交互技术等功能。作为图形硬件的软件接口, 要是将三维的物体投影到一个二维平面上,之后处理得到像素,进行显示。 描述图像的像素 (在执行一系列操作后,最终将这些数据转化成像素数据。也就是说, 基于点 的。在 ,无论何种情况,指令总是被顺序处理。由一组顶点定义的图元(行完绘制操作后,后继图元才能起作用。绝大部分 现都有相似的操作顺序,即称为 染管线的一系列相关的处理阶段。 标变换 过对相机模拟可以实现计算机图形学中最基本的三维变换,即投影变换、几何变换、视口变换、裁剪变换等。同时, 实现了矩阵堆栈等。理解掌握了有关坐标变换的内容,就算真正走进了精彩地三维世界。 第 10 页 标系统 在真实的世界中,所 有的物体都具有三维特征,但是计算机仅仅能处理的是数字,可以显示出来二维图形,而将二维数据及三维物体紧密联系在起来的唯一的纽带就是 坐标。 为了数字化将要显示的三维物体,就要在这个三维物体处在的空间里面定义一个合适的坐标系。这个坐标系的单位长度和坐标轴的指向都要适合对此三维物体的描述,这个坐标系被称作世界坐标系。重要的一点就是世界坐标系,它是永远不变的 【 10】 。 定义了局部坐标系,局部坐标系就是坐标系用物体的中心作为坐标原点的,其物体的旋转或者平移等操作全是围绕着局部坐标系进行的。此时 ,若物体模型在进行旋转或者平移操作时,局部坐标系随之也执行相对应的旋转或者平移操作。需要注意的地方是,如果对物体模型进行缩放操作,则局部坐标系也要进行相应的缩放,假若缩放比例在各坐标轴对应不同,那么经过一系列旋转等操作后,局部坐标轴可能不一定相互垂直。不管是在世界坐标系中进行变换,还是说在局部坐标系中进行变换,程序的代码都是相同的,只不过不同的坐标系所考虑的变换方式不相同罢了。 计算机对数字化的三维物体做了适当的加工处理后,要使其在图形显示器上面显示,就需要先在图形显示器的屏幕上定义出一个二维的直角坐标系, 这个坐标系被称作屏幕坐标系。这个坐标系的坐标轴方向通常选取为平行于此屏幕的边界,坐标原点一般取左下角,长度单位通常取为一个象素。 点变换 视点变换明确了场景里面物体的视点方向和位置,就向上述提到的,它可以看作是在场景当中放置的一台照相机。让相机镜头面向要拍摄的物体,相机(即视点)定位在坐标系的原点(相机初始方向都指向 Z 负轴),它和物体模型缺省的位置是对应的,明显的,如若视点变换不进行,物体和相机是重叠的。 执行视点变换和执行模型变换的命令是一样的,思考一下,我们在用相机拍照时,我们通常保 持被拍的物体位置不变,而将相机远离物体,这就类似于三维世界的视点变换。此外,我们也可让相机的位置保持不变,而将物体远离相机,这就类似于模型转换。结果就是,在 世界,以逆时针去旋转物体就类似于以顺时针去旋转 第 11 页 相机。所以,我们必须把模型变换同视点变换结合在一块来考虑,也就是说对这两种变换单独去进行考虑是没有意义的。除了使用模型变换命令来执行视点变换以外,用库还提供了 函数,该函数共三个变量,分别表示了视点的位置、相机的瞄准方向参考点以及相机的朝上方向。该函数的原型为: 该函数定义了视点矩阵,要用该视点矩阵乘以当前的矩阵。 义了当前视点的位置; 及 量指明了参考点位置,该点通常作为相机所要瞄准场景的中心轴上的点; 量指明了朝上向量方向。一般,视点变换操作在模型变换操作之前使用,以便模型变换先对三维物体产生作用。场景中三维物体的顶点通过模型变换以后移动到所想要的位置,然后再对整个场景进行视点的定位等等操作。视点变换和模型变换共同构建成了模型视景矩阵。 型变换 模型变换是在世界坐标系中进行的。当其缺省时,物体模型的中心默认定位在世界坐标系的原点。 这个坐标系中,共有三个命令,可以用来进行模型变换。 1、模型平移 f d ( x, y, z);该函数沿着 x 轴、z 轴按照指定的 x,y,z 值平移物体(或者按照相同的值来移动物体的局部坐标系)。 2、 模型旋转 x, y, z)。该函数的第一个变量是制定模型旋转角度的 位是度,其后三个变量用来表示以原点 A( 0,0,0)到点 B(x,y,z)的连线为轴线来逆时针旋转物体。 比如, 结果是绕 z 轴旋转 45 度。 3、模型缩放 x, y, z );此函数可以沿着 x,y,数有三个参数,分别对应 x、 y、 z 轴坐标方向的变换比例因子。缺省时默认为 示物体没变化。在程序中,若物体 Y 余值都为 表明将立方体变成了长方体。 影变换 经过模型视景变换之后,场景中的三维物体被放在了所想要的位置上,但是显示 第 12 页 器仅能用二维图象来体现三维物体,因此就得靠投影进一步降低维数(投影变换相当于相机选择镜头)。实际上,投影变换的根本目的就是构建一个适 合的视景体,裁剪掉视景体外多余的部分,最终视景体内的有关部分才能进入图像。投影包括两种:正视投影( 透视投影( 透视投影是符合人们的心理习惯的,即是离视点近的物体比较大,而离视点远的物体比较小,远到极点就会消失,成为一个灭点。它的视景体可以被看作是一个底部和顶部都被切割了的棱椎,也就是所谓的棱台。这个投影一般被用于视觉仿真、动画影视以及其它的许多需要真实性展现的方面。 视投影的函数共两个,其中函数 的原型为: 它创建了一个具有透视的视景体。其实现的是构建出一个透视投影矩阵,然后用此透视矩阵去乘以当前的矩阵。该函数参数仅仅定义了近裁剪面的右上角点( - 左下角点( - 三维立体空间坐标;最后一个参数 远裁剪平面的 Z 负值,其左下角点和右上角点空间坐标由函数根据透视投影原理自动生成。 示离视点的远近,它们的值总是正值。另一个透视函数是: 它创建了一个的透视视景体,但是它和前面的的参数不同,参数 义视野在 面的角度,范围是 参数 投影平面宽度与高度的比率;参数 别是远近裁剪面沿 Z 负轴到视点的距离,它们总为正值。以上两个函数缺省时,视点都在原点,视线沿 Z 轴指向负方向。 正射投影,即是平行投影。正射投影的视景体是类似于一个矩形的平行管道,也即是一个立方体。正投影的一个最大特点是不管论物体离相机有多远,投影出来的三维物体的大小尺寸是不变。正射投影也有两个函数,一个函数是: 它创建一个平行视景体。实际上这个函数的操作是创建一个正射投影矩阵,并且用这个矩阵乘以当前矩阵。其中近裁剪平面是一个矩形,矩形左下角点三维空间坐标是( 右上角点是( 第 13 页 远裁剪平面也是一个矩形,右上角点是( - 左下角点空间坐标是( - 所有的 同时为正或者同时为负。 另一个函数是: 它是特殊的一个正射投影,此函数主要用于将二维图像投影到二维屏幕上。它的 省值分别为 有的二维物体 Z 坐标都是 以它的裁剪面就是一个右上角点为( 左下角点为( 矩形。 口变换 视口变换实际上就是在二维的视口平面上显示视景体内投影的三维物体。运用相机模拟的方式,我们很好理解视口变换相当于就是把照片进行放大与缩小。计算机图形学里面,视口变换的定义 将经过几 何变换、裁剪变换和投影变换后的物体显示在屏幕窗口指定的区域里面,这个区域一般为矩形,被称作视口。 相关函数是: x,y,此函数定义了一个视口。函数参数 (x, y)是视口在屏幕窗口坐标系中的左下角点坐标,参数 省时,参数值
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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