基于OpenGL的立体模型库.doc

上传人:大米 文档编号:559606954 上传时间:2023-06-15 格式:DOC 页数:21 大小:490.50KB
返回 下载 相关 举报
基于OpenGL的立体模型库.doc_第1页
第1页 / 共21页
基于OpenGL的立体模型库.doc_第2页
第2页 / 共21页
基于OpenGL的立体模型库.doc_第3页
第3页 / 共21页
基于OpenGL的立体模型库.doc_第4页
第4页 / 共21页
基于OpenGL的立体模型库.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《基于OpenGL的立体模型库.doc》由会员分享,可在线阅读,更多相关《基于OpenGL的立体模型库.doc(21页珍藏版)》请在金锄头文库上搜索。

1、济南大学毕业设计1 前言1.1 选题背景OpenGL(全称Open Graphics Library)是一个定义了跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)的处理1。OpenGL是个专业的三维图形程序接口,是一个功能强大,并且调用方便的底层图形库。目前,OpenGL仍然是仅有的能够取代微软对3D图形技术的完全控制的接口。它仍然具有很强的生命力,但是Silicon Graphics公司已经不再用任何让微软不悦的方式推广Open GL了,因而它存在较高的风险性。图形程序开发人员是一个有着独立思想的人群,很多开发人员目前仍然在使用OpenGL图形库。因此,硬件开发商正在设法加强

2、对它的支持。Direct3D目前还不能支持高端的图形设备和某些专业应用; 所以OpenGL在这些领域任然占据着统治地位。目前,国内的三维开发技术正处于追赶国外技术的关键时期,从三维程序的创意、策划、研究开发与实现,到软件的运营与维护,都有大量的地方值得我们学习和探究。由于 Linux 操作系统平台的广泛推广,基于Linux 的各种应用软件也在不断壮大,因此基于跨平台的三维图形处理软件开发也越来越受重视。OpenGL是一种独立且与平台无关的三维图形开发库,在各种语言下都能进行主框架开发并结合应用OpenGL 函数都可以开发出三维软件。但是由于框架开发的平台相关性从而使编成的三维图形处理软件无法跨

3、平台编译运行,因此glut + OpenGL 的方式成了一种很好的选择。但是在对复杂框架和各种媒体的支持方面,glut 并不理想。在Linux 下可以采用FLTK 等框架平台技术实现包括按钮在内的比较复杂的框架功能,但是需要专门的Linux 开发环境,众多的Window 环境下的KDE 开发者明显对此无法适从。相反,SDL(Simple DirectMedia Layer)作为免费的跨平台多媒体应用编程接口,已经被人们广泛用于开发二维软件,其优秀的消息框架支持、文件支持和声音支持等都使得它成为能与微软DirectX 匹敌的最为成熟的技术之一。1.2 选题意义目前,基于OpenGL的三维立体图形

4、软件都是一些有关绘制三维立体图,或者处理三维立体图的软件,对于有些常用的立体图形一到用时就得从新加载到三维立体软件中,没有进行系统的管理。这样一来就给学习和工作带来诸多的时间浪费。为了解决上面的问题,从而更高效的实现对立体模型的管理应用,我选择了这个软件(基于OpenGL的立体模型库软件开发)作为毕业设计。软件通过OpenGL与ACCESS数据库相结合,提高对三维立体模型的高效、交互式的管理。1.3 设计思路针对上面提到的,该软件要通过OpenGL与ACCESS相结合实现高效的、交互式的管理,我想到了下面的的软件设计方案。首先,该软件分为两大模块。第一个模块就是OpenGL的框架模块。这个模块

5、是通过Visual C+,利用OpenGL的库函数系统编程一个基于OpenGL的三维模型处理窗口框架。在该窗口里面能实现对三维模型的浏览、旋转和缩放。这一部分是该软件的基础部分,也是最底层的框架结构。第二个模块就是ACCESS的数据库管理模块。这个模块是通过ACCESS建立三维立体图形的数据库,并对数据库实现查看、添加和删除。然后,通过Visual C+编程将OpenGL的三维模型处理窗口模块与ACCESS的数据库管理模块结合起来。这样这个软件就成型了。通过这个软件可以在数据库里面调用三维模型的数据来在OpenGL窗口里面查看三维立体图形,这样就更形象的理解与操作三维立体模型。也可以在窗口上实

6、现智能化、形象化的三维立体模型数据库管理。从而实现更高效、交互式的三维立体模型库的管理。2 设计中所用的软件及接口技术简介 在该软件程序设计共用了三个软件及接口技术:Visual C+、OpenGL、Access。 2.1 Visual C+简介Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序软件。Visual C+是一个功能强大的可视化软件开发工具。自从1993年Microsoft公司推出Visual C+1.0后,随后其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选编程软件。虽然微软公

7、司推出了 Visual C+.NET(Visual C+7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0操作系统下。所以在实际的软件开发中,更多的是以Visual C+6.0为开发平台。Visual C+6.0不仅是一个C+ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发组件工具包。2.1.1 Visu

8、al C+组成部分Visual C+由三个部分组成:Developer Studio、MFC、Platform SDK。(1)Developer Studio,它是Visual C+的一个集成开发环境,我们日常工作的99%都是在它上面完成程序开发的,加上它的标题赫然写着“Microsoft Visual C+”,所以很多人都理所当然的认为,那就是Visual C+了。其实不是这样的,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能。其实Developer Studio并不是只用于VC的,它也同样用于VB,VID等Visual

9、Studio家族的其他同胞兄弟。所以不要把Developer Studio当成Visual C+, 它仅仅只是Visual C+的一个壳子。(2)MFC,如果从理论上来讲,MFC也不是仅仅专用于Visual C+,Borland C+,C+Builder和Symantec C+同样可以处理MFC。同时,用Visual C+编写代码也并不意味着一定要用MFC,如果可以,用Visual C+中的STL,ATL编写程序也是一样没有限制的。但是,Visual C+很多功能本来就是为MFC打造的,Visual C+中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C+而不用MFC就相当于抛

10、弃了Visual C+中很大的一部分功能。(3)Platform SDK,这才真正是Visual C+和整个Visual Studio的主要部分,即使我们很少直接的接触到它。大致说来,Platform SDK是以Microsoft C/C+编译器为核心,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,所以这项工作是由CL、NMAKE和其他许许多多命令行程序来完成的。这些我们所看不到的程序才是构成Visual Studio的基础。2.1.2 Visual C+ 6.0的使用方法启动Microsoft Visual C+ 6.0(其启动界面如图下图2.1)

11、图2.1选择:“文件”下的“新建”选项,在打开的对话框中选择“工程”选项 再选择你所需要的工程类型-填写“工程名称”-选择工程存储“位置”-点击“确定”. 然后再选择:“文件”下的“新建”选项,在打开的对话框中选择“文件” 再选择“C+Source file”-填写“文件名称”-点击“确定”. 这样就建好了一个.cpp的工程文件。 然后你在.cpp文件中写入你的c语言代码就可以了。 代码写好以后你看一下工具里有这样一个图标 依次点,编译,运行就可以了。 2.2 OpenGL简介OpenGL是一个开放式的三维图形软件包,它是独立于窗口系统和操作系统的,以它为基础开发的应用程序可以十分方便地在各种

12、平台之间移植;OpenGL可以与Visual C+紧密结合.OpenGL具有七大功能:1.建模:OpenGL图形库不仅提供了基本的点、线、多边形的绘制函数,此外还提供了复杂的三维物体以及复杂曲线及曲面的绘制函数。 2.变换:OpenGL图形库的变换包括一些基本变换和投影变换。基本变换也即平移、旋转、缩放变换,投影变换包括平行投影(又称正射投影)和透视投影两种。这些变换有利于减少算法的运行时间,提高三维立体图形的显示速度。 3.颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。 4.光照和材质设置:OpenGL光有辐射光(Emitted Light)、

13、环境光(Ambient Light)、漫反射光(Diffuse Light)和镜面光(Specular Light)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。 5纹理映射(Texture Mapping):利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。从而感受到其三维立体图形的效果。 6位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。 7.

14、双缓存动画(Double Buffering):双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。图2.2是OpenGL的运行平台和结构3。图2.2 2.2.1 Visual C+中OpenGL编程的环境配置 要在Visual C+中编写OpenGL的程序需要做如下配置: 首先,将OpenGL开发库的Glu.dll、Glut32.dll、Glut.dll三个文件拷贝到操作系统的system32文件夹中。然后,将OpenGL开发库中的Gl.h、Glaux.h、Glext.h、Glu.h、Glut.h、Wglext.h这六个文件拷贝到Visual C

15、+的“includegl”文件夹下。最后,将OpenGL开发库中的Glaux.lib、Glu32.lib、Glut32.lib、OpenGL.lib四个文件拷贝到Visual C+的静态函数库文件“VClib”文件夹下。至此在Visual C+中OpenGL的编程环境就配置好了,这样就可以进行OpenGL的编程了。2.3 Access数据库的简介Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即Relational Database Management System),是Office系列应用软件之一2。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。 Access能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司),或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员则能使用它来开发简单的应用软件。虽然它支持部分面向对象(OO)技术,但是未能成为一种完整的面向对象开发工具

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档 > 租房合同

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号