vc++ OpenGL三维图像的生成与显示技术研究毕业设计说明书.doc
《vc++ OpenGL三维图像的生成与显示技术研究毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《vc++ OpenGL三维图像的生成与显示技术研究毕业设计说明书.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流vc+ OpenGL三维图像的生成与显示技术研究毕业设计说明书.精品文档.毕业设计(论文)课题名称三维图像的生成与显示技术研究摘要最早人们见到的图像都是平面图像,也就是通常所说的二维图像,但自21世纪以来二维图像早已不能满足人们的视觉要求,之后3D化像风暴一样席卷而来。3D图形系统能够较形象的模拟和表示客观物体,易于通过模拟光线照射物体表现物体的质感。OpenGL是优秀的开放的2D3D图形标准,由OpenGL体系结构委员会(ARB)所掌管。OpenGL图形系统是图形硬件的一个软件接口,它强大的渲染管线能够绘制出逼真的虚拟场景,使图像看起来更加
2、真实,就像每一个人平时所看到的一样或至少接近人眼所看到的内容。本文研究了基于OpenGL的三维视景应用程序的初始化、世界坐标系和模型局部坐标系之间的关系和平移旋转并缩放的矩阵表示以及如何将景中的模型分解为OpenGL可以接受的图元信息,建立了一个卫星与深空场景的动态仿真系统, 该系统根据各个天体运行规律, 详细计算了卫星及各星体的运行轨迹, 真实地模拟了深空场景的动态变化,能够实时地模拟不同视角、不同时间的卫星及深空动态场景。关键词: 3D图形 OpenGL模型视图变换 类封装 卫星AbstractThe earliest images we see are plane images, 2D
3、image is usually said, but since twenty-first Century the two-dimensional image already cannot satisfy peoples visual requirements, after 3D swept like a storm.The 3D graphics system simulates and reflects objects in the real world vividlyOpenGL is a 2D3D graphics standard in charge of Architecture
4、Review Board(ARB) and is a software interface to hardwareIts powerful pipeline is competent for rendering graphics scene, makes the image look more real, just like every person usually see the same or at least close to the human eye can see content.This paper study the 3D OpenGL application initiali
5、zation, the world coordinate system and the model of local coordinate system and the relationship between translation and rotation and scaling matrix representation and how will the king in the model is decomposed into primitive information based on OpenGL can accept, established a dynamic simulatio
6、n system of a satellite and deep space scene, the system according to each object operation rules, detailed trajectory of satellite and the stars were calculated, realistic simulation of the dynamic changes of deep space scene, real-time simulation of different perspectives, different time of the sa
7、tellite and deep space dynamic scene.Key words: 3D graphics OpenGL model-view transformation wrapping with class Satellite目录第一章 绪论11.1 研究背景和意义11.2 OpenGL简介11.2.1 OpenGL工作方式11.2.2 OpenGL渲染管线21.2.3 OpenGL数据类型31.3 本文框架结构3第二章 三维图形学的国内外研究现状及发展42.1国内外研究现状42.2 三维图形学发展42.2.1三维图形学硬件的发展42.2.2三维图形学软件的发展52.2.3三
8、维图形学算法的研究范畴52.3 计算机三维图形学的应用5第三章 OPENGL实现三维图像显示的基本理论63.1 场景坐标系63.1.1坐标系及观察流程63.1.2 OpenGL坐标系方向73.1.3模型视图变换73.1.4提高绘图效率和场景的层次性83.2 投影83.2.1透视投影83.2.2正投影103.2.3投影变换示例103.3 窗口与视口113.3.1视口变换113.3.2变换深度坐标123.4 几何图元的绘制123.4.1点133.4.2直线133.4.3多边形133.4.4矩形143.4.5曲线和表面14第四章 三维图像显示的实现及分析154.1 概要设计154.2 Windows
9、操作系统下OpenGL应用程序初始化164.2.1应用程序依赖库164.2.2像素格式174.2.3渲染描述表174.3 建模技术概述184.3.1基于几何造型的建模技术184.3.2基于图像的建模技术184.3.3卫星建模示例194.4色彩的渲染204.4.1颜色204.4.2纹理贴图224.4.3位图读取244.5用户交互与动画254.5.1用户交互254.5.2动画254.6 相关算法及原理描述274.7卫星与深空动态场景合成274.7.1场景合成方法274.7.2加速绘制方法284.8 结果分析29第五章 总结与展望315.1总结315.2展望31致谢36参考文献37附录39第一章 绪
10、论最早人们见到的图像都是平面图像,也就是通常所说的二维图像,但自21世纪以来二维图像早已不能满足人们的视觉要求,之后3D化像风暴一样席卷而来,人们对三维图像的研究也越来越深入。1.1 研究背景和意义近几年,利用计算机虚拟现实技术生成动态场景的仿真图像已被广泛地应用于遥感、虚拟战场仿真、目标识别与跟踪、通信等领域。而卫星与深空动态场景的仿真是实现卫星与地球通信的三维通信的关键技术之一。同时,航天事业作为一种高投入、高风险的科技密集型行业,可视化仿真系统的研制是降低其成本和风险、提高成功率的有效途径之一。1.2 OpenGL简介 OpenGL是图形硬件的一种软件接口。OpenGL 全称 Open
11、Graphics Library,是一个优秀的专业化的3D的API(Application Programming Interface)。作为与DirectX 类似的语言,OpenGL最早是以 SGI 为图形工作站开发的图形开发接口IRIXGL,它可以独立于操作系统于硬件环境。程序员只需进行布景、建模、光照与渲染然后调用相应的OpenGL API指令,无须与图形硬件直接打交道。OpenGL负责与操作系统和底层硬件交互。OpenGL与C语言紧密结合。OpenGL的语法遵从C语法,由于C语言应用的广泛,使得程序员很容易掌握OpenGL指令集。OpenGL具有很高的可移植性。OpenGL的设计目标就
12、是作为一种流线型的、独立于硬件的接口,在当今大部分主流操作系统Unix/Linux、Windows98/NT/2000/XP/Vista和Mac OS等都有其相应的实现。然而为了达到这个目标,OpenGL并未包含用于执行窗口任务或者获取用户输入之类的函数。反之,必须通过窗口系统控制所使用的特定硬件。类似地,OpenGL并没有提供用于描述三维物体模型的高层函数(这类函数可能允许你指定相对较为复杂的形状、例如汽车、身体的某个部位、分机或分子等)。在OpenGL中,必须根据少数几个基本图元(Geometric Primitive)(例如点、直线、多边形)来创建你所需要的模型。OpenGL可进行高性能
13、的图形渲染。OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。1.2.1 OpenGL工作方式OpenGL指令模式是C/S(C1ient/Server,客户/服务器)模型,通常用户程序(客户)发出命令提交给内核程序(服务器),内核程序再对各种指令进行解释,并初步处理,之后交给操作系统服务而转交给硬件。上述过程可以在同一台计算机上完成,也可以在网络环境中,由不同的计算机合作完成,OpenGL通过上述合作实现网络透明。应用程序OpenGL内核服务显示器显示卡显卡驱动操作系统服务包含OpenGL指令OpenGL指
14、令集(Windows上以DLL形式存在)图1.1 OpenGL工作流程OpenGL指令集封装在库或共享程序集中,应用程序发出OpenGL命令后,OpenGL调用被这些库处理。然后传递服务内核处理后进一步交由操作系统,操作系统根据具体的硬件,例如不同的显示卡进行具体处理。如调用厂家的服务驱动程序或调用公共驱动程序,最后传递给视频显示驱动,而驱动程序驱动显示卡向显示屏幕提供显示。整个处理过程都在计算机后台完成,基本不需要程序员参与。程序员只需要开发应用程序部分,管理硬件的工作交由计算机完成。1.2.2 OpenGL渲染管线OpenGL具有超强的图形绘制能力,包括绘制物体、启动光照、管理位图、纹理映
15、射、动画、图像增强以及交互技术等功能。作为图形硬件的软件接口,OpenGL主要是将三维的物体投影到一个二维平面上,之后处理得到像素,进行显示。OpenGL首先将物体转化为可以描述物体集合性质的顶点(Vertex)与描述图像的像素(Pixel),在执行一系列操作后,最终将这些数据转化成像素数据。也就是说, OpenGL是基于点的。在OpenGL中,无论何种情况,指令总是被顺序处理。由一组顶点定义的图元(Primitive)执行完绘制操作后,后继图元才能起作用。绝大部分OpenGL实现都有相似的操作顺序,即称为OpenGL渲染管线的一系列相关的处理阶段。1.2.3 OpenGL数据类型OpenGL
16、定义了自身的数据类型,主要有GLbyte,GLshort,GLint,GLfloat, GLdouble,GLubyte,GLushort和GLuint。不同的OpenGL实现在选择哪些C语言数据类型来表示OpenGL数据类型方面存在一些差异。使用OpenGL定义的数据类型,就可以在OpenGL代码跨平台移植时避免类型不匹配的问题。1.3 本文框架结构本文通过对三维图像的生成及显示理论进行系统认真的学习和研究,查阅了大量的国内外相关的文献和资料,主要完成了三维图像的图像建模、色彩渲染、动画应用等。本文的主要结构如下所示:第一章,绪论。本章首先介绍了三维图形学研究的背景和意义,然后简述了Open
17、GL的理论框架,最后陈述了本文的内容安排。第二章,国内外研究现状。本章介绍了三维图形学的历史、发展及将来的研究方向。然后介绍了其在太空通信方面的应用。第三章,OpenGL实现三维图像显示的基本理论。本章详细阐述了OpenGL的基本原理,首先讲述了OpenGL场景坐标的建立,然后介绍了OpenGL投影的变换,窗口视口的计算以及基本图元的绘制。第四章,三维图像的实现及结果分析。本章介绍了OpenGL的初始化和三维图像的建模、色彩渲染、动画应用,以及卫星在深空场景仿真的实现。第五章,总结和展望。本章总结了本设计所完成的工作,并对其中的缺陷做出了说明,指出了所实现的三维图像在通信方面的不足,对下一步的
18、工作做了展望。第二章 三维图形学的国内外研究现状及发展2.1国内外研究现状当前,研究卫星及深空场景仿真的工作还不太多。MRC和波音宇航公司等最早开发出天体背景描述器(CBSD)。可得到指定时刻的任意方向和任意大小视场的星空场景;Hallet 建立了在轨飞行器可视化计算机图形系统;Hagedorn利用虚拟现实技术,采用交互图形工作站对飞行器试验任务提供支持;Standridge采用2 维和3 维空间建模的方法。通过可视化仿真技术演示和观察地心轨道上卫星运行状态。Stytz开发了一组十分简洁的卫星姿态显示模型及仿真软件, 其能较逼真地动态显示在轨卫星姿态变换动画。Kenneth对通讯卫星在太空运行
19、的场景及不同姿态对通讯的影响进行了仿真;Andrew 提出了一个太空飞船飞行模拟的框架。国内这方面的研究起步较晚,2001年提出了可将虚拟现实技术与卫星仿真技术相结合,辅助卫星的设计、制造和发射实现了一个面向卫星系统仿真的可视化环境,可显示卫星系统运行过程的动态三维场景,并对小卫星轨道姿态控制系统仿真进行了研究;从可视交互仿真模型设计的角度提出了人造地球卫星的一组几何定轨方法,对惯性卫星组合导航开发平台的可视化仿真和实现进行了研究;利用三维可视化技术实现了挠性卫星飞行姿态的计算机三维动画仿真;在上述工作的基础上,本文提出了一个卫星与深空场景实时生成的方法,基于真实的卫星轨道及天文学星表数据,综
20、合了计算机图形学及天文学知识,模拟出卫星的运动过程及其与星空的合成场景;同时采用一系列加速绘制技术,实时生成了卫星与深空动态场景并能进行多视点交互虚拟漫游。2.2 三维图形学发展三维图形学的发展主要包括硬件、软件和算法三方面的发展。2.2.1三维图形学硬件的发展(1) 被动式三维图形学1950年,美国麻省理工学院 MIT的旋风1号计算机,是世界上第一台图形显示器。用一个类似于示波器的CRT来显示一些简单的图形。1958年,美国 Calcomp公司由联机数字记录仪发展成滚筒式绘图仪。1958年,GerBer公司把数控机床发展成为平板式绘图仪。50年代末,MIT的林肯实验室在旋风计算机上开发的SA
21、GE空中防御系统,第一次使用了具有交互功能的CRT显示器。(2) 交互式三维图形学60年代中期使用随机扫描显示器,60年代后期使用存储管式显示器,70年代中期出现了基于电视技术的光栅图形显示器。80年代出现了光栅图形显示器的PC和图形工作站。图形输入设备如光笔、鼠标、操纵杆、键盘t跟踪球拇指轮等也同时在不断更新和发展。(3) 沉浸式三维图形学虚拟现实系统 Virtual Reality System;增强现实系统 Augmented Reality System 将真实世界信息和虚拟世界信息无缝集成;相应图形硬件如数据衣、数据手套、数据鞋以及头盔、立体眼镜、运动捕获设备等得以迅速的发展。2.2
22、.2三维图形学软件的发展1974年,美国国家标准化局ANSI提出了制定图形软件功能标准化的基本规则。此后,美国计算机协会ACM成立了图形标准化委员会。1977年提出了“核心图形系统CGS(Core Graphics System)的规范;ISO发布了计算机图形接口CGI,计算机图形元文件标准CGM,计算机图形核心系统GKS,程序员层次交互式系统PHIGS,基本图形转换规范IGES,产品数据转换规范STEP等计算机三维图形标准;在各种三维图形标准之上,开发了各种应用图形软件 3D MAX,MAYA,CorelDraw,LightScape 等,广泛应用于制造、军事、地质、农业、科研、商务、教育、
23、影视媒体等各个领域。2.2.3三维图形学算法的研究范畴基于三维图形设备的基本图形元素的生成算法;基本三维图形元素的几何变换、投影变换和窗口剪裁等;自由曲线曲面的插值、拟合、拼接、分解、过渡、光顺、整体修改、局部修改等;三维图形元素(点、线、面、体)的求交、分类及集合运算;隐藏线、隐藏面的消除以及具有光照效果的真实感图形显示;不同字体的点阵表示,矢量中、西文字符的生成与变换;三维形体的实时显示和图形的并行处理;三维图形用户界面及交互技术;虚拟现实环境的生成及其控制算法等。2.3 计算机三维图形学的应用科学数据可视化(Scientific Visualization),人机交互技术,影视制作(Fi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vc+ OpenGL三维图像的生成与显示技术研究毕业设计说明书 vc OpenGL 三维 图像 生成 显示 技术研究 毕业设计 说明书
限制150内