中期报告OpenGL的飞机虚拟场景漫游模拟.doc

中期报告OpenGL的飞机虚拟场景漫游模拟.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中期报告OpenGL的飞机虚拟场景漫游模拟

XXXXXXXXXXXX 本科生毕业设计(论文)中期报告 题 目: 基于OpenGL的飞机虚拟场景漫游模拟 姓 名: XXXXXXX 学 号: XXXXXXXXX 系 别: 计算机工程系 专 业: 计算机科学与技术 年 级: 2008级 指导教师: (签名) 系主任(或教研室主任): (签章) 时间: XXX 年 XX 月 XXX 日 1 绪论 近几年计算机图形学的发展三维图形技术得以形成,三维图形技术的发展促进了可视化技术的发展。目前计算机图形学领域普遍采用OpenGL进行三维游戏、虚拟现实等方面的图形研究,使OpenGL的应用领域广泛。目前包括ATT公司UNIX软件实验室、IBM公司、DEC公司、SUN公司、HP公司、Microsoft公司和SGI公司在内的几家在计算机市场占领导地位的大公司都采用了OpenGL图形标准。OpenGLOpenGL虚拟现实技术应用于辅助新车的设计和装配,使新车的设计周期大大缩短,同时节约了研发成本。 OpenGL虚拟现实技术在我国的发展起步并不久,虚拟现实技术的研发中心也不多目前只有四个研究机构。分别是负责开发军用、工业用虚拟现实系统,并负责国内虚拟现实软件技术测评工作的北京航空航天大学虚拟现实实验室;在西北地区较早的参与从事虚拟现实反面的研究的西北工业大学的虚拟现实研究所;曾经有过虚拟现实方面的科研课题、理论著作的浙大、西南交大的虚拟现实实验室;预实现工业、民用领域的虚拟现实技术开发以及设备一体化的北京中棠大地科技有限公司和北京嘉士维技术研究为代表的民营科技企业[2]。 1.2 OpenGL的研究背景和目的 基于OpenGL三维场景的强大功能是它的实时观察与漫游技术能够绘制高真实三维图形和实现交互式视景仿真和虚拟现实,因此被广泛应用于三维游戏、虚拟现实、科学计算可视化等领域。但是OpenGL无窗口系统,包括场景观察在内的API都是低级的C函数,缺乏交互功能[3]。鉴于这种情况,这次的毕业设计我主要是用OpenGL的软件包,在VC++环境下,实现在三维场景中进行飞机飞行的实时观察与漫游。设计主要是通过键盘和鼠标操作飞机,可对场景进行实时漫游,或者对对象进行多角度细致入微的观察,似乎有一种身临其境的感觉。 3 设计思路 我的毕业设计思路是先进行静态环境的实现,即天空盒和地形模型生成还有3D模型的导入,之后再实现动态三维场景漫游。主要分为如图3-1所示的几个功能模块: 图3-1系统的各个功能模块流程图 (1)天空盒模块,该模块完成天空的绘制; (2)地形模块,该模块完成地形的绘制 (3)纹理模块,该模块调用组织生成场景中的纹理,将纹理数据提供给各个模块使用; (4)飞机导入模块:完成飞机模型的导入; (5)三维场景漫游模块:通过函数实现用键盘控制改变飞机的飞行高度和方向。观察视点在飞机上方,观察飞机飞过广袤的大地。 4 漫游系统开发 4.1 开发环境介绍 硬件开发环境: CPU:Pentiem(R)CPU 2.93 内存:1024M 软件开发环境: 开发平台:Window XP 操作系统下的VC++环境 开发语言:面向对象的程序设计语言C++ 图形应用程序窗口:OpenGL 4.2 天空盒的实现 天空主要通过运用了“球形法”来实现,在场景中构建一个球体,并往此球体上面贴张带有天空的bmp格式的图像,此图像带有云彩图案,可以增强真实感。OpenGL提供三种不同的二次曲面:圆盘,圆柱体,球体。函数gluNewQuadric()和gluDeleteQuadric()用来创建和删除这些二次曲面。其主要主要过程是,首先要通过函数GLUquadricObj创建一个新的二次曲面对象;然后调用glEnable及glBindTexture函数实现开启和绑定纹理;接着通过gluSphere()函数创建球体的模型。 gluSphere()函数原型为:void gluSpere(GLUquadricObj* obj,GLdouble radius,GLint slices,GLint stacks)。参数radius代表球体的半径,参数obj代表二次曲面对象,并以此对象为原点,参数slices和stgacks代表行经线(球体为坐标系,纵轴为经线)和行纬线(球体为坐标系,横轴为纬线)[4]。 相关代码如下: GLUquadricObj *skyqiu; //二次方程对象

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档