- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于opengl的三维场景漫游实现
基于opengl的三维场景实现
摘要: 本课题是关于opengl三维场景的实现,要求能够实现人机交互,具有缩放、旋转等基本的功能。
利用opengl创建三维模型的原理,本课题在理解opengl创建图形元的基础上,实现了简单三维场景模型的建立。通过建立全局Camera,实现了对场景全方位的观测,同时能够及时响应键盘和鼠标的操作。在此基础上,利用天空盒子和全局地形的方法,实现了三维场景的基本框架,能够在虚拟场景中任意角度的漫游。通过纹理贴图的方法,实现场景的创建,并对场景内部的事物进行碰撞检测,来实现简单的三维场景漫游。
关键词:三维建模; 全局Camera; 场景漫游; 纹理贴图; 碰撞检测
目录
1 课题论述 1
1.1选题背景简介 1
1.2系统开发平台及运行环境 1
1.2.1 开发环境的搭建 1
1.2.2 opengl绘图机制 1
2课题实现的关键技术 2
2.1 场景建模 2
2.2 场景渲染 2
2.3 纹理映射 2
2.4 碰撞检测 3
3漫游场景的实现 4
3.1 全局Camera的创建 4
3.2 地形和天空的绘制 5
3.3场景的绘制 6
3.4纹理和字体类的设计 7
4 总结 8
5 程序使用方法介绍 8
1 课题论述
1.1选题背景简介
随着科技的发展,人们对视觉的需求也越来越高,这正好也促发了计算机图形学的快速发展:从简单的平面图形到3D空间的立体图形空间的一个转变,为opengl提供了广阔的应用和开发前景。随着opengl的越来越成熟,在各个领域的应用也变得广泛起来。从计算机、多媒体、影视到医学、工业等领域。Opengl开发的重心也有所转变,从普通的三维场景的建立,到现在的大型复杂场景的三维信息生成、实时三维场景光影效果的模拟和实时三维场景的内存使用控制,opengl的发展越来越成熟。
正是基于opengl目前广泛的应用,本课题从opengl基本的图形元的创建、渲染、视角的转换等方面,选择一些opengl的基本操作,实现简单的三维场景空间的漫游,促进对opengl进一步的了解,也为以后进一步的开发做准备。
1.2系统开发平台及运行环境
本设计是基于Opengl 1.0在windows7操作系统下使用Visual C++6.0集成开发环境开发并调试,设计中使用了基于Win Application的架构。
1.2.1 开发环境的搭建
本设计是在Visual C++ 6.0下使用Opengl1.0库开发的,开发环境搭建步骤详细如下:
(1)安装Visual C++ 6.0。
(2)配置Opengl1.0
由于Visual C++ 6.0本身带有安装好的opengl1.0版本,所以一些头文件和bin路径的设置就不必要做了。但自带的opengl1.0 没有包含 glut函数库,所以需要下载glut函数库,并正确的设置include和bin的路径,并把dll文件放到system32下。
1.2.2 opengl绘图机制
在Windows环境的绘图机制下使用图形设备接口GDI作图要通过设备上下文调用相应的函数,用opengl作图也是这样。Opengl通过“渲染上下文”即RC完成对三维图形的绘制。Windows下的设备上下文和窗口都支持“文图格式”属性,和RC在位图结构方面是一致的。因此只要在创建RC的同时与一个DC建立联系,opengl函数就可以通过对应的DC绘制到相应的显示设备上面。
2课题实现的关键技术
2.1 场景建模
场景的建模能够直接的展示出场景的 三维特性,也是影响三维可视化功能的关键。在本课题中,我主要完成了一下几个场景的建模。
首先是地形的建模,在地形的建模中,采用了四边形近视模型和纹理贴图的方式来完成。在xoz平面,建立的是一个46*46的网格模型,其中每个方格的大小大约为7个坐标。在y方向,通过读取位图信息的方式,建立的随机高度的模型。其中,地形中心部分为平面,用于建立一些基本的场景,而地形的边界部分,用位图数据随机读取,生成一圈环绕的小山,把整个场景环绕在山围之中。
房子模型的建立是通过opengl简单的图形元建立,首先建立房子的四周,即四个围墙,用四个平面图形建立,然后屋顶通过两个四边形和两个三角形进行建模,实现三维房屋的构建。
天空的建立有很多方法,基本的有两种:一种是天空盒法,另一种是天空球法。天空盒是有一个长方体,在它的各个面上贴有天空的图片组成。天空球是有一个球体,在它的表面贴上天空的纹理组成。天空球相对于天空盒子较简单,因为它只需要一张纹理,但为了显示效果的真实性,本课题采用的是天空盒子的方法,建立六个天空的面,然后选取合适的天空图片进行贴图。由于六个面的链接处会出现一条线,为了实现天空的无缝连接,需要设置纹理的
文档评论(0)