欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    计算机科学与技术专业毕业论文28487.doc

    • 资源ID:4031473       资源大小:1.45MB        全文页数:46页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机科学与技术专业毕业论文28487.doc

    基于OpenGL的纹理映射实现与应用The implementation and application oftexture mapping based on OpenGL系(院)名称: 计算机科学与信息工程学院 专业名称: 计算机科学与技术 基于OpenGL的纹理映射实现与应用摘要:随着计算机多媒体技术、可视化技术及图形学技术的发展,我们可以使用计算机来精确地再现现实世界中绚丽多彩的三维物体,并充分发挥自身的创造性思维,通过人机交互来模拟、改造现实世界,这就是目前最为流行的虚拟现实技术。通过这种技术,建筑工程师可以直接设计出美观的楼房模型;军事指挥员可以模拟战场进行军事推演,网民可以足不出户游览故宫博物馆等名胜古迹等。而虚拟现实技术最重要的一部分内容就是三维图形编程。它已经成为一个工业标准的计算机三维图形软件开发接口,并广泛应用于游戏开发、建筑、产品设计、医学、地球科学、流体力学等领域。值得一提的是,虽然微软有自己的三维编程开发工具DirectX,但它也提供OpenGL图形标准,因此,OpenGL可以在计算机中广泛应用4。虚拟现实技术是计算机图形学的一个分支。OpenGL 是功能强大的开放式图形库。论文运用OpenGL工具在MFC单文档平台下创建了一个虚拟三维环境,绘制一些常见的虚拟物体, 利用纹理映射增加物体的真实感。关键词:系统设计 OpenGL技术 三维图形设计 纹理映射 虚拟现实 The implementation and application of texture mapping Based On OpenGLAbstract:With the development of the Internet and the multimedia technology, visualization technology, Graphics technology, We can accurately emersion the 3D object in the reality world that use computer, and completely exert the creationary thinking of ourselves. Through man-machine conversation to simulate or transform the real world, thats the most fashionably technology of the Virtual Reality. Through this technology, the architect could design the beauty model of building directly; The military commander could imitate battlefield for a sham battle, the web cam could excurse museum,scenic spot and historic resort being confined at home. And the most important of the Virtual Reality technology is 3D photograph programme.Its become a soft development connection of Industrial standard for computers 3D photograph,and widely utilizes in game design, architecture, porduct design, medicine, geoscience, hydromechanics domain. What is worth mentioning is, although the Microsoft have his own 3D programmer development kit,Directx, he also offer OpenGL photograph standard, so, OpenGL could use in computer widely. Virtual reality technology is a computer graphics branching. OpenGL is the function formidable open style graph storehouse. This design implements a virtual three-dimensional environment with OpenGL on MFC single document platform, and draws up some common hypothesized objects, increases the realistic of object by the texture mapping.Key Word:System design; Texture mapping; OpenGL technology; 3D photograph design;Virtual Reality; 目 录引 言1第1章系统概述21.1课题研究的背景及意义21.2目前国内外相关研究和发展趋向31.2.1可视化是计算机程序设计的发展趋势31.2.2OpenGL提供直观的三维图形开发环境41.2.3OpenGL成为目前三维图形开发标准51.3课题研究的内容和技能要求6第2章需求分析与可行性研究72.1可行性分析72.1.1技术可行性72.1.2经济可行性72.1.3操作可行性72.2需求分析82.3环境需求82.3.1开发工具及运行环境介绍82.3.2C+语言及其特点92.3.3OpenGL及其特点102.4软硬件需求122.4.1软件平台122.4.2硬件平台12第3章系统总体设计133.1程序说明133.1.1图形项目说明133.1.2术语定义133.2基本设计概念和流程133.2.1软件系统创意的简要说明133.2.2系统初始化133.2.3对象模型的建立153.2.4光照及材质属性设置163.2.5交互设计17第4章系统详细设计184.1系统初始化184.1.1画图前的初始化194.1.2数据载入254.2模型建立及属性设置254.2.1建立场景空间模型264.2.2光照属性设置274.2.3纹理映射284.2.4交互设计31第5章系统测试345.1测试的目标345.2测试的对象345.2.1功能应用测试345.2.2性能测试375.2.3兼容性测试37结 论39致 谢40参考文献41引 言计算机图形学是伴随着计算机技术在图形处理领域中的应用而发展起来的一门实践性的学科,是游戏、数字媒体、计算机视觉、图像处理、地理信息系统、计算机辅助设计等专业技术的基础。计算机图形学的应用领域非常广泛,已经渗透到科研、工程、商业、艺术等社会生活和工业生产的几乎一切领域,并与这些领域的发展相互推动和促进4。随着计算机软硬件技术的不断进步,人们发现复杂的数据结构以可视的形式加以表达更容易为人们所理解。因此,计算机图形学的研究目标之一便是通过计算机将数据转变为图形,并在有关的设备上以特定的形式加以显示。为了方便这一转换过程,避免不必要的重复劳动,人们设计了各种各样的辅助编程工具,并将它们打包以公共图库的形式加以推介。这些图库的一个共同特点是:都提供了一些标准的点、线、面、体的建模方法以及一些标准的图形变换方法,甚至还提供一些外部图形设备的访问接口。不过,OpenGL走得更远。它除了提供上述通用建模和变换方法之外,更提供了光照处理、反走样、混合、雾化、纹理映射及动画等功能。OpenGL被设计成一个独立于硬件的软件编程接口,适用于多种不同的计算环境,包括个人计算机、图形工作站、超级计算机及多机互连的网络环境。OpenGL应用开发的这种广泛适应性给从事三维图形开发的人员带来的好处是不言而喻的。同时,OpenGL业已成为广大图形开发人员的必备工具。OpenGL是近几年发展起来的一个性能卓越的三维图形平台,OpenGL的显著优点是作为一个独立的工作平台,独立于硬件设备、窗口系统和操作系统,用它编写的软件可以在UNIX、Windows95、Windows98/NT等系统间实现移植,并能在网络环境下以客户/服务器模式工作,专业图形处理、科学计算等高端应用领域的标准图形库。开发者可以在多种硬件平台及操作系统下很方便地利用OpenGL图形库,创建出具有照片质量的、独立于窗口系统、操作系统和硬件平台的三维彩色图形和动画。本课题提出了在MFC(Microsoft Foundation Class) 的框架下来实现MFC和OpenGL函数库结合绘制图形的方法,这种方法有效简化了应用程序与操作系统之间的连接,也符合面向对象的程序设计思想,提高了接口的通用性13。第1章 系统概述1.1 课题研究的背景及意义近年来,随着计算机图形学和计算机技术的发展,计算机可视化技术不断普及,创建"虚拟世界"也不断掀起热潮,而建立具有真实感的三维场景是建设"虚拟世界"的重要一步。为了适应未来信息的需要,必须提高人与信息社会的接口能力,提高人们对信息的理解能力。人们不再只要求能够通过人的视觉、听觉、触觉,参与到处理信息环境中去,而获得身临其境的体验。建立一个多维的信息空间,感性认识和理性认识相结合的综合集成环境,而虚拟现实技术将是支撑这个信息空间的关键技术。80年代末、90年代初国际和国内形成对虚拟现实的热潮,为人们带来了一个绚丽多彩的虚拟的计算机视觉世界。 虚拟现实技术(Virtual Reality ,简称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公司在Windows NT中提供OpenGL图形标准,OpenGL将在微机中广泛应用,尤其是OpenGL三维图形加速卡和微机图形工作站的推出,人们可以在微机上实现三维图形应用,如CAD设计、仿真模拟、三维游戏等,从而更有机会、更方便地使用OpenGL及其应用软件来建立自己的三维图形世界7。因此,虚拟现实技术便应运而生。虚拟现实(简称VR),又称灵境技术,是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面。他综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其他客观限制,感受到真实世界中无法亲身经历的体验2。1.2.2 OpenGL提供直观的三维图形开发环境OpenGL实际上是一种图形与硬件的接口。它包括了120个图形函数,开发者可以用这些函数来建立三维模型和进行三维实时交互。与其他图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数,因此初学的程序设计员也能利用OpenGL的图形处理能力和1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。OpenGL强有力的图形函数不要求开发者把三维物体模型的数据写成固定的数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其他不同格式的数据源。这种灵活性极大地节省了开发者的时间,提高了软件开发效益4。长期以来,从事三维图形开发的技术人员都不得不在自己的程序中编写矩阵变换、外部设备访问等函数,这样为调制这些与自己的软件开发目标关系并不十分密切的函数费脑筋,而OpenGL正是提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序11。例如: . OpenGL提供一系列的三维图形单元供开发者调用 . OpenGL提供一系列的图形变换函数 . OpenGL提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、键盘、空间球、数据手套等这种直观的三维图形开发环境体现了OpenGL的技术优势,这也是许多三维图形开发者热衷于OpenGL的缘由所在。1.2.3 OpenGL成为目前三维图形开发标准在计算机发展初期,人们就开始从事计算机图形的开发。直到计算机硬软件和计算机图形学高度发达的九十年代,人们发现复杂的数据以视觉的形式表现时是最易理解的,因而三维图形得以迅猛发展,于是各种三维图形工具软件包相继推出,如PHIGS、PEX、RenderMan等。这些三维图形工具软件包有些侧重于使用方便,有些侧重于渲染效果或与应用软件的连接,但没有一种三维工具软件包在交互式三维图形建模能力、外部设备管理以及编程方便程度上能够OpenGL相比拟。OpenGL经过对GL的进一步发展,实现二维和三维的高级图形技术,在性能上表现得异常优越,它包括建模、变换、光线处理、色彩处理、动画以及更先进的能力,如纹理影射、物体运动模糊等。OpenGL的这些能力为实现逼真的三维渲染效果、建立交互的三维景观提供了优秀的软件工具。OpenGL在硬件、窗口、操作系统方面是相互独立的。许多计算机公司已经把OpenGL集成到各种窗口和操作系统中,其中操作系统包括UNIX、Windows NT、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的操作平台下,以Visual C+6.0为集成开发环境。C+语言支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。OpenGL是用于开发简捷的交互式二维和三维图形应用程序的最佳环境,任何高性能的图形应用程序,从3D动画、CAD辅助设计到可视化访真,都可以利用OpenGL高质量、高性能的特点。众所周知,OpenGL是目前国际上通用的开放式图形标准,它为编程人员提供了强大的二维和三维图形功能,包括变换、着色、光照、纹理、材质、明暗处理以及帧缓存等7。OpenGL具有功能强大的图形库,而Visual C+具有完善的基础类库和应用程序开发向导,在基于MFC的环境下如何将二者完美地结合在一起开发出高品质的三维图形应用程序是个值得深入研究的课题。而在本课题中,通过选择不同的纹理表现出不同的效果,虽然原理复杂,可能并非一般人能懂,但是属于内层性知识,用户不必理解其功能是如何实现的,只需了解如何操作。而本课题操作简单,容易上手,不需用户深入了解课题内层知识。2.1.2 经济可行性本系统仅是作为实现虚拟现实中的某一环节而实现。软件方面,仅需安Visual C+ 6.0的支持。硬件方面,是一台安装了Windows操作平台的计算机。由于仅立足于对基于OpenGL的三维场景绘制,故一个人也完成全部工作,并且没有其它的方面工作的投入。因此经济上没有投入。本课题的研究仅是为了增强基于OpenGL的三维场景绘制的兴趣,对涉及到更为复杂的东西不进行控讨,所以,经济可行性不在探讨之列,也可以说,经济可行性完全符合。2.1.3 操作可行性众所周知,OpenGL是目前国际上通用的开放式图形标准,它为编程人员提供了强大的二维和三维图形功能,包括变换、着色、光照、纹理、材质、明暗处理以及帧缓存等。而做为开发人员的我们,刚要充分考虑到用户在使用基于OpenGL的应用程序时的感受,以及利用MFC和OpenGL的相结合的特性,设计出视觉直观、操作简单的应用程序。操作直观,不涉及程序内层,用户很容易理解。2.2 需求分析基于OpenGL的三维场景绘制,是立足于虚拟现实技术进行的课题研究。近些年来,虚拟现实技术的应用前景十分广阔。它始于军事和航空航天领域的需求,但近年来,虚拟现实技术的应用已大步走进工业、建筑设计、教育培训、文化娱乐等方面。通过综合利用计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其他客观限制,感受到真实世界中无法亲身经历的体验。它正在改变着我们的生活。而基于OpenGL的三维场景绘制,是以虚拟现实的技术为主要依据。作为用户对系统的需求,基于OpenGL的三维场景,我们在构造了三维物体之后,需要对其进行光照模型、材质属性等处理,让其实现立体感觉与真实感,最后,为了达到虚拟现实的根本要求,与用户实现交互功能。2.3 环境需求2.3.1 开发工具及运行环境介绍Visual C+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c+的一个开发平台,是微软公司在其Windows操作系统下进行应用程序开发的最重要的产品,是系统级应用开发工具,是运用面向对象思想进行软件项目开发的得力工具。它使得软件开发能够在源码级、类级、控件级等多个级别上重用,不仅加快了软件开发效率,而且提高了软件的可重用性和顽健性。VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能10。VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC+不是门语言,虽然它和C+之间有密切的关系,如果形象点比喻的话,可以把C+看作为一种“工业标准”,而VC+则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。VC+应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势1。系统在Windows2000/XP系统下均可运行,计算机只需安装VC+,并在相应文档中添加OpenGL函数库相关头文件及动态链接文件即可。2.3.2 C+语言及其特点C+它是一种使用非常广泛的计算机编程语言。是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C+语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C+语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。用C+编写的程序可读性好,生成的代码质量高,运行效率仅比汇编语言慢10%20%。C+以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C+完美地体现了面向对象的各种特性,主要有以下特点2:1、语句简练、语法结构清晰、紧凑,使用方便、灵活。2、程序结构简单、书写格式自由。3、数据类型丰富、齐全。标准C供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型。C+还增加了类这一特殊数据类型的定义机制。4、运算符丰富、齐全,运算能力强。C提供的运算符分为常规运算和与硬件有关的运算两部分:u 常规运算符算术运算符、逻辑运算符、关系运算符等,这类运算符各种语言一般都具备; u 与硬件有关的运算符位运算符、地址运算符等,这些运算符是C所独有的,体现出汇编语言的某些特征。5、语法限制不太严格,程序自由度大。6、C编译系统生成的目标代码质量高,程序执行效率高。程序可移植性强。语言的通用性较强。C+包含了整个C,因此也继承了C的全部特征和优点,同时添加了对 OOP的完全支持。7、C+语言引入了类与对象机制,包括类的定于,类的继承与派生,类的多态性等。8、C+语言一方面自定义结构类型进行扩充,另一方面也支持新的类构造。2.3.3 OpenGL及其特点OpenGL是用于开发简捷的交互式二维和三维图形应用程序的最佳环境,任何高性能的图形应用程序,从3D动画、CAD辅助设计到可视化访真,都可以利用OpenGL高质量、高性能的特点。OpenGL自1992年出现以来,逐渐发展完善,已成为一个唯一开放的,独立于应用平台的图形标准,一个典型的OpenGL应用程序可以在任何平台上运行-只需要使用目标系统的OpenGL库重新编译一下。 OpenGL非常接近硬件,是一个图形与硬件的接口,包括了100多个图形函数用来建立三维模型和进行三维实时交互。OpenGL强有力的图形函数不要求开发人员把三维物体模型的数据写成固定的数据格式,也不要求开发人员编写矩阵变换、外部设备访问等函数,大大地简化了编写三维图形的程序6。例如:1、OpenGL提供一系列的三维图形单元(图元)供开发者调用。2、OpenGL提供一系列的图形变换函数。 3、OpenGL提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标键盘、空间球、数据手套等外部设备。由于微软在Windows中包含了OpenGL,所以OpenGL可以与Visual C+紧密接合,简单快捷地实现有关计算和图形算法,并保证算法的正确性和可靠性。简单地说,OpenGL具有建模、变换、色彩处理、光线处理、纹理影射、图像处理、动画及物体运动模糊等功能8:1、建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体,如球、锥、多面体、茶壶以及复杂曲线和曲面(例如Bezier、Nurbs等曲线或曲面)的绘制函数。2、变换:OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比、镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。3、颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。4、光照和材质设置:OpenGL光有辐射光(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和镜面光(Specular Light)。材质是用光反射率来表示。客观世界中的物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。5、纹理映射(Texture Mapping):利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。6、位图显示和图象增强:OpenGL的图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可是被仿真物更具真实感,增强图形显示的效果。7、双缓存动画(Double Buffering):OpenGL使用了前台缓存和后台缓存交替显示场景(Scene)技术,简而言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。8、特殊效果:利用OpenGL还能实现深度暗示(Depth Cue)、运动模糊(Motion Blur)等特殊效果。运动模糊的绘图方式(motion-blured),模拟物体运动时人眼观察所感觉的动感现象。深度域效果(depth-of-effects),类似于照相机镜头效果,模型在聚焦点处清晰,反之则模糊。其工作流程如图2.1:几何顶点数据图像顶点数据显示列表运算器逐个顶点操作纹理映射帧缓冲区光栅化逐个顶点操作和图元组装图像操作图2.1 OpenGL工作流程根据这个流程,我们可以归纳出在OpenGL中进行主要的图形操作直至在计算机屏幕上渲染绘制出三维图形景观的基本步骤:1、根据基本图形单元建立景物模型,并且对所建立的模型进行数学描述(OpenGL中把:点、线、多边形、图像和位图都作为基本图形单元)。2、把景物模型放在三维空间中的合适的位置,并且设置视点(viewpoint)以观察所感兴趣的景观。3、计算模型中所有物体的色彩,其中的色彩根据应用要求来确定,同时确定光照条件、纹理粘贴方式等。4、把景物模型的数学描述及其色彩信息转换至计算机屏幕上的象素,这个过程也就是光栅化(rasterization)。2.4 软硬件需求2.4.1 软件平台u 操作系统:Windows xp/ Windows 2000。u 集成开发环境: VC+ 6.0 Vistual Studio 2005 or Vistual Studio 2008u 开发语言:C+u 分辨率:最佳效果1280×1024像素。(1024 X 768 亦可)2.4.2 硬件平台u CPU:P41.5GHzu 内存:256MB以上第3章 系统总体设计3.1 程序说明3.1.1 图形项目说明本系统计划实现对环境中漂浮的三维物体进行不同纹理的加载。方法是先绘制多个三维空间物体,然后采用纹理贴图让其呈现出不同的效果。再通过旋转和光照设置,让其呈现出立体的,具有真实感的三维场景。3.1.2 术语定义大多数OpenGL命令都是以"gl"开头的。也有一些是以"glu"开头的,它们来自OpenGL Utility。大多数"gl"命令在名字中定义了变量的类型并执行相应的操作。例如:glVertex2f就是定义了一个顶点,参数变量为两个浮点数, 分别代表这个顶点的x、y坐标。类似的还有glVertex2d、glVertex2f、glVertex3I、glVertex3s、 glVertex2sv、glVertex3dv等函数5。在此系统中,因为涉及到C+语言和OpenGL函数,而在C+语言中关于数据类型的定义与OpenGL函数中关于数据类型的定义有所不同。因为,编写代码时,在涉及到数据类型定义时,均采取与OpenGL中数据类型定义近似的方法对其进行定义。3.2 基本设计概念和流程3.2.1 软件系统创意的简要说明本软件系统的创意来自于互联网上时下流行的3D游戏环境。在游戏场景的畅游过程中,发现各种场景皆可真实如斯,无论是现代城市中的房屋、车辆,还是森林场景中的树木、花草、山峰等皆可实现。对它的细腻的真实感到惊讶,于是,决心实现其中的某些功能。试图实现其三维物体的创造,并自主选择所加载的纹理。因此,便产生了本系统。3.2.2 系统初始化在InitializeOpenGL()中会创建一个设备上下文(DC),为这个DC选择一个像素格式,创建和这个DC相关的绘制上下文(RC),然后选择这个RC.这个函数会调用SetupPixelFormat()来建立像素格式,调用SetLogicalPalette()设置逻辑调色板15。BOOL CDifferentView:SetupPixelFormat()PIXELFORMATDESCRIPTOR pfd =

    注意事项

    本文(计算机科学与技术专业毕业论文28487.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开