以下文档格式全部为word格式,下载后您可以任意修改编辑。
毕业设计(论文)
课题 名称
三维图像的生成与显示技术研究 摘要
最早人们见到的图像都是平面图像,也就是通常所说的二维图像,但自21世纪以来二维图像早已不能满足人们的视觉要求,之后3D化像风暴一样席卷而来。3D图形系统能够较形象的模拟和表示客观物体,易于通过模拟光线照射物体表现物体的质感。
OpenGL是优秀的开放的2D3D图形标准,由OpenGL体系结构委员会(ARB)所掌管。OpenGL图形系统是图形硬件的一个软件接口,它强大的渲染管线能够绘制出逼真的虚拟场景,使图像看起来更加真实,就像每一个人平时所看到的一样或至少接近人眼所看到的内容。
本文研究了基于OpenGL的三维视景应用程序的初始化、世界坐标系和模型局部坐标系之间的关系和平移旋转并缩放的矩阵表示以及如何将景中的模型分解为OpenGL可以接受的图元信息,建立了一个卫星与深空场景的动态仿真系统, 该系统根据各个天体运行规律, 详细计算了卫星及各星体的运行轨迹, 真实地模拟了深空场景的动态变化,能够实时地模拟不同视角、不同时间的卫星及深空动态场景。
关键词: 3D图形 OpenGL模型视图变换 类封装 卫星
Abstract
The earliest images we see are plane images, 2D image is usually said, but since twenty-first Century the two-dimensional image already cannot satisfy people's visual requirements, after 3D swept like a storm.
I The 3D graphics system simulates and reflects objects in the real world vividly. OpenGL is a 2D3D graphics standard in charge of Architecture Review Board(ARB) and is a software interface to usually see the same or at least close to the eye can see content.
This paper study the 3D OpenGL application initialization, the world coordinate system and the model of local coordinate system and the relationship between translation and rotation and scaling matrix representation and the model is decomposed into primitive information based on OpenGL can accept, established a dynamic simulation 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 satellite and deep space dynamic scene.
Key words: 3D graphics OpenGL model-view transformation wrapping with class Satellite
目录
第一章 绪论 ................................................ 1
1.1 研究背景和意义 .................................................. 1 1.2 OPENGL简介 ...................................................... 1 1.2.1 OpenGL工作方式 .............................................. 1 1.2.2 OpenGL渲染管线 .............................................. 2 1.2.3 OpenGL数据类型 .............................................. 3 1.3 本文框架结构 .................................................... 3
第二章 三维图形学的国内外研究现状及发展 ..................... 4
2.1国内外研究现状 .................................................. 4 2.2 三维图形学发展 .................................................. 4 2.2.1三维图形学硬件的发展 ......................................... 4 2.2.2三维图形学软件的发展 ......................................... 5
II 2.2.3三维图形学算法的研究范畴 ..................................... 5 2.3 计算机三维图形学的应用 .......................................... 5
第三章 OPENGL实现三维图像显示的基本理论 .................... 6
3.1 场景坐标系 ...................................................... 6 3.1.1坐标系及观察流程 ............................................. 6 3.1.2 OpenGL坐标系方向 ............................................ 7 3.1.3模型视图变换 ................................................. 7 3.1.4提高绘图效率和场景的层次性 ................................... 8 3.2 投影 ............................................................ 8 3.2.1透视投影 ..................................................... 8 3.2.2正投影 ...................................................... 10 3.2.3投影变换示例 ................................................ 10 3.3 窗口与视口 ..................................................... 11 3.3.1视口变换 .................................................... 11 3.3.2变换深度坐标 ................................................ 12 3.4 几何图元的绘制 ................................................. 12 3.4.1点 ......................................................... 13 3.4.2直线 ....................................................... 13 3.4.3多边形 ...................................................... 13 3.4.4矩形 ....................................................... 14 3.4.5曲线和表面 .................................................. 14
第四章 三维图像显示的实现及分析 ............................ 15
4.1 概要设计 ....................................................... 15 4.2 WINDOWS操作系统下OPENGL应用程序初始化 ........................... 16 4.2.1应用程序依赖库 .............................................. 16 4.2.2像素格式 .................................................... 17 4.2.3渲染描述表 .................................................. 17 4.3 建模技术概述 ................................................... 18 4.3.1基于几何造型的建模技术 ...................................... 18
III 4.3.2基于图像的建模技术 .......................................... 18 4.3.3卫星建模示例 ................................................ 19 4.4色彩的渲染 ..................................................... 20 4.4.1颜色 ....................................................... 20 4.4.2纹理贴图 .................................................... 22 4.4.3位图读取 .................................................... 24 4.5用户交互与动画 ................................................. 25 4.5.1用户交互 .................................................... 25 4.5.2动画 ....................................................... 25 4.6 相关算法及原理描述 ............................................. 27 4.7卫星与深空动态场景合成 ......................................... 27 4.7.1场景合成方法 ................................................ 27 4.7.2加速绘制方法 ................................................ 28 4.8 结果分析 ....................................................... 29
第五章 总结与展望 .......................................... 31
5.1总结 ........................................................... 31 5.2展望 ........................................................... 31
致谢 ................................................................ 36 参考文献 ........................................................... 37 附录 ................................................................ 39
IV 第一章 绪论
最早人们见到的图像都是平面图像,也就是通常所说的二维图像,但自21世纪以来二维图像早已不能满足人们的视觉要求,之后3D化像风暴一样席卷而来,人们对三维图像的研究也越来越深入。
1.1 研究背景和意义
近几年,利用计算机虚拟现实技术生成动态场景的仿真图像已被广泛地应用于遥感、虚拟战场仿真、目标识别与跟踪、通信等领域。
而卫星与深空动态场景的仿真是实现卫星与地球通信的三维通信的关键技术之一。同时,航天事业作为一种高投入、高风险的科技密集型行业,可视化仿真系统的研制是降低其成本和风险、提高成功率的有效途径之一。
1.2 OpenGL简介
OpenGL是图形硬件的一种软件接口。OpenGL 全称 Open Graphics Library,是一个优秀的专业化的3D的API(Application Programming Interface)。作为与DirectX 类似的语言,OpenGL最早是以 SGI 为图形工作站开发的图形开发接口IRIXGL,它可以独立于操作系统于硬件环境。程序员只需进行布景、建模、光照与渲染然后调用相应的OpenGL API指令,无须与图形硬件直接打交道。OpenGL负责与操作系统和底层硬件交互。
OpenGL与C语言紧密结合。OpenGL的语法遵从C语法,由于C语言应用的广泛,使得程序员很容易掌握OpenGL指令集。
OpenGL具有很高的可移植性。OpenGL的设计目标就是作为一种流线型的、独立于硬件的接口,在当今大部分主流操作系统UnixLinux、
Windows98NT2000XPVista和Mac OS等都有其相应的实现。然而为了达到这个目标,OpenGL并未包含用于执行窗口任务或者获取用户输入之类的函数。反之,必须通过窗口系统控制所使用的特定硬件。类似地,OpenGL并没有提供用于描述三维物体模型的高层函数(这类函数可能允许你指定相对较为复杂的形状、例如汽车、身体的某个部位、分机或分子等)。在OpenGL中,必须根据少数几个基本图元(Geometric Primitive)(例如点、直线、多边形)来创建你所需要的模型。