一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法

文档序号:6490669阅读:266来源:国知局
一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法
【专利摘要】本发明涉及一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法,包括以下步骤:通过计算读取城市的卫星图像,并在二维平面图中划定城市范围;提取城市范围内东西和南北走向的主干道,并根据主干道的划分城市地形的DEM数据,形成若干个最小街区块;将每个所述的最小街区块根据地形划分成至少一个地形块;通过计算机构建相邻的地形块内地面上和地面下所有物体的三维模型,并按照地形块的位置划归至所属的最小街区块;采用BRLO-Tree混合结构树对三维模型数据进行调度,并根据场景的视点位置调用具有三维模型的场景数据,输出并显示。与现有技术相比,本发明加载时间短,不会出现屏幕空白的情形,而且数据量小、占用存储空间小,场景画面顺滑、流畅。
【专利说明】—种基于BRLO-Tree混合树结构的城市立体动态场景生成方法
【技术领域】
[0001]本发明涉及一种三维动态场景生成方法,尤其是涉及一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法。
【背景技术】
[0002]用于大规模场景实时绘制的技术主要有:LOD、Relief Impostors、公告牌(Billboards)和可见性计算。在实际应用中,这些技术往往混合使用产生了较好的绘制效果。尽管其中大部分技术是为了有效管理和绘制较大规模的城市静态多边形模型而研发,但对于大规模城市动态场景的高效组织和实时绘制也是同样重要。
[0003]其中L0D(Level of Detail)细节层次算法是大规模三维数据模型进行实时绘制中频繁使用的方法。Funkhouser T.根据静态三维数据模型在场景组织树中的节点位置去选用合适的分辨率模型进行展示,但无法避免因精细度不同的模型之间相互转换所带来的不同分辨率图像之间的突变跳跃。为此Dollner J.提出了连续性LODS方法并用于三维城市建模,但绘制速度有所减慢。
[0004]公告牌和Relief Impostors技术均是使用物体图片进行展示并不是三维物体本身。其中公告牌技术无论视点如何变化只会以始终如一的角度去呈现物体图片,比较呆板但绘制时间迅速。ReliefImpostors技术是用绘制复杂几何模型的二维图像作为纹理图像映射到多边形几何体上而忽略复杂几何模型的多边形网格,简单地说在三维场景中,当视点离开某个三维物体一定距离时,采用三维物体的二维投影来代替该物体。同样它也具有无法回避的缺点是不能随着视点的改变而自然展现出物体模型在绘制场景中不同观察角度下的深度层次效果。但近年来,Relief Impostors技术结合四叉树或纹理块进行城市场景绘制,从中、远距离上对城市场景绘制的速度和效果上可胜于LOD技术。因此该技术比较适用于场景转换过程中对后续中、远距离场景的快速、过渡性展示。
[0005]基于场景空间组织结构应用于快速可见性计算的方法主要分为:基于视点处理方法和基于区域处理方法两大类。基于区域处理的方法是将场景空间划分成多个区域并为每个区域中的所有物体对象计算它们潜在的可见性集合(potentially visibleset,PVS)。PVS计算通常发生在预处理阶段并将花费大量的计算时间,其代表性的算法有=Teller等人根据室内建筑物结构模型提出了单元-入口方法,将场景划分为多个凸集单元,单元之间通过入口相连,在此基础上计算单元之间的可见性。Cohen提出了一个将视区域分为多个单元而适用于室外场景的PVS计算方法。Huaw将场景划分为单元并在每个单元中创建多个包含有若干个小物体的简单遮挡体用于快速遮挡剔除。这类方法适用于静态场景,但在动态场景中如果有遮挡物或被遮挡物发生变动,则PVS将因为无法实时更新而失效最终造成可见性的判断失误。
[0006]在动态场景中可见性计算通常采用基于单视点的处理方法:只对当前视点来判断场景中物体对象间的遮挡关系,随着视点的改变PVS必须时时进行检测,一旦场景中有物体对象发生改变,则必须采取低花费的特定措施对PVS进行调整。Hudson等人以当前视点为锥顶,创建经过遮挡物轮廓且以遮挡物为前截面的阴影锥体,凡是包围盒与之相交的物体都将被剔除。Oliver mattausch基于BVH空间数据结构采用adaptive可见性预测和quary baching使得遮挡问题的查询数目和绘制状态改变数目极大地减少。Bitcner等人基于空间层次数据结构KD-Tree对遮挡查询进行优化并充分利用最后一帧的查询结构去初始化和规划下一巾贞的查询结果,极大提高了绘制速度。Yoon结合遮挡剔除和progessivemeshes进行单视点场景快速绘制,适用于中等动态变化的场景,但当相机发生快速旋转或位置突然改变时则将很难找到合适的遮挡物其算法性能会大大降低。上述算法的实现需要预先装载全部模型数据从而一次占用大量的内存空间这并不适用于3D GIS0
[0007]经过对上述各类动态场景实时绘制算法的分析,可发现它们大多数都是以绘制前所构建的各种模型索引数据结构作为基础,经过归纳大致可分为层次结构和层次包围体两类。它们的区别在于划分数据空间的方法不同。层次结构沿着预定义的超平面进行划分数据空间而不考虑数据分布,所划分的数据彼此不连接但它们合并之后却可完整地再现整个数据空间,如BSP、KD、四叉树都属于这一类型;层次包围体是根据数据分布情况,采用最小包围体的方式划分空间数据,但这种划分将导致划分区域有所重叠。当前应用最为广泛的空间索引结构之一的R树就属于此类型。R树是一种完全动态的空间索引数据结构,其插入、删除、查询节点操作可同时进行,但当它扩展至三维空间后,节点重叠加剧引发了多路查询激增从而导致其搜索效率下降。
[0008]对此,陈鹏提出了一种基于空间拓扑约束的R树索引结构提高节点利用率,但对于拓扑关系较为复杂的对象时将失效。朱庆等使用K均值算法进行三维空间聚簇分组并改进节点选择和节点分裂以此解决三维R树节点重叠严重的问题,但不能从根本上加以解决。2003年,yuni xia提出了 Quad Tree与R Tree树相结合的混合索引结构用以管理具有大量移动物体的场景。其中Quad Tree索引快速移动的物体;R树索引准静态物体。该种方法注重对地形表面上的移动物体进行处理未涉及对地面下物体模型的有效管理。2010年,J.L.Pina将块作为城市基本单元并使用Quad-Tree进行空间数据划分提出了一种改进的R树索引结构Block-Quadtree-R树,支持以行走、飞行方式展示城市三维城市场景其绘制时间大大减少,但只适用与2.5D城市场景绘制及移动元素的管理,其组织结构尚不支持真二维动态场景。
[0009]八叉树结构也被用于三维空间数据的索引。尽管建立索引时必须预知空间对象的分布范围不能满足城市空间数据的动态要求,但结构简单、容易实现。

【发明内容】

[0010]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法,该方法采用多线程技术,生成动态场景时加载时间短,不会出现屏幕空白的情形,而且数据量小、占用存储空间小,生成的动态场景画面顺滑、流畅。
[0011]本发明的目的可以通过以下技术方案来实现:
[0012]一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法,该方法包括以下步骤:[0013]a)通过计算读取城市的卫星图像,并在二维平面图中划定城市范围;
[0014]b)提取城市范围内东西和南北走向的主干道,并根据主干道的划分城市地形的DEM数据,形成若干个最小街区块;
[0015]c)将每个所述的最小街区块根据地形划分成至少一个地形块;
[0016]d)通过计算机构建相邻的地形块内地面上和地面下所有物体的三维模型,并按照地形块的位置划归至所属的最小街区块;
[0017]e)采用BRLO-Tree混合结构树对三维模型数据进行调度,并根据场景的视点位置调用具有三维模型的场景数据,输出并显示。
[0018]步骤b)中以主干道的右侧边沿为界划分城市地形的DEM数据。
[0019]所述的最小街区块设置统一编号,用于辨识和查询。
[0020]同一个最小街区块内的三维模型包括DEM模型、Hiodelg模型、Hiodelug模型和ME模型,所述的DEM模型用于表示所属区域内的地形,所述的Hiodelg模型用于表示地面上的物体,所述的Hiodelug模型用于表示地面下的物体,所述的ME模型用于表示场景内的起到辅助点缀作用的移动元素。
[0021]所述的三维模型的调度策略为:
[0022]I)当视点位置处于当前街区块地面的近距离高度时,加载当前最小街区块所属的DEM精细模型、Hiodelg精细模型之后,再加载Hiodelug和ME的LOD模型;
[0023]2)接着加载当前最小街区块相邻的其它街区块的DEM与Hiodelg的LOD模型;
[0024]3)当视点高度低于当前街区的地面设置高度时,则加载Hiodelug的精细模型;
[0025]4)如果视点距离前向正视最小街区块的质心距离小于设定距离时,加载该最小街区块的DEM、Hiodelg和Hiodelug精细模型;
[0026]5)当视点发生大范围的变换,跳出当前最小街区块及临近区块时,采用Impostors技术快速加载视点正视前方的Impostor照片,同时调用多线程并行加载视点正向前方前进一步所对应的Impostor照片;对于视点后退一步、视点左转九十度、视点右旋转九十度时,视点正向前方所对应的Impostor照片,发送至显卡内进行缓存,准备显示;
[0027]6)采用多线程技术重复执行步骤I)?步骤5)。
[0028]与现有技术相比,本发明采用多线程技术,由于采用基于BRLO-Tree混合树结构的对三维模型数据进行调度管理,生成动态场景时加载时间短,不会出现屏幕空白的情形,而且数据量小、占用存储空间小,生成的动态场景画面顺滑、流畅。
【专利附图】

【附图说明】
[0029]图1为本发明的流程图;
[0030]图2为BRLO-Tree混合树结构示意图。
【具体实施方式】
[0031]下面结合附图和具体实施例对本发明进行详细说明。
[0032]实施例
[0033]如图1所示,一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法,该方法包括以下步骤:[0034]a)通过计算读取城市的卫星图像,将整个城市的卫星图像导入到计算机中,
[0035]并在计算机中打开,于二维平面图中划定整个城市的范围。
[0036]b)提取城市范围内东西和南北走向的主干道,各主干道间形成一个块(block)可称为最小街区块,并以每一条主干道的右侧边沿为界据此划分整个城市地形的DEM数据,其中,最小街区块可设置统一编号,便于辨识和查询。
[0037]c)将每个所述的最小街区块根据地形划分成至少一个地形块,采用此种方法进行地形块的分割,容易将大量地下管线整齐地划归到一个地形块中。
[0038]d)通过计算机构建相邻的地形块内地面上和地面下所有物体的三维模型,使得同一个最小街区块内的三维模型包括DEM模型、Hiodelg模型、Hiodelug模型和ME模型,所述的DEM模型用于表示所属区域内的地形,所述的Hiodelg模型用于表示地面上的物体,所述的Hiodelug模型用于表示地面下的物体,所述的ME模型用于表示场景内的起到辅助点缀作用的移动元素。对于每一个三维模型使用最小包围盒进行包围,后在oxy平面上进行投影,按其质心所在二维平面位置划归至步骤b)所划分的最小街区块内。对于最小街区块中所属地上和地下的物体物体模型,对其在oyz平面上进行投影,如果其投影的z值大于所在位置地平面值,则判定物体模型是在地形块的地面之上,否则是在地形块的地面之下。
[0039]e)采用BRLO-Tree混合结构树对三维模型数据进行调度,并根据场景的视点位置调用具有三维模型的场景数据,输出并显示。其中对于任一最小街区块中,Hiodelg模型和modelug模型的数据为适应动态变化管理,可以采用Loose-Octree (松散八叉树)进行进一步的分解和存储管理。
[0040]其中,BRLO-Tree混合结构树的具体结构如图2所示,最小街区块block"可构成一个大区域块block',由此递推由这些大区域块可构成行政区域块block,最后整个场景由几个划定的行政区域块block组成。混合结构树中的各节点,也就是各区域块可以按照数字键对其进行统一编号以便快速检索和识别。
[0041]对于同一最小街区块节点下的模型数据其生成顺序依次为DEM模型、Hiodelg模型、Hiodelug模型和ME模型,此顺序的排列是因为Hiodelg模型、Hiodelug模型都是在DEM模型的地面之上或之下,在其进行生成时都脱离不了对DEM模型的绘制,因此DEM模型的加载顺序排列在前,Hiodelg模型、Hiodelug模型居中,ME模型是移动元素,在场景中起到辅助点缀作用。因此加载顺序排在最后。因此,该混合结构树也是一个Reactive-Tree类型结构树。
[0042]对于每一最小街区块中的DEM模型、Hiodelg模型、Hiodelug模型,尽管采用分层的块结构,其数据量已相应的大大减少,但仍占据了大量的存储空间,尤其对于地面之上或地面之下的Hiodelg模型、Hiodelug模型。它们实际上是多个离散小物体模型在一个立体空间内的三维模型组合。而在3D GIS动态交互场景中,发生位置、形状改变的模型大都集中于这两种数据模型上,而松散八叉树结构却正适合于这种动态情况下的三维模型动态管理。
[0043]对于这些三维模型所采用的调度策略如下:
[0044]I)当视点位置处于当前街区块地面的近距离高度时,加载当前最小街区块所属的DEM精细模型、Hiodelg精细模型之后,再加载Hiodelug和ME的LOD模型;
[0045]2)接着加载当前最小街区块相邻的其它街区块的DEM与Hiodelg的LOD模型;
[0046]3)当视点高度低于当前街区的地面设置高度时,则加载Hiodelug的精细模型;
[0047]4)如果视点距离前向正视最小街区块的质心距离小于设定距离时,加载该最小街区块的DEM、Hiodelg和Hiodelug精细模型;
[0048]5)当视点发生大范围的变换,跳出当前最小街区块及临近区块时,采用Impostors技术快速加载视点正视前方的Impostor照片,同时调用多线程并行加载视点正向前方前进一步所对应的Impostor照片;对于视点后退一步、视点左转九十度、视点右旋转九十度时,视点正向前方所对应的Impostor照片,发送至显卡内进行缓存,准备显示;这组Impostor照片用于对应用户进行前进、后退、左转和右转的操作,加快加载时间,防止屏幕出现空白。
[0049]6)然后利用用户采取上述操作的时间差,可以采用多线程技术重复执行步骤I)?步骤5),提高运行效率。
【权利要求】
1.一种基于BRLO-Tree混合树结构的城市立体动态场景生成方法,其特征在于,该方法包括以下步骤: a)通过计算读取城市的卫星图像,并在二维平面图中划定城市范围; b)提取城市范围内东西和南北走向的主干道,并根据主干道的划分城市地形的DEM数据,形成若干个最小街区块; c)将每个所述的最小街区块根据地形划分成至少一个地形块; d)通过计算机构建相邻的地形块内地面上和地面下所有物体的三维模型,并按照地形块的位置划归至所属的最小街区块; e)采用BRLO-Tree混合结构树对三维模型数据进行调度,并根据场景的视点位置调用具有三维模型的场景数据,输出并显示。
2.根据权利要求1所述的基于BRLO-Tree混合树结构的城市立体动态场景生成方法,其特征在于,步骤b)中以主干道的右侧边沿为界划分城市地形的DEM数据。
3.根据权利要求1所述的基于BRLO-Tree混合树结构的城市立体动态场景生成方法,其特征在于,所述的最小街区块设置统一编号,用于辨识和查询。
4.根据权利要求1所述的基于BRLO-Tree混合树结构的城市立体动态场景生成方法,其特征在于,同一个最小街区块内的三维模型包括DEM模型、Hiodelg模型、Hiodelug模型和ME模型,所述的DEM模型用于表示所属区域内的地形,所述的Hiodelg模型用于表示地面上的物体,所述的Hiodelug模型用于表示地面下的物体,所述的ME模型用于表示场景内的起到辅助点缀作用的移动元素。
5.根据权利要求4所述的基于BRLO-Tree混合树结构的城市立体动态场景生成方法,其特征在于,所述的三维模型的调度策略为: 1)当视点位置处于当前街区块地面的近距离高度时,加载当前最小街区块所属的DEM精细模型、Hiodelg精细模型之后,再加载Hiodelug和ME的LOD模型; 2)接着加载当前最小街区块相邻的其它街区块的DEM与Hiodelg的LOD模型; 3)当视点高度低于当前街区的地面设置高度时,则加载Hiodelug的精细模型; 4)如果视点距离前向正视最小街区块的质心距离小于设定距离时,加载该最小街区块的 DEM、modelg 和 Hiodelug 精细模型; 5)当视点发生大范围的变换,跳出当前最小街区块及临近区块时,采用Impostors技术快速加载视点正视前方的Impostor照片,同时调用多线程并行加载视点正向前方前进一步所对应的Impostor照片;对于视点后退一步、视点左转九十度、视点右旋转九十度时,视点正向前方所对应的Impostor照片,发送至显卡内进行缓存,准备显示; 6)采用多线程技术重复执行步骤I)?步骤5)。
【文档编号】G06T15/00GK103793935SQ201210435008
【公开日】2014年5月14日 申请日期:2012年11月2日 优先权日:2012年11月2日
【发明者】李光耀, 王文举, 王力生 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1