3D引擎设计与实现及同GIS的结合

被引量 : 0次 | 上传用户:caonimadoucunzai
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
二维GIS开始于上个世纪60年代,当时是为了机助制图,发展到现在已经广泛应用到土地管理、电力、电信、城市管网、水利、消防、交通以及城市规划等各行各业,也出现了很多重要的分支,如组件GIS(Component GIS,ComGIS)是GIS同组件技术结合的产物,由于组件技术的出现和发展,整个软件产业都发生巨大的变化,不可避免地会影响到GIS的发展。ComGIS成为GIS的另一个发展方向,为开发以GIS为核心的数字化成图系统提供了一种新的开发手段和开发思路,我们正是采用COMGIS这种开发模式来实现GIS应用系统;GIS同网络技术的结合形成了WebGIS,GIS通过WWW功能得以扩展,真正成为一种大众化使用的工具,从WWW的任意一个节点,网络用户可以浏览WebGIS站点中的空间数据、制作专题图,以及进行各种空间检索和空间分析;但通常的二维GIS存在着自身难以克服的缺陷,本质上是基于抽象符号的系统,在进行基本的电子地图浏览的时候只能看到某一个点或面的具体位置、名字等平面信息,不能给人以客观自然的本原感受[1],使GIS缺乏“真实感”和“临界感” ,这样GIS同虚拟现实技术的结合出现了VRGIS(虚拟现实地理信息系统),利用虚拟现实技术对局部场景完全的三维再现,并且能够对场景进行交互式观察和分析,大大提高了GIS对局部场景的处理能力。我们在本文里的主要工作是设计和实现一个虚拟现实中的3D引擎,并将它与GIS结合起来形成VRGIS。在实现VRGIS中,我们是完全独立地分别设计和实现3D引擎与GIS系统,最后将它们进行无缝连接。作为一个3D引擎可以简单的理解为读取制作好的3D数据文件,然后根据数据文件提供的空间几何信息重建场景模型同时进行纹理渲染和光照设定来提高场景的真实感,重要的是还能允许用户在三维场景中自由运动,多角度的观察。我们实现的3D引擎主要包括三方面的内容:3D数据文件的读取,三维场景的重建,视点在场景中的运动。我们所使用的数据文件是id software公司提出的标准地图文件(*.map),还有与地图文件相关的纹理文件(*.wad)。其中map文件存放3D模型数据,主要是场景的多边形数据以及同它相关的纹理和静态光照映射,还包括一些定点光源的指定。wad文件是一种公开的数据格式,用来存放各种纹理贴图,我们可以手动将自己喜爱的图片放在wad文件中,在地图文件制作中使用。要想正确地绘制一个三维场景,最重要的就是确定可见面,计算机图形学发展的初期,可见面算法被称为隐藏线、隐藏面算法。因为三维场景投影到屏幕上之后,必定会出现三维场景中的两个甚至多个多边形面投影到屏幕的同一个区域上的情况,然而在这个区域上一帧内只能显示一个面,<WP=65>这样就需要我们自己来判定哪个面在这一帧内是可见,这就是可见面算法的由来。我们在系统实现中采用的BSP(二叉空间分割)树算法,它是由Schumacker最早提出的,后经Sutherland和Fuchs的不断改进形成现在的版本。它的主要思想就是将整个三维场景用一个二叉树来表示,其中树的叶节点是一个凸集多边形集合,它们之间没有交集,所有叶节点的并集构成了整个场景;内节点是场景的一个多边形面,它的左子树都是在这个面的后边,右子树位于这个面的前边,这样我们只要按照中根遍历的顺序绘制整个树就可以做到从后往前绘制三维场景,保证后面的多边形会被前面的多边形覆盖掉,达到了正确绘制复杂场景的目的。但是BSP树算法只是确定可见面的算法,为了提高渲染效率,我们使用PVS算法删除那些不可见面,让真正需要渲染的多边形越少越好,利用之前构造好的BSP树,为树的每一个叶节点保留一个PVS值用来表示从这个叶节点可以看到的其他叶节点,这样我们在绘制BSP树的时候只需要绘制视点所在的叶节点以及它的PVS值所指定的叶节点就可以了。重建完三维场景模型之后,就要考虑视点在场景中的运动,我们是用鼠标来控制视角的方向,用键盘来控制运动方向,即然是运动就要考虑到碰撞检测和碰撞处理,总不能让人们的视点从墙面上穿过去。碰撞检测本来对于很多3D引擎的设计来说是一个很头疼的问题,因为要将视点和场景中所有多边形进行碰撞检测判断是很耗时的。但是对于我们来说之前已经运用BSP树算法将整个场景构造成一个二叉树,根据BSP树的构造方法我们可知位于三维场景中的视点一定唯一地落在树的一个叶节点中,这样碰撞检测的时候我们只需将视点和这个叶节点中的多边形进行碰撞检测,省去了和大量多边形判断碰撞的操作,很好地提高了引擎的效率。而且BSP树的叶节点是一个凸集,这样在进行碰撞检测的时候无需对节点中的多边形做预排序。正是这些优点使得很多不用BSP树算法作为可见面算法的引擎系统也都为自己构造一个BSP树来加快碰撞检测。最后,我们还和市场上同类的3D引擎产品进行了比较,分析了我们的优缺点。
其他文献
互联网金融对当前社会产生了深远的影响,大学生作为接受新事物最迅速的群体,对互联网金融的认知和参与也是较广泛的。互联网金融的复杂性传输给大学生海量的信息,由于缺乏科
镁合金具有质量轻、比强度高和比刚度高等优点,但较低的强度,较差的塑性和可怜的耐腐蚀性等缺点限制了镁合金的应用。Mg-Al基镁合金作为商业应用最为广泛的镁合金,也存在以上缺
随着时代的发展和社会的进步,我国经济、政治、科技、教育等一系列社会元素都发生一定改变,尤其时代与教育之间是一个互相促进、互相决定的关系,而幼儿教育在现今时代变得更
研究了水培条件下不同浓度α-萘乙酸(α-NAA)对茉莉(Jasminum sambac Ait.)枝条生根及根尖解剖结构的影响。结果表明:不同浓度的α-NAA对茉莉水培生根率、生根数和根长均有显
<正>小说《飘》是作家玛格丽特·米切尔在1936年发表的作品,其是对当时南北战争时期动荡社会的真实反映。在作者的笔下,我们可以看到很多被压制的南方女性,她们并不无知,虽然
9·11”事件后,日美谋求“全面加强全作”,日美同盟”关系呈现“全球化”趋势。这种趋势将在众多领域(尤其是军事行动)得到显现和发挥作用。但日美之间的相互利用与反利用、
目的对脑白质异常的语前聋听障儿童行人工耳蜗植入术后听觉言语康复效果进行分析。方法选取我院收治的伴有脑白质异常的语前聋人工耳蜗植入术后听障儿童25例(25耳)为治疗组,另
具有高强度、高韧性、高塑性的钢铁材料是最理想的材料。提高钢的强度、韧性和塑性的最佳方法是细化晶粒。细化晶粒必须要求钢中有细小并且弥散的析出物或第二相配合控轧控冷
绩效考核是人力资源管理的核心问题之一,是保证和促进企业内部管理机制有序运行的基础,实现企业的管理目标。根据美国组织行为学家的评价,绩效考核可以实现以下八个目标:评价
多细胞生物的体内信息传递是由神经系统、内分泌系统及神经内分泌系统来进行的;这些信息传递可使机体作为一个统一的整体来活动。神经系统不仅分泌神经递质,而且还分泌肽类物