道路网络在三维虚拟场景中的应用

上传人:精****档 文档编号:43529559 上传时间:2018-06-06 格式:DOC 页数:4 大小:61.50KB
返回 下载 相关 举报
道路网络在三维虚拟场景中的应用_第1页
第1页 / 共4页
道路网络在三维虚拟场景中的应用_第2页
第2页 / 共4页
道路网络在三维虚拟场景中的应用_第3页
第3页 / 共4页
道路网络在三维虚拟场景中的应用_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《道路网络在三维虚拟场景中的应用》由会员分享,可在线阅读,更多相关《道路网络在三维虚拟场景中的应用(4页珍藏版)》请在金锄头文库上搜索。

1、道路网络在三维虚拟场景中的应用1 概述概述道路网络大多基于二维地理信息系统( G I S ) 来表示, 在三 维空间信息处理需求不断增长的背景下,基于三维 G I S下的 道路网络可视化问题仍有待解决。大规模地形的实时高真实 感绘制已成为计算机图形学和虚拟现实领域的重要研究方 向。 目前, 多数地形绘制是基于视点连续( L e v e l o f De t a i l , L O D ) 技术 , 在 L O D地形模型下绘制道路网络的方法主要可分为 以下 2 种 :1( 1 ) 基于纹理,即把道路网络栅格转换成纹理数据,并映射到地形上。该方法对纹理的分辨率有限,在距离视点靠近 路面时,画面上

2、的道路会出现失真现象。 ( 2 ) 基于几何实体,即为每段道路创建相应的几何实体,并铺到地形表面。 由于 L OD地形的几何体根据视点位置动态 产生,因此几何体和地形之间较难匹配,会出现部分道路陷入地形中、部分道路悬浮在地形上方的现象。 本文给出基于模版阴影锥(stencil shadow volume)算法的道路绘制方法,可避免上述2种方法的不足。道路网络影响城市整体布局,为建筑物提供局域空间关系引用框架。道路网络把城市划分为多个区域,建筑对象不可能同时占用多个区域空间而与地面重叠,因此,在道路网覆盖的地理范围内创建其他虚拟对象时,必须知道被道路网络分割出来的区域信息。标识附近的某段道路通常

3、即能确定建筑物位置。本文利用道路网络划分出的区域来指示场景中的其他虚拟对象的摆放位置,并根据其所在区域及具体位置来标识地址。此外,本文还给出一个从道路网络中提取多边形的算法。2 道路网络建模道路网络建模在GIS中,曲线是道路的中心线,用以代表道路 J。曲线由一系列连续点组成,在提取道路网络的过程中,将曲线转化为直线段可减少数据量,便于表示和计算。下文给出一种将曲线连续点分割成直线段集的算法。假设直线段是宽度小于给定宽度p的连续点,但并不表示曲线中每次出现P宽度的连续点时,就将它作为新的直线段,而是在连续点中,找出一个与首尾连线距离最大的点,先将曲线起始点到该点的一段连续点提取为直线段。以此类推

4、,即可较合理地将所有的道路用若干条直线段来表示。道路中的交叉路口即是上述直线段的交点。若线段之间存在除首尾端点外的其他交点,则以该交点为界分裂成2个新的直线段,如此反复,使所有直线段只在2个端点上相交。可用一个无向图结构G来表示道路网络中的拓扑信息。其中,顶点为所有直线段的端点,边为所有直线段。3 多边形性检测多边形性检测多边形检测指在网状结构中找出所有最小环,即找出在环内部不与环相交的其他多边形环,该类环数量巨大,因此,用穷举搜索法进行检测效率较低。文献4】利用MCB(MinimaCycle Basis)算法进行多边形检测,但该方法基于最短路径算法,只能找出权值和最小的环,但并不能保证是最小

5、环。下文给出一种最小环检测算法,以表示道路网络的图结构G为输入,从任一边开始按顺时针或逆时针方向(本文采用顺时针方向)周游边的一周回到原处,得到环。算法描述:POLYGONS_FROM_GRAPH(G)emptyemptyRemoveUnusedEdgesAndVertices()OrderEdges()For each v in VERTICES(G)do eGetFirstEdge(v)if v not exist in then Pnew Polygonadd e to vGetOtherVertice(e,v)while v not exist in Pdo add v to PeGe

6、tNextEdge(v,e)vGetOtherVertice(e,v)if true=IsValidCircle(P)then add P to return 算法解释如下:(1)RemoveUnusedEdgesAndVertices(G)表示从G 中去除不可能形成环的定点和边,例如没有连接边或只有一个连接边的顶点及其连接边。(2)在G 中,每个顶点的连接边都有一个引用队列,OrderEdges0表示对所有队列按其相对顶点的角度进行升序排序,如图1所示,F顶点的3条连接边在F连接边的队列排序按图中箭头所示的方向排列可表示为。,FE FI FG图1 最小环检测(3)GetFjrstEdge(v

7、)返回顶点v连接边队列中的第1条边。(4)GetNextEdge返回连接边队列中连接边的下1条边(如e是队列最后1条边,则返回第1条边)。(5)G中的每条边由2个顶点连接而成,Get0therVertice(e,v)返回边e中除顶点v外的另外一个顶点。(6)规定只有顺时针环才是最小环,但上述算法中可能会得到逆时针环,此时该环其实是最大环。如图1所示,假设C点是G顶点表中的第1个顶点,则算法从C点开始,可知边CB是C点连接边队列中的第1条边,于是访问CB到达B点,接着访问A,H,G,F,E,然后回到C点,组成了CBAHGFE的环,该换为逆时针方向,显然不是最小环,而是最大环。IsValidcir

8、cle(P)判定环P是否是最小环,其判定方式为:任取一边AB,取中点垂直并指向AB左侧的方向上一个极小位移,形成点测试点P,如点P在环内,则表明该环最小。4 道路绘制道路绘制上文得到的道路网络,以道路中轴线表示路段,如图2(a) 所示,但没有对路面形状的描述,而在三维环境下绘制必须获得道路网络的形状。道路中交叉处的几何形状较为复杂,图2(b)中的实线部分是对每个路段两侧求交所得。但整个道路网形成的几何体可能很庞大且无规则,难以用一个几何体来表示,因此,本文将多个路段相交之处(路IS1)作为单独几何单元来表示,整个道路网络的几何表示即分为路段和路口。图2(b)中虚线组成的闭合多边形所包围的部分即

9、为路口。图2 道路网络的几何形状描述根据虚拟场景中对应地理坐标下地表的高度,对所有路段和路口的几何形状进行三角剖分,并铺到地面地表上。但当地面不平坦时,部分路段和路口可能会陷入地面或者悬浮在地表之上;当表示道路的几何体表面和路面完全重合时,会出现zbuffer冲突的问题。在道路可视化方法中,多数地形的表示是基于LOD地形模型,视点影响地形的几何形状。如图3(a)所示,原本匹配良好的路面和地形表面,由于视点转换,地形产生了变化,形成图3(b)。图3 道路与地形的匹配下文介绍一种借鉴文献5提出的利用模版阴影锥算法绘制矢量数据的方法,可精确在地形表面上绘制道路。该方法步骤如下:(1)从道路几何体中产

10、生包围多面体。多面体的顶盖和底盖分别高于和低于所在的地形表面,多面体的顶点是由几何对象的顶点向上和向下偏移得到。2)利用包围多面体在模版缓冲中产生掩码(MASK),即产生道路几何对象在地形表面的映射,具体步骤为:1)清空颜色、深度和模版缓冲,绘制地形,并用指定深度值初始化深度缓冲;2)开启深度测试,禁止写入深度缓冲,同时开启对模版缓冲的写入;3)绘制多面体2次,消隐前面和背面。生成MASK的过程中会使用到zpass或zfail算法。zpass算法思想为:从图4中视点0出发,发出一条射线,射向地形表面交于P,当OP进入多面体时,计数器加1;离开多面体时,计数器减1。设模板计数初始值为0,当不为0

11、时,则该地形表面在多面体里,即可将在多面体里的部分可见地形记为非0,存在模板缓冲中。该算法在包围多面体和近剪切面相切时会产生错误。zpass算法规定,当深度测试通过时,模版缓冲可修改,此时绘制多面体前面,模版缓冲加1,绘制多面体背面,模版缓冲减1。zfail算法思想为:从图4中取PO射线上远离所有多面体的一点0。射线OP进入多面体时,计数器减1;当离开多面体时,计数器加1。与zpass算法相同,当模版计数器不为0时,该部分位于多面体中。zfail算法规定,当深度测试不通过时,模版缓冲可修改,此时绘制多面体前面,模版缓 5 结束语冲减1,绘制多面体背面,模版缓冲加1。(3)开启模板测试,绘制多面体。激活模板缓冲区的些操作,设定模板测试在模板缓冲不为0市通过,并绘制多面体。绘制时,关闭深度缓冲的写操作,打开颜色缓冲的写操作,当使用zpass时,绘制多面体前面,打开颜色缓冲的写操作,当使用zpass时,绘制多面体前面;当使用zfail时,绘制多面体背面。为避免重复清理模板缓冲,模板函数在每次绘制完多面体后将模板缓冲清0.道路的带状体虚拟场景中的效果如图5所示。图5 道路可视化效果

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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