搜索
您的当前位置:首页基于OpenGL的三维立体校园地图系统关键技术的研究与实现

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

来源:智榕旅游
分类号 UDC

TP

学校代码 10590 密 级 公开

深圳大学硕士学位论文

基于OpenGL的三维立体校园地 图系统关键技术的研究与实现

刘志荣

学 科 门 类 专 业 名 称

工学

计算机应用技术

学院(系、所) 信息工程学院 指 导 教 师

黄培之 教授

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

摘 要

目前传统的印刷地图和平面电子地图主要表现出二维的地理空间信息,而用户则越来越多地需要三维地图可视化来观察、分析和处理各种相关的三维问题,二维平面地图无法体现三维空间信息,具有很大的局限性。近年来,随着计算机图形、图像学理论及计算机软、硬件技术的迅速发展,使得二维地图信息无法满足当今实际需要的问题得到解决成为可能,这就是计算机三维立体地图需要研究的目的所在。

计算机三维立体图像显示技术,是虚拟现实(VR)的一个重要分支,并且应用到建筑、旅游、游戏、航空航天、医学等众多方面,自从上个世纪八十年代以来就备受人们的关注,而且取得了相当好的成果。计算机三维立体地图的研究包括许多的学科知识,包括地理信息、计算机图形学、计算机数字图像学、虚拟现实、计算机数据库、计算机编程等相关的学科。本文首先对OpenGL的三维图形显示技术几个关键技术进行了研究,包括OpenGL图形的绘制、OpenGL的颜色与纹理映射和OpenGL的三维变换等技术。然后研究了采用3ds Max建模工具对建筑物进行建模,并用OpenGL技术进行三维重建,同时还对三维立体校园地图的其它构成要素进行了研究,包括地图地形的建立、真实感天空的绘制、平面树木在三维空间中的动态显示以及粒子系统在三维景观喷泉中的应用等。从研究得知三维立体地图并不是二维平面地图的简单扩展,还要从三维模型数据、空间关系、显示技术和对它的操作等方面进行系统的研究。

在基于三维立体技术研究的同时,本文还以深圳大学校园为例,对三维立体地图的地形数据的获取、建立和显示,建筑物模型的建模、转换及可视化,自然界景观的模拟等相关技术进行了研究和系统实现,该系统是基于OpenGL的图形显示技术,并借助3ds Max软件工具进行建模,采用面向对象编程技术在Microsoft Visual C++ 6.0下实现。本文为计算机三维立体地图的进一步研究以及相关技术的研究提供了可以借鉴的经验。

关键词:三维立体地图;三维建模;虚拟漫游;OpenGL

Research and System Implement in Key Technnlogies of 3D Campus Map based on OpenGL

Abstract

The tradition printing map and the flat surface electron map show two-dimensional geographical feature space information at present mainly,the consumer need to observe,analyse and handle the problem of three-dimensional,but the two-dimensional map can't embody the three-dimensional space information,having very big limitation.In recent years,with rapid developing of the computer graphics,the computer image and the computer software and hardware technology,the problem can be solved that two-demensional map can't satisfy modern requirements,this is the research intention of the computer three-dimensional map.

The computer three-dimensional graphics technology is a important branch of virtual reality,and be applied to architecture, travel,computer game,aviation,spaceflight,iatrology and others, have arrested people's attention since 1980's,and have got quite good achievement.Since the restraint of computer hardware and relevance technology,the research of three-dimensional map applied technique have not gotten very good research result,either the relevance application.The research of three-dimensional computer map includes a lot of discipline knowledge,such as geographical infomation,computer graphics,computer image,virtual reality,computer database,programme and other relevance disciplines. This dissertation researches on a few key techniques about OpenGL 3D graphics,including drawing,color and texture mapping,3D matrix transformation.Then it sets up modeling for buildings with 3ds Max,and uses OpenGL technology to rebuild,meanwhile,researches on other elements of 3D campus map,including building of map terrain,drawing of third dimension sky,dynamic display of 2D trees in 3D space,the application of particle system in 3D fountain.After research the author think that 3D map is not just a simple extentation of 2D map,some other technology,such as 3D model data,space relation,display technology and the operation must be researched systematically.

After research the 3D technology,the author takes the Shenzhen University for example,implements the system,which including the obtainment,building and display of the 3D map terrain,and modeling,transformation and visualization of the building model.This system is based on the OpenGL display technology,use the 3ds Max as the modeling tool,and implement in the Microsoft Visual C++ 6.0 based on object-oriented programming technology.This paper could provide some experiences for the further research in three-dimensional map and other relevant technologies.

Keywords: 3D map;3D Modeling;Virtual Walkthrough;OpenGL

目 录

摘要 ....................................................Ⅰ Abstract ................................................Ⅱ 第一章 绪论...............................................1 1.1 三维立体地图技术概述...............................1 1.2 三维图形与虚拟现实的现状..........................5 1.3 本文研究的主要目的和研究内容......................7 1.4 本章小结..........................................7 第二章 基于OpenGL的三维图形显示的关键技术...............8 2.1 OpenGL简介.......................................8 2.2 OpenGL的绘图技术................................11 2.3 OpenGL的颜色与纹理映射..........................13 2.4 OpenGL的变换....................................17 2.6 本章小结.........................................24 第三章 三维立体校园地图中主要建筑物构建技术.............25 3.1校园建筑物场景模型简述...........................25 3.2 建筑物模型的建立.................................27 3.3 3DS文件简述.....................................28 3.4 导入3DS文件的程序结构...........................32 3.5 建立OpenGL三维模型的结构........................33 3.6 本章小结.........................................35 第四章 三维立体校园地图中其它场景构建技术...............36 4.1 校园地图地形的建立...............................36 4.2 真实感天空的绘制.................................38

4.3 平面树木在三维空间的动态显示.....................41 4.4 基于粒子系统喷泉景观的生成.......................44 4.5 本章小结.........................................47 第五章 三维立体校园地图系统的设计与实现..................48 5.1 三维立体校园地图系统简述.........................48 5.2 系统的总体设计...................................49 5.3 用户视点的操作控制...............................51 5.4 三维地图中二维平面地图的调用.....................55 5.5 系统状态的显示...................................56 5.6 系统的实现情况...................................57 5.7 本章小结.........................................61 第六章 结论和展望........................................62 6.1 研究工作总结.....................................62 6.2 展望.............................................63 参考文献.................................................65 致谢.....................................................67

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

第一章 绪 论

1.1

三维立体地图技术概述

近几年来,随着高等教育管理体制的改革,招生人数在不断扩大,高校纷纷建立新校区或合并重组,并投入大量资金进行校园建设,增建了许多现代化设计的建筑物和令人流连忘返的校园景点,而平面的校园地图并不能满足这些高校校园变化要求,如何向外展示校园的建筑和美景已经成为高校的迫切要求,三维立体校园地图便是这一迫切需要下的产物。

在二十一世纪的今天,计算机技术的发展日新月异,计算机图形学取得了突飞猛进的发展,随着大量新型算法的不断提出,计算机生成的图像也越来越逼真;各种图像新技术的产生,使用户操作计算机的方式也越来越自然;随着计算机性能的不断提高,图形图像的生成速度也成倍提高。以上各项技术的不断发展,使得三维立体校园的实现成为可能[4]。

本文利用虚拟现实技术,研究在计算机中模拟再现校园的三维真实景观,即三维立体校园地图。三维立体校园地图系统的实现,将有助于各种用户进入三维立体的校园中进行自由的游览,如同身在校园之中一般。另一方面可以给高校各领导用来辅助解决校园规划、设计中的一些问题,给学校的各项工作带来很大的便利[5]。虚拟校园的研究与建立还可以大大提高校园的知名度,特别是对于那些具有特色的高校建筑物和美丽校园的高校而言,可以为学校带来可观的社会效益。作为城市建设的一个组成部分,三维立体校园的建设也将会推动校园所在城市的建设,为整个城市的信息化打下良好的基础将具有极其重要的研究意义。

三维立体校园地图是虚拟现实中的一个分支应用,虚拟现实技术(简称VR),是一种基于可计算信息的沉浸式交互环境。随着信息技术的发展,人们己经不满足于从外部观察信息处理的结果,而是希望通过视觉、听觉、触觉、嗅觉及形体、手势或口令,参与到信息处理的环境中去,获得身临其境的体验。虚拟现实技术就是提供了一种既能创建又能体验虚拟世界的沉浸式交互环境,使用户可以以自

1

[1][6]

。所以三维立体校园的研究

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

然的方式与虚拟环境中的对象交互,从而产生等同于真实环境的感受和体验。正是这一强烈的需求成为虚拟现实技术兴起的巨大牵引力。近年来,虚拟现实技术取得了令人瞩目的成就,被认为是21世纪可能使世界发生巨大变化的决定性技术之一。一个身临其境的虚拟环境系统是由包括计算机图形学、图像处理与模式识别、智能接口技术、人工智能技术、多传感器技术、语音处理与音像技术、网络技术、并行处理技术和高性能计算机系统等不同功能、不同层次的具有相当规模的子系统所构成的大型综合集成环境。

虚拟现实系统就是要利用各种先进的硬件技术及软件工具,设计出合理的硬件、软件及交互手段,使参与者能交互式地观察和操纵系统生成的虚拟世界。从概念上讲,任何一个虚拟现实系统都具有沉浸性、交互性和想象性[3] [7] [8]。沉浸性就是使用者与计算机完全通过自然的交互方式,完全沉浸在计算机所营造的三维立体环境中。交互性是虚拟现实系统区别于传统三维动画的特征,使用者不再是被动地接受信息或者是旁观,而是能够使用交互输入设备操纵虚拟物体,改变三维虚拟世界。想象性是指使用者利用虚拟现实系统可以从定性和定量综合集成的环境中得到感性和理性的认识从而深化概念和萌发新意。这三个特征反映了虚拟现实系统的关键特性,就是系统与人的充分交互,它强调人在虚拟现实环境中的主导作用,也就是将数字化的单维信息改变为人能感受到的、在思维过程中所接触到的、除了数字化信息之外的其他各种表示形式的多维信息。

虚拟现实系统的设计首先要实现一个比较真实的三维立体虚拟场景,例如三维虚拟校园,则首先要实现三维立体校园的场景再现,即本文所讲的三维立体校园地图。

根据虚拟现实技术“沉浸性”程度的高低和交互程度的不同,我们可以把虚拟现实技术划分为四类[16][17][18]:

(1)沉浸式虚拟现实,它是一种高级的、较理想的虚拟现实系统,它提供了一个完全沉浸的体验,使用户有一种仿佛置身于真实世界之中的感觉。它利用头盔式显示器或其它设备,把参与者的视觉、听觉和其它感觉封闭起来,提供一个新的、虚拟的感觉空间,并利用位置跟踪器、数据手套、其它手控输入设备、声音等使得参与者产生一种身在虚拟环境中、并能全心投入和沉浸其中的感觉。

(2)桌面级的虚拟现实,桌面虚拟现实系统也称窗口虚拟现实,是利用个人计算机和初级图形工作站进行仿真,计算机的屏幕用来作为用户观察虚拟境界的

2

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

一个窗口,各种外部设备一般用来驾驭虚拟境界,并且有助于操纵在虚拟情景中的各种物体。这些外部设备包括鼠标,追踪球,力矩球等。它要求参与者使用位置跟踪器和另一个手控输入设备,如鼠标,追踪球等,坐在监视器前,通过计算机屏幕观察360度范围内的虚拟境界,并操纵其中的物体,但这时参与者并没有完全投入,因为它仍然会受到周围现实环境的干扰。桌面级的虚拟现实最大特点是缺乏完全投入的功能,但是由于其技术非常简单、实用性强,成本也相对低一些,因而应用面比较广。本文中的三维立体校园地图正是桌面级的虚拟现实中的一个分支应用。

(3)增强现实性的虚拟现实,增强现实性的虚拟现实不仅是利用虚拟现实技术来模拟现实世界、仿真现实世界,而且要利用它来增强参与者对真实环境的感受,也就是增强现实中无法感知或不方便感知的感受。这种类型虚拟现实典型的实例是战机飞行员的平视显示器,它可以将仪表读数和武器瞄准数据投射到安装在飞行员面前的穿透式屏幕上,它可以使飞行员不必低头读座舱中仪表的数据,从而可集中精力盯着敌人的飞机,这样可避免导航偏差。

(4)分布式虚拟现实,如果多个用户通过计算机网络连接在一起,同时参加一个虚拟空间,共同体验虚拟经历,那虚拟现实则提升到了一个更高的境界,这就是分布式虚拟现实系统。目前最典型的分布式虚拟现实系统是作战仿真互联网和SIMNET,作战仿真互联网(Defense Simulation Internet,DSI)是目前最大的VR项目之一。该项目是由美国国防部推动的一项标准,目的是使各种不同的仿真器可以在巨型网络上互联,它是美国国防高级研究计划局1980年提出的SIMNET计划的产物。SIMNET由坦克仿真器(Cab类型的)通过网络连接而成,用于部队的联合训练。通过SIMNET,位于德国的仿真器可以和位于美国的仿真器一样运行在同一个虚拟世界,参与同一场作战演习。

虚拟现实技术从出现,经过十几年的发展已经逐步走进了人们的日常生活,无论是在工程、游戏、广告宣传还是在建筑设计、军事仿真等领域都显示出强大魅力。

虚拟现实可应用于任何需要使用计算机来存储、管理、分析和理解复杂数据的领域。目前,虚拟现实的主要应用领域涉及到以下5个方面

[19]

(1)工程应用,建筑CAD、城市规划和总体设计仿真[20]虚拟现实技术给CAD操作人员提供了方便的手段,允许设计者从所有可能的角度来观看设计作品,在

3

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

实际绘图花费大量资金之前,帮助人们进行底图的设计和修改,形成完整的设计文档,允许其他设计者和领域工程师接触整个设计文档,在专家系统的帮助下,领域工程师可以从部分设备了解到整个系统信息。

(2)影视娱乐,VR技术在娱乐业有着极其广泛的应用。VR娱乐系统“BattleTech”,将每个“座舱”仿真器联网进行组之间的对抗,三维逼真视景、游戏杆、油门、刹车和受到打击时的晃动给用户很强的感官刺激。许多人在介绍VR时首先提到娱乐业,因为娱乐业广泛而又积极地接受了这项技术,开放的虚拟游乐环境越来越多,人们通过国际互连网络可以迅速得到虚拟现实接口。美国卡内基一梅隆大学有一个VR研究小组正在筹建基于计算机网络的虚拟艺术博物馆。这种艺术博物馆可以表现多种文化背景,通过虚拟现实手段,以不同艺术项目为节点,将人加到计算机网络中,人们可以在虚拟艺术环境中通信或遥控定位。

(3)高难度和危险环境下的训练服务于医疗手术训练的VR系统,用CT或MRI数据在计算机中重构人体或某一器官的几何模型,并赋予一定的物理特征(例如密度、韧度、组织比例等),并通过机械手或数据手套等高精度的交互工具在计算机中模拟手术过程,以达到训练、研究的目的。美国的NASA和ESA(欧洲空间局)曾成功地将VR技术应用于航天运载器的空间活动、空间站的自由操作和对哈勃空间的维修。

(4)教育培训将虚拟现实技术应用于教育可以使学生能够游览海底、遨游太空、观摩历史城堡,甚至深入原子内部观察电子的运动轨迹和体验爱因斯坦的相对论世界,从而更形象地获取知识,激发思维。分布式虚拟图书馆突破了物理时空的限制并有效地利用了共享资源,基于国际互联网的分布式虚拟图书馆具有巨大的前景。

(5)军事应用在虚拟环境中培训不仅可以减少费用,而且允许高度冒险的高难度培训与重新审查出现概率低的情况。领航员和医学人员能再现紧急过程,军事上可再现战争过程,警察可以用来恢复人质被劫持现场。虚拟现实世界没有实际后果,每个人都可以犯错误。军事领域是VR 技术最早研究和应用的领域。最早的分布式虚拟战场环境应该是1983 年DARPA和美国陆军共同制定的SIMNET研究计划。从1994年开始,美国DARPA与USACOM联合开展了战争综合演练场STOW的研究,形成了一个包括海陆空多兵种、3700个仿真实体参与、地域范围

2

覆盖 500x750 km的军事演练环境。

4

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

1.2 三维图形与虚拟现实的现状

1.2.1 国外的研究现状

当前虚拟现实技术在美国、西欧、日本等发达国家发展很快。美国开展虚拟现实研究最早,研究领域也最为广泛,并有一些典型的应用系统,美国的研究水平基本上代表了国际虚拟现实发展的水平。美国宇航局(NASA)研究的重点放在对空间站操纵的实时仿真上,大多数研究是放在NASA的约翰逊空间中心完成的。他们大量运用了面向座舱的飞机模拟技术.对哈勃太空望远镜的仿真就是NASA完成的一项著名的工作[11]。现在NASA已经建立了航空、卫星维护虚拟现实训练系统,空间站虚拟现实系统,并且已经建立了可供全国使用的虚拟现实教育系统

[9][10]

当前美国在虚拟现实领域的基础研究主要集中在感知、用户界面、后台软件

和硬件四个方面。美国的北卡罗来纳大学的计算机系是进行虚拟现实研究最早最著名的大学。他们主要研究分子建模、航空驾驶、外科手术仿真建筑仿真等。麻省理工大学是一个一直走在最新技术前沿的科学研究机构,他们的主要研究领域是“路径计划”与“运动计划”,华盛顿大学同时也在进行感知、知觉、认知和运动控制能力的研究。

1990年以后,欧洲关于虚拟现实的研究[12]进入了积极的发展阶段。1993年报道的虚拟现实市场排名旁列出了10个从事虚拟现实研究开发的中心,其中英格兰5个、苏格兰2个、法国、德国和瑞典各1个,这些中心的虚拟现实产品是以商品化娱乐为主。当然,从事虚拟现实基础研究的团体远远多于这个数目。

在使用虚拟现实技术的研究与开发方面,日本也是居于领先位置的国家之一,主要致力于建立大规模的虚拟实现知识库的研究

[13]

,另外在虚拟现实游戏方

面的研究也做出了很多工作。日本的东京技术学院研究了一个用于建立三维模型的人性化界面;NEC公司计算机和通信分部中的系统研究室开发了一种虚拟现实系统。东京大学的原岛研究室也开展了人类面部表情特征的提取、三维结构的判定和三维形状的表示、动态图像的提取这三方面的研究。除此之外,筑波大学、富士通实验室、松下电子有限公司等科研所均在虚拟现实技术方面有较深入的研

5

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

究。

1.2.2 国内的研究现状

虚拟现实技术是一项投资大,具有高难度的科技领域,和一些发达国家相比,我国还有一定的差距,但已引起政府有关部门和科学家们的高度重视。根据我国国情,制定了开展虚拟现实技术的研究,例如:九五计划、国家自然科学基金会、国家高科技研究发展计划等都把虚拟现实列入了研究项目。在紧跟国际新技术的同时,国内一些重点院校,已积极投入到了这一领域的研究工作。

北京航空航天大学是国内最早进行虚拟现实研究、最具有权威的单位之一,他们首先进行了一些基础知识方面的研究,并着重研究了虚拟环境中物体物理特性的表示与处理;在虚拟现实中的视觉接口方面开发出了部分硬件,并提出了有关算法及实现方法。实现了分布式虚拟环境网络设计,建立了网上虚拟现实研究论坛,可以提供实时三维动态数据库,提供虚拟现实演示环境,提供用于飞行员训练的虚拟现实系统,提供开发虚拟现实应用系统的开发平台,并将要实现与有关单位的远程连接[14][15]。

浙江大学CAD&CG国家重点实验室开发出了一套桌面虚拟建筑环境实时漫游系统,该系统采用了层面迭加的绘制技术和预消隐技术,实现了立体视觉,同时还提供了方便的交通工具,使整个系统的实时性和画面的真实感都达到了较高的水平,另外,他们还研制出了虚拟环境中一种新的快速漫游算法和一种递进网格的快速生成算法。

哈尔滨工业大学计算机系己经成功地虚拟出了人的高级行为中特定人脸图像的合成,表情的合成和唇动的合成等技术问题,并正在研究人说话时头势和手势动作,话音和语调的同步等。

此外清华大学计算机科学与技术系、西安交通大学信息工程研究所、中国科技开发院威海分院、北方工业大学CAD研究中心、广州园方公司、重庆大学CAD/CAM研究中心、西北工业大学CAD/CAM研究中心,上海交通大学图像处理及模式识别研究所,长沙国防科技大学计算机研究所、华东船舶工业学院计算机系、安徽大学电子工程与信息科学系等单位也进行了一些研究工作和尝试。

目前国内己经出现了利用虚拟现实技术建立的高质量的虚拟培训系统,譬如:随着电网自动化技术水平的提高,110KV无人值班变电站的推广。为了提高

6

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

职工的职业素质,保证电网的安全运行,深圳供电局和中国电力科技研究院联合开发了虚拟变电所培训系统。同时在矿山开采、军事演习等方面都有相应的培训系统出现。

1.3 本文研究的主要目的和研究内容

本文的主要目的是系统地研究基于OpenGL的图形显示技术、基本原理和关键技术,研究实现三维立体地图的地形建模技术,外部三维模型的导入、三维立体地图的漫游技术等等,从而进行基于OpenGL的三维立体校园地图系统的设计与开发。本文的具体研究内容主要有以下几个方面:

(1) 研究了构建三维场景的关键技术,包括环境建模技术及真实感图形绘制技术,在此基础上确定了基于几何建模方法构建校园三维图形,并通过对消隐处理、光照模型和纹理映射等技术的系统性研究,绘制了具有一定真实感的校园场景。

(2)在使用3ds Max建模并导出3DS文件的基础上,以3DS格式文件为研究对象,实现了对3DS格式文件的读取、重建等。

(3)在增强真实感场景方面,系统的研究了绘制天空的方法和基于粒子系统构建喷泉的数学模型并通过OpenGL实现。

(4)研究了系统中关键的场景漫游技术,通过用户对场景的控制,达到了校园地图任意角度漫游的效果。

(5)针对平面地图到三维地图的转变,分析研究了平面地图与三维地图的结合,使得系统可以在浏览三维地图的同时打开二维平面地图进行有需要的对照,并显示对应的位置及其它相关信息。

1.4 本章小结

本章简要的介绍了三维校园地图与虚拟现实技术的关系以及它们的基本概念、基本特征、应用情况以及国内外的研究现状,同时说明了论文写作的研究目的及研究内容,并对论文所述系统中涉及到的主要内容进行了简要的说明。

7

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

第二章 基于OpenGL的三维图形显示的关键技术

2.1 OpenGL简介

OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”[30。

自从1992年诞生到现在,OpenGL已经成为业内最为广泛使用和支持的2D和3D图形应用程序接口,可以在不同计算机平台上开发出的成千上万的应用程序。OpenGL应用领域十分广泛,如军事、电视广播、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟现实等。OpenGL具有可靠度高、可扩展、可伸缩、灵活、容易使用的特点。OpenGL具有一套渲染、纹理贴图、特效和其他功能强大的显示函数,从而促进了创新并加速了应用程序的开发。功能强大的OpenGL可以在所有流行的个人计算机和工作站平台上开发和使用,确保了程序的广泛应用。

2.1.1 OpenGL的特点

图形质量好性能高

无论是三维动画、CAD还是视觉模拟,可视化计算程序都利用了OpenGL高图形质量、高性能的特点。这个特点使得程开发者在广播、CAD/CAM/CAE、娱乐、医学图象、和虚拟现实等领域中创造和显示出难以想象的2D和3D图形。

工业标准

OpenGL ARB(OpenGL Architecture Review Board)作为独立的联合委员会,制定规范文档。随着业内厂商的支持,OpenGL成为唯一真正开放的、独立与供应商的跨平台的图形标准。

稳定性

OpenGL在各种平台上执行已经超过十余年。OARB严格控制规范文档内容的增加,新增内容能够及时公开给开发者以便他们接受这些更改。OpenGL高版本兼容低版本,保证了已经开发的应用程序不会失效。

8

]

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

可移植性和可靠性

利用OpenGL技术开发的应用图形软件与硬件无关,只要硬件支持OpenGL API标准就行了,也就是说,OpenGL应用可以运行在支持OpenGL API标准的任何硬件上[31]。

可扩展性

OpenGL最大的特点是与硬件无关的特征,因而具有很强的可移植性。但是,硬件是不断变化的,OpenGL如何保持可移植性呢?OpenGL扩展正是为这一目的而设计的。厂商只要提供OpenGL扩展,就可以轻松实现硬件特有的功能。利用OpenGL扩展OpenGL实现者也可以添加新的处理算法。

OpenGL是低级的图形API,它具有充分的可扩展性。许多OpenGL开发商在OpenGL核心技术规范的基础上,增强了许多图形绘制功能,从而使OpenGL能紧跟最新硬件发展和计算机图形绘制算法的发展。对于硬件特性的升级可以体现在OpenGL扩展机制以及OpenGL API中,一个成功的OpenGL扩展会被融入在未来的OpenGL版本之中。通过这种方法,程序开发者和硬件厂商能够在正常的产品周期中组合出新的产品。

可缩放性

基于OpenGL API的图形应用程序可以运行在许多系统上,包括各种用户电子设备、PC、工作站以及超级计算机。由此,OpenGL应用程序可以适应开发人员选择的各种目标平台。

易用性

OpenGL具有良好的结构,直观的设计和逻辑命令。与其他图形程序包相比,OpenGL只有很少的代码,因此执行速度高。另外OpenGL封装了有关基本硬件的信息,使得开发者无需针对具体的硬件特征进行设计。

2.1.2 OpenGL的工作原理

OpenGL是一种过程性的图形API,它并不是描述性的。事实上,程序员并不需要描述场景的性质和外观,而是事先确定一些操作步骤。这些步骤正是实现一定的外观或效果所需要的。这些步骤涉及到许多OpenGL命令的调用,可以在三维空间中绘制各种图元,包括点、直线和多边形等,还支持光照和着色、纹理贴

9

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

图、混合、透明、动画以及其它许多特殊的效果和功能。

OpenGL可以通过软件实现和硬件实现两种方式。OpenGL在软件实现时会调用许多函数,然后通过调用图形设备接口(GDI)的API,其原理如图2-1所示。而OpenGL的硬件实现通常采用图形卡驱动程序的形式,OpenGL调用将直接传递给硬件驱动程序,与硬件直接进行通信,效率更高,其原理如图2-2所示。而OpenGL则是描述一种过程,是从OpenGL函数调用到显示的过程,即OpenGL的渲染原理,如图2-3所示。

应用程序 OS 服务 I/O 服务GDI OpenGL 显示设备软件光栅

图2-1 OpenGL的软件实现

应用程序 OS 服务 I/O 服务GDI OpenGL 显示设备硬件驱动程序

图2-2 OpenGL的硬件实现

OpenGL API调用 OpenGL命令缓冲区 转换和光照光栅化 帧缓冲区 图2-3 OpenGL管线的简化视图

10

基于OpenGL的三维立体校园地图系统关键技术的研究与实现

2.2 OpenGL的绘图技术

“点动成线,线动成面,面动成体”。在OpenGL中,最基本的图元就是点,每个几何实体都是由一个顶点和绘制图元的类型描述的。顶点间是否连接或怎样连接是由几何图元的类型决定的。OpenGL中所有的实体最终都可采用一系列有序的顶点来描述。

OpenGL提供了二维和三维顶点的绘制方法,而二维图形只不过是三维图形的特殊情况(z分量为0),在三维顶点绘制指令中,如果用户设定二维坐标(x,y),OpenGL就会自动令z=0,如图2-4所示。

Y·P(1,1,0)/ P(1,1)

XZ

图2-4 三维坐标与二维坐标的关系

线

线是由点来组成的,两点确定一直线。OpenGL里线是有宽度和类型的,线的宽度可以直接指定几个像素,线的类型默认是实线,虚线的类型由以下方法修改:

0x0A0A = 0000 1010 0000 1010 short stipplePattern = 0x0A0A;

其效果如图2-5(第一条直线是一个像素,第二条直线是两个像素):

图2-5 OpenGL中直线的宽度和类型

11

因篇幅问题不能全部显示,请点此查看更多更全内容

Top