计算机毕业设计论文最终版.docx

上传人:b****5 文档编号:7546900 上传时间:2023-01-24 格式:DOCX 页数:36 大小:1.31MB
下载 相关 举报
计算机毕业设计论文最终版.docx_第1页
第1页 / 共36页
计算机毕业设计论文最终版.docx_第2页
第2页 / 共36页
计算机毕业设计论文最终版.docx_第3页
第3页 / 共36页
计算机毕业设计论文最终版.docx_第4页
第4页 / 共36页
计算机毕业设计论文最终版.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

计算机毕业设计论文最终版.docx

《计算机毕业设计论文最终版.docx》由会员分享,可在线阅读,更多相关《计算机毕业设计论文最终版.docx(36页珍藏版)》请在冰豆网上搜索。

计算机毕业设计论文最终版.docx

计算机毕业设计论文最终版

计算机毕业设计论文(最终版)

D

基于OpenGL的纹理映射实现与应用

摘要:

随着计算机多媒体技术、可视化技术及图形学技术的发展,我们可以使用计算机来精确地再现现实世界中绚丽多彩的三维物体,并充分发挥自身的创造性思维,通过人机交互来模拟、改造现实世界,这就是目前最为流行的虚拟现实技术。

通过这种技术,建筑工程师可以直接设计出美观的楼房模型;军事指挥员可以模拟战场进行军事推演,网民可以足不出户游览故宫博物馆等名胜古迹等。

而虚拟现实技术最重要的一部分内容就是三维图形编程。

它已经成为一个工业标准的计算机三维图形软件开发接口,并广泛应用于游戏开发、建筑、产品设计、医学、地球科学、流体力学等领域。

值得一提的是,虽然微软有自己的三维编程开发工具DirectX,但它也提供OpenGL图形标准,因此,OpenGL可以在计算机中广泛应用[4]。

虚拟现实技术是计算机图形学的一个分支。

OpenGL是功能强大的开放式图形库。

论文运用OpenGL工具在MFC单文档平台下创建了一个虚拟三维环境,绘制一些常见的虚拟物体,利用纹理映射增加物体的真实感。

关键词:

系统设计OpenGL技术三维图形设计纹理映射虚拟现实

 

Theimplementationandapplicationoftexturemapping

BasedOnOpenGL

Abstract:

WiththedevelopmentoftheInternetandthemultimediatechnology,visualizationtechnology,Graphicstechnology,Wecanaccuratelyemersionthe3Dobjectintherealityworldthatusecomputer,andcompletelyexertthecreationarythinkingofourselves.Throughman-machineconversationtosimulateortransformtherealworld,that’sthemostfashionablytechnologyoftheVirtualReality.

Throughthistechnology,thearchitectcoulddesignthebeautymodelofbuildingdirectly;Themilitarycommandercouldimitatebattlefieldforashambattle,thewebcamcouldexcursemuseum,scenicspotandhistoricresortbeingconfinedathome.AndthemostimportantoftheVirtualRealitytechnologyis3Dphotographprogramme.It’sbecomeasoftdevelopmentconnectionofIndustrialstandardforcomputers3Dphotograph,andwidelyutilizesingamedesign,architecture,porductdesign,medicine,geoscience,hydromechanicsdomain.Whatisworthmentioningis,althoughtheMicrosofthavehisown3Dprogrammerdevelopmentkit,Directx,healsoofferOpenGLphotographstandard,so,OpenGLcoulduseincomputerwidely.

Virtualrealitytechnologyisacomputergraphicsbranching.OpenGListhefunctionformidableopenstylegraphstorehouse.Thisdesignimplementsavirtualthree-dimensionalenvironmentwithOpenGLon MFCsingledocumentplatform,anddrawsupsomecommonhypothesizedobjects,increasestherealisticofobjectbythetexturemapping.

KeyWord:

Systemdesign;Texturemapping;OpenGLtechnology;3Dphotographdesign;

VirtualReality;

 

引言

计算机图形学是伴随着计算机技术在图形处理领域中的应用而发展起来的一门实践性的学科,是游戏、数字媒体、计算机视觉、图像处理、地理信息系统、计算机辅助设计等专业技术的基础。

计算机图形学的应用领域非常广泛,已经渗透到科研、工程、商业、艺术等社会生活和工业生产的几乎一切领域,并与这些领域的发展相互推动和促进[4]。

随着计算机软硬件技术的不断进步,人们发现复杂的数据结构以可视的形式加以表达更容易为人们所理解。

因此,计算机图形学的研究目标之一便是通过计算机将数据转变为图形,并在有关的设备上以特定的形式加以显示。

为了方便这一转换过程,避免不必要的重复劳动,人们设计了各种各样的辅助编程工具,并将它们打包以公共图库的形式加以推介。

这些图库的一个共同特点是:

都提供了一些标准的点、线、面、体的建模方法以及一些标准的图形变换方法,甚至还提供一些外部图形设备的访问接口。

不过,OpenGL走得更远。

它除了提供上述通用建模和变换方法之外,更提供了光照处理、反走样、混合、雾化、纹理映射及动画等功能。

OpenGL被设计成一个独立于硬件的软件编程接口,适用于多种不同的计算环境,包括个人计算机、图形工作站、超级计算机及多机互连的网络环境。

OpenGL应用开发的这种广泛适应性给从事三维图形开发的人员带来的好处是不言而喻的。

同时,OpenGL业已成为广大图形开发人员的必备工具。

OpenGL是近几年发展起来的一个性能卓越的三维图形平台,OpenGL的显著优点是作为一个独立的工作平台,独立于硬件设备、窗口系统和操作系统,用它编写的软件可以在UNIX、Windows95、Windows98/NT等系统间实现移植,并能在网络环境下以客户/服务器模式工作,专业图形处理、科学计算等高端应用领域的标准图形库。

开发者可以在多种硬件平台及操作系统下很方便地利用OpenGL图形库,创建出具有照片质量的、独立于窗口系统、操作系统和硬件平台的三维彩色图形和动画。

本课题提出了在MFC(MicrosoftFoundationClass)的框架下来实现MFC和OpenGL函数库结合绘制图形的方法,这种方法有效简化了应用程序与操作系统之间的连接,也符合面向对象的程序设计思想,提高了接口的通用性[13]。

第1章系统概述

1.1课题研究的背景及意义

近年来,随着计算机图形学和计算机技术的发展,计算机可视化技术不断普及,创建"虚拟世界"也不断掀起热潮,而建立具有真实感的三维场景是建设"虚拟世界"的重要一步。

为了适应未来信息的需要,必须提高人与信息社会的接口能力,提高人们对信息的理解能力。

人们不再只要求能够通过人的视觉、听觉、触觉,参与到处理信息环境中去,而获得身临其境的体验。

建立一个多维的信息空间,感性认识和理性认识相结合的综合集成环境,而虚拟现实技术将是支撑这个信息空间的关键技术。

80年代末、90年代初国际和国内形成对虚拟现实的热潮,为人们带来了一个绚丽多彩的虚拟的计算机视觉世界。

虚拟现实技术(VirtualReality,简称VR)是诞生于90年代初的新技术,近年来在技术研究领域十分活跃,它汇集了计算机图形学、多媒体技术、人工智能、人机接口技术、传感器技术等多项关键技术:

它是以计算机技术为核心,综合使用了各项最新技术,融合视、听、触觉为一体的模拟现实的三维空间再现技术[8]。

图形图像制作技术发展很快,在产品设计、动画、场景漫游等领域都有广泛的应用。

本文主要说明了在VC++6.0环境下如何使用OpenGL生成简单的三维场景。

在吸取了计算机图形学、计算机科学、光学等多领域先进理论成果的基础上,系统地论述了基于OpenGL下场景的研究和实现及其相关理论和技术[6]。

OpenGL作为一种图形与硬件的接口,与其他图形程序开发工具相比较,它提供了众多图形函数,直观的编程环境简化了三维图形程序。

随着3D游戏越来越多的被开发,更多的游戏开发人员选择OpenGL作为开发工具,以简化操作。

目前OpenGL已成为三维图形的开发标准[6]。

课题采用Windows下VC++的开发平台,以面向对象的编程C++为编程语言,通过调用OpenGL函数,实现三维场景的绘制。

其中,通过调用OpenGl函数库实现三维环境的处理,渲染出具有真实感的图形,然后通过选择不同的纹理对虚拟物体加载表现出不同的效果。

通过在这次毕业设计,首先对计算机图形学有了新的认识,计算机图形学涵盖的范围很广,其次对计算机图形学研究的一个领域虚拟现实的特点和应用前景作了进一步的介绍。

认识到虚拟现实技术在我们现实生活中的作用日益凸现,尤其在实现建筑仿真与漫游系统方面非常突出。

最后,通过研究计算机图形学的相关技术和OpenGL图形软件包的编程原理和编程机制,实现了系统的功能[5]。

1.2目前国内外相关研究和发展趋向

1.2.1可视化是计算机程序设计的发展趋势

我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。

我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用一种最直接的形式来表示这些信息。

最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技术使我们能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种技术就是可视化(Visualization)技术。

可视化技术使人能够在三维图形世界中直接对具有形体的信息进行操作,和计算机直接交流。

这种技术已经把人和机器的力量以一种直觉而自然的方式加以统一,这种革命性的变化无疑将极大地提高人们的工作效率。

可视化技术赋予人们一种仿真的、三维的并且具有实时交互的能力,这样人们可以在三维图形世界中用以前不可想象的手段来获取信息或发挥自己创造性的思维。

机械工程师可以从二维平面图中得以解放直接进入三维世界,从而很快得到自己设计的三维机械零件模型。

医生可以从病人的三维扫描图象分析病人的病灶。

军事指挥员可以面对用三维图形技术生成的战场地形,指挥具有真实感的三维飞机、军舰、坦克向目标开进并分析战斗方案的效果[8]。

更令人惊奇的是目前正在发展的虚拟现实技术,它能使人们进入一个三维的、多媒体的虚拟世界,人们可以游历远古时代的城堡,也可以遨游浩翰的太空。

所有这些都依赖于计算机图形学、计算机可视化技术的发展。

人们对计算机可视化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中SGI公司推出的GL三维图形库表现突出,易于使用而且功能强大。

利用GL开发出来的三维应用软件颇受许多专业技术人员的喜爱,这些三维应用软件已涉及建筑、产品设计、医学、地球科学、流体力学等领域。

随着计算机技术的继续发展,GL已经进一步发展成为OpenGL,OpenGL已被认为是高性能图形和交互式视景处理的标准,目前包括ATT公司UNIX软件实验室、IBM公司、DEC公司、SUN公司、HP公司、Microsoft公司和SGI公司在内的几家在计算机市场占领导地位的大公司都采用了OpenGL图形标准。

值得一提的是,由于Microsoft公司在WindowsNT中提供OpenGL图形标准,OpenGL将在微机中广泛应用,尤其是OpenGL三维图形加速卡和微机图形工作站的推出,人们可以在微机上实现三维图形应用,如CAD设计、仿真模拟、三维游戏等,从而更有机会、更方便地使用OpenGL及其应用软件来建立自己的三维图形世界[7]。

因此,虚拟现实技术便应运而生。

虚拟现实(简称VR),又称灵境技术,是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面。

他综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。

使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其他客观限制,感受到真实世界中无法亲身经历的体验[2]。

1.2.2OpenGL提供直观的三维图形开发环境

OpenGL实际上是一种图形与硬件的接口。

它包括了120个图形函数,开发者可以用这些函数来建立三维模型和进行三维实时交互。

与其他图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数,因此初学的程序设计员也能利用OpenGL的图形处理能力和1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。

OpenGL强有力的图形函数不要求开发者把三维物体模型的数据写成固定的数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其他不同格式的数据源。

这种灵活性极大地节省了开发者的时间,提高了软件开发效益[4]。

长期以来,从事三维图形开发的技术人员都不得不在自己的程序中编写矩阵变换、外部设备访问等函数,这样为调制这些与自己的软件开发目标关系并不十分密切的函数费脑筋,而OpenGL正是提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序[11]。

例如:

.OpenGL提供一系列的三维图形单元供开发者调用

.OpenGL提供一系列的图形变换函数

.OpenGL提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、键盘、空间球、数据手套等这种直观的三维图形开发环境体现了OpenGL的技术优势,这也是许多三维图形开发者热衷于OpenGL的缘由所在。

1.2.3OpenGL成为目前三维图形开发标准

在计算机发展初期,人们就开始从事计算机图形的开发。

直到计算机硬软件和计算机图形学高度发达的九十年代,人们发现复杂的数据以视觉的形式表现时是最易理解的,因而三维图形得以迅猛发展,于是各种三维图形工具软件包相继推出,如PHIGS、PEX、RenderMan等。

这些三维图形工具软件包有些侧重于使用方便,有些侧重于渲染效果或与应用软件的连接,但没有一种三维工具软件包在交互式三维图形建模能力、外部设备管理以及编程方便程度上能够OpenGL相比拟。

OpenGL经过对GL的进一步发展,实现二维和三维的高级图形技术,在性能上表现得异常优越,它包括建模、变换、光线处理、色彩处理、动画以及更先进的能力,如纹理影射、物体运动模糊等。

OpenGL的这些能力为实现逼真的三维渲染效果、建立交互的三维景观提供了优秀的软件工具。

OpenGL在硬件、窗口、操作系统方面是相互独立的。

许多计算机公司已经把OpenGL集成到各种窗口和操作系统中,其中操作系统包括UNIX、WindowsNT、DOS等,窗口系统有X窗口、Windows等。

为了实现一个完整功能的图形处理系统,设计一个与OpenGL相关的系统结构为:

其最底层是图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,第五层为应用软件。

OpenGL是网络透明的,在客户—服务器(Client-Server)体系结构中,OpenGL允许本地和远程绘图。

所以在网络系统中,OpenGL在X窗口、Windows或其它窗口系统下都可以以一个独立的图形窗口出现[12]。

OpenGL作为一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。

由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,OpenGL应用程序具有广泛的移植性。

因此,OpenGL已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。

1.3课题研究的内容和技能要求

作为一门新兴学科,可视化技术所研究的内容集中在使抽象的数据呈现出客观世界的缤纷五彩与绚丽多姿。

类繁多的信息源产生的大量数据,远远超出了人脑分析解释这些数据的能力。

由于缺乏大量数据的有效分析手段,大约有95%的计算被浪费,这严重阻碍了科学研究的进展。

为此,美国计算机成像专业委员会提出了解决方法——可视化。

可视化技术作为解释大量数据最有效的手段而率先被科学与工程计算领域采用,并发展为当前热门的研究领域——科学可视化。

 可视化把数据转换成图形,给予人们深刻与意想不到的洞察力,在很多领域使科学家的研究方式发生了根本变化。

可视化技术的应用大至高速飞行模拟,小至分子结构的演示,无处不在。

在互联网时代,可视化与网络技术结合使远程可视化服务成为现实,可视区域网络因此应运而生。

[9]它是SGI公司在2002年3月提出的新理念。

它的核心技术是可视化服务器硬件和软件。

 

科学可视化的主要过程是建模和渲染。

建模是把数据映射成物体的几何图元。

渲染是把几何图元描绘成图形或图像。

渲染是绘制真实感图形的主要技术。

严格地说,渲染就是根据基于光学原理的光照模型计算物体可见面投影到观察者眼中的光亮度大小和色彩的组成,并把它转换成适合图形显示设备的颜色值,从而确定投影画面上每一像素的颜色和光照效果,最终生成具有真实感的图形。

真实感图形是通过物体表面的颜色和明暗色调来表现的,它和物体表面的材料性质、表面向视线方向辐射的光能有关,计算复杂,计算量很大。

因此工业界投入很多力量来开发渲染技术[6]。

由于本课题所研究的内容只是基于探计基于OpenGL的三维场景绘制,所以所要求的技能仅是一门熟练编程语言,如C++,并且,能够使用OpenGL所提供的函数接口,进行简单的图形绘制。

另外就是能使用一个开发工具,如本课题所采用的VC++。

技能要求并不是太复杂,一般的初学者都能够完成。

第2章需求分析与可行性研究

2.1可行性分析

2.1.1技术可行性

毕业设计项目的开发是大学专业知识的一次综合应用与提高,本课题是基于Windows的操作平台下,以VisualC++6.0为集成开发环境。

C++语言支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。

OpenGL是用于开发简捷的交互式二维和三维图形应用程序的最佳环境,任何高性能的图形应用程序,从3D动画、CAD辅助设计到可视化访真,都可以利用OpenGL高质量、高性能的特点。

众所周知,OpenGL是目前国际上通用的开放式图形标准,它为编程人员提供了强大的二维和三维图形功能,包括变换、着色、光照、纹理、材质、明暗处理以及帧缓存等[7]。

OpenGL具有功能强大的图形库,而VisualC++具有完善的基础类库和应用程序开发向导,在基于MFC的环境下如何将二者完美地结合在一起开发出高品质的三维图形应用程序是个值得深入研究的课题。

而在本课题中,通过选择不同的纹理表现出不同的效果,虽然原理复杂,可能并非一般人能懂,但是属于内层性知识,用户不必理解其功能是如何实现的,只需了解如何操作。

而本课题操作简单,容易上手,不需用户深入了解课题内层知识。

2.1.2经济可行性

本系统仅是作为实现虚拟现实中的某一环节而实现。

软件方面,仅需安VisualC++6.0的支持。

硬件方面,是一台安装了Windows操作平台的计算机。

由于仅立足于对基于OpenGL的三维场景绘制,故一个人也完成全部工作,并且没有其它的方面工作的投入。

因此经济上没有投入。

本课题的研究仅是为了增强基于OpenGL的三维场景绘制的兴趣,对涉及到更为复杂的东西不进行控讨,所以,经济可行性不在探讨之列,也可以说,经济可行性完全符合。

2.1.3操作可行性

众所周知,OpenGL是目前国际上通用的开放式图形标准,它为编程人员提供了强大的二维和三维图形功能,包括变换、着色、光照、纹理、材质、明暗处理以及帧缓存等。

而做为开发人员的我们,刚要充分考虑到用户在使用基于OpenGL的应用程序时的感受,以及利用MFC和OpenGL的相结合的特性,设计出视觉直观、操作简单的应用程序。

操作直观,不涉及程序内层,用户很容易理解。

2.2需求分析

基于OpenGL的三维场景绘制,是立足于虚拟现实技术进行的课题研究。

近些年来,虚拟现实技术的应用前景十分广阔。

它始于军事和航空航天领域的需求,但近年来,虚拟现实技术的应用已大步走进工业、建筑设计、教育培训、文化娱乐等方面。

通过综合利用计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。

使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其他客观限制,感受到真实世界中无法亲身经历的体验。

它正在改变着我们的生活。

而基于OpenGL的三维场景绘制,是以虚拟现实的技术为主要依据。

作为用户对系统的需求,基于OpenGL的三维场景,我们在构造了三维物体之后,需要对其进行光照模型、材质属性等处理,让其实现立体感觉与真实感,最后,为了达到虚拟现实的根本要求,与用户实现交互功能。

2.3环境需求

2.3.1开发工具及运行环境介绍

VisualC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台,是微软公司在其Windows操作系统下进行应用程序开发的最重要的产品,是系统级应用开发工具,是运用面向对象思想进行软件项目开发的得力工具。

它使得软件开发能够在源码级、类级、控件级等多个级别上重用,不仅加快了软件开发效率,而且提高了软件的可重用性和顽健性。

VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在Windows平台无所不能[10]。

VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。

VC++应用程序的开发主要有两种模式,一种是WINAPI方式,另一种则是MFC方式,传统的WINAPI开发方式比较繁琐,而MFC则是对WINAPI再次封装,所以MFC相对于WINAPI开发更具备效率优势[1]。

系统在Windows2000/XP系统下均可运行,计算机只需安装VC++,并在相应文档中添加OpenGL函数库相关头文件及动态链接文件即可。

2.3.2C++语言及其特点

C++它是一种使用非常广泛的计算机编程语言。

是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。

它支持过程化程序设计、数据抽象、面向对象程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1