三维城市模型自适应调度方法技术

技术编号:10261825 阅读:158 留言:0更新日期:2014-07-26 20:53
本发明专利技术公开了一种三维城市模型自适应调度方法,属于三维数字城市、三维地理信息系统领域。本发明专利技术实现了分级规则网格索引,采用了分级的思路,使用细粒度粗粒度两个级别,分别构建规则网格索引,解决了不同尺寸三维模型的调度混乱问题,提升了调度效率。本发明专利技术根据模型中心到当前视点、模型本身的尺寸、模型当前的状态而计算模型请求重要程度因子,提出一种自适应调度方法,充分顾及模型请求时间、模型请求次数、模型请求重要程度因子进行动态调整,从而实现了动态调度的高效性和视觉符合性。本发明专利技术与只顾及视点距离一个因素的调度方法相比,本发明专利技术的模型调度过程更快响应,更加平滑,更贴合视觉效果;同时,通过调度线程和渲染线程的异步协同,极大地提升了调度效率。

【技术实现步骤摘要】
三维城市模型自适应调度方法
本专利技术属于三维数字城市、三维地理信息系统领域,特别是涉及一种三维城市模型自适应调度方法。
技术介绍
三维数字城市是以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用遥感、全球定位系统、地理信息系统、遥测、仿真-虚拟等技术,对城市进行多分辨率、多尺度、多时空和多种类的三维描述,即利用信息技术手段把城市的过去、现状和未来的全部内容在网络上进行数字化虚拟实现。通过对地形地貌、地上地下人工建筑物等基础地理信息的三维表达,反映被表达对象的三维空间位置、几何形态、纹理及属性等信息。三维城市模型主要包括地形模型、建筑模型、道路模型、水系模型、植被模型、地面模型、地下空间设施模型及其他模型等内容。三维城市模型数据库是用于存放三维模型的数据库,模型数据是指采用三维建模软件制作的三维模型,它可以用该建模软件打开和编辑,并能进行坐标转换、格式转换、分层、分块、切片等操作,并将操作结果保存到三维城市模型数据库中。三维城市模型数据库通常以关系数据库或文件方式存储。模型LOD技术主要用于加快虚拟现实中图形生成的速度,提供高速度、高质量的图形绘制方法。1976年,Clark提出了LOD(LevelsofDetail,细节层次)模型的概念,认为当物体覆盖屏幕较小区域时,可以使用该物体描述较粗的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。1982年,Rubin结合光线跟踪算法,提出了复杂场景的层次表示算法及相关的绘制算法,从而使计算机能以较少的时间绘制复杂场景。90年代初,图形学方向上派生出虚拟现实和科学计算可视化等新研究领域。虚拟现实和交互式可视化等交互式图形应用系统要求图形生成速度达到实时,而计算机所提供的计算能力往往不能满足复杂三维场景的实时绘制要求,因而研究人员提出多种图形生成加速方法,LOD模型则是其中一种主要方法。LOD技术在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率。该技术通常对每一原始多面体模型建立几个不同逼近精度的几何模型。与原模型相比,每个模型均保留了一定层次的细节。在绘制时,根据不同的表准选择适当的层次模型来表示物体。LOD技术具有广泛的应用领域。目前在实时图像通信、交互式可视化、虚拟现实、地形表示、飞行模拟、碰撞检测、限时图形绘制等领域都得到了应用。常用的LOD生成方法有剔除法、距离标准、尺寸标准等。格网型空间索引的基本思想是将研究区域用横竖线条划分大小相等或不等的格网,记录每一个格网所包含的空间实体。当用户进行空间查询时,首先计算出用户查询对象所在格网,然后再在该网格中快速查询所选空间实体,这样一来就大大地加速了空间索引的查询速度。把一幅图的矩形地理范围均等地划分为m行n列,即规则地划分二维数据空间,得到m×n个小矩形网格区域。每个网格区域为一个索引项,并分配一个动态存储区,全部或部分落入该网格的空间对象的标识以及外接矩形存入该网格。网格索引是一种多对多的索引,会导致冗余,网格划分得越细,搜索的精度就越高,当然冗余也越大,耗费的磁盘空间和搜索时间也越长。网格法由于必须预先定义好网格大小,因此它不是一种动态的数据结构,适合点数据。综上所述,在三维数字城市数据库中,存储着海量的三维城市模型,包含着查询、检索、分析等空间操作,而且每一个三维模型存在不同精度的LOD节点。由于普通计算机的硬件有限,现有的调度三维城市模型的速度慢、效率低,因此如何高效调度海量三维城市模型,就成了比较迫切的问题。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是提供一种能够高效调度三维城市模型的三维城市模型自适应调度方法。为实现上述目的,本专利技术提供了一种三维城市模型自适应调度方法,按以下步骤进行:步骤一、获取三维模型包围盒信息列表;步骤二、根据所述三维模型包围盒信息列表构建细粒度网格索引和粗粒度网格索引;步骤三、构建三维场景树;步骤四、遍历三维场景树,计算模型请求重要程度因子,触发调用请求;步骤五、建立调用请求优先队列,按调用请求优先队列进行I/O调度并更新三维场景树。较佳的,所述步骤一按以下步骤执行:A1、获取三维场景的三维模型列表,获取各三维模型的几何体列表,并获取各几何体的顶点列表;A2、根据所述几何体的顶点列表,求出所述几何体的包围盒,所述几何体的中心点为所述包围盒的中心点;A3、将所有几何体的包围盒综合比较,获得所述三维模型的包围盒;A4、根据所有三维模型的包围盒,获取三维模型包围盒信息列表。较佳的,所述步骤二按以下步骤执行:B1、对于细粒度级别和粗粒度级别,分别根据三维模型包围盒信息列表,构建规则网格列表;每个规则网格描述为四元组<x,y,boundingbox,model-list>,其中,x是网格左下角X坐标,y是网格左下角Y坐标,boundingbox是网格的包围盒,model-list是属于该网格的模型列表;B2、调整规则网格列表的包围盒:遍历规则网格列表,更新规则网格的包围盒;对于细粒度级别,根据三维模型包围盒信息列表来构建规则网格列表按以下步骤执行:B201、遍历对三维模型包围盒信息列表;B202、检查三维模型尺寸大小是否属于本级别,如果不是,则返回执行步骤B201;如果三维模型尺寸大小属于本级别,则执行下一个步骤;B203、获取该三维模型所属网格的X、Y坐标标号;B204、判断该标号的网格是否已经存在;如果该标号的网格已经存在,则将该三维模型ID加入到网格对应的model-list中,然后返回执行步骤B201;否则执行步骤B205;B205、创建新的网格,将该三维模型ID加入到新网格对应的model-list中,将新网格加入到网格列表中,然后返回执行步骤B201;对于粗粒度级别,根据三维模型包围盒信息列表来构建规则网格列表按以下步骤执行:B211、遍历对三维模型包围盒信息列表;B212、检查三维模型尺寸大小是否属于本级别,如果不是,则返回执行步骤B211;如果三维模型尺寸大小属于本级别,则执行下一个步骤;B213、获取该三维模型所属网格的X、Y坐标标号;B214、判断该标号的网格是否已经存在;如果该标号的网格已经存在,则将该三维模型ID加入到网格对应的model-list中,然后返回执行步骤B211;否则执行步骤B215;B215、创建新的网格,将该三维模型ID加入到新网格对应的model-list中,将新网格加入到网格列表中,然后返回执行步骤B211。较佳的,所述步骤三按以下步骤执行:C1、根据细粒度级别规则网格索引和粗粒度级别规则网格索引,构建场景块列表;每一个场景块表示一个规则网格内的模型集合,是一个五元组,即<x,y,z,r,block-leaf-list>;其中x,y,z,r是场景块中心点的X坐标、场景块中心点的Y坐标、场景块中心点的Z坐标和场景块包围球的半径,block-leaf-list是属于该场景块的所有场景块叶子的列表;每一个场景块叶子表示一个具体的多LOD级别的模型,是一个六元组,即<x,y,z,r,model-of-level1,model-of-level2>;其中,x,y,z,r是场景本文档来自技高网
...
三维城市模型自适应调度方法

【技术保护点】
一种三维城市模型自适应调度方法,其特征在于按以下步骤进行: 步骤一、获取三维模型包围盒信息列表; 步骤二、根据所述三维模型包围盒信息列表构建细粒度网格索引和粗粒度网格索引; 步骤三、构建三维场景树; 步骤四、遍历三维场景树,计算模型请求重要程度因子,触发调用请求; 步骤五、建立调用请求优先队列,按调用请求优先队列进行I/O调度并更新三维场景树。

【技术特征摘要】
1.一种三维城市模型自适应调度方法,其特征在于按以下步骤进行:步骤一、获取三维模型包围盒信息列表;步骤二、根据所述三维模型包围盒信息列表构建细粒度网格索引和粗粒度网格索引;所述步骤二按以下步骤执行:B1、对于细粒度级别和粗粒度级别,分别根据三维模型包围盒信息列表,构建规则网格列表;每个规则网格描述为<X,Y,BoundingBox,ModelList>四元组,X是网格左下角X坐标,Y是网格左下角Y坐标,BoundingBox是网格的包围盒,ModelList是属于该网格的模型列表;B2、调整规则网格列表的包围盒:遍历规则网格列表,更新规则网格的包围盒;对于细粒度级别,根据三维模型包围盒信息列表来构建规则网格列表按以下步骤执行:B101、遍历对三维模型包围盒信息列表;B102、检查三维模型尺寸大小是否属于本级别,如果不是,则返回执行步骤B101;如果三维模型尺寸大小属于本级别,则执行下一个步骤;B103、获取该三维模型所属网格的X、Y坐标标号;B104、判断该标号的网格是否已经存在;如果该标号的网格已经存在,则将该三维模型ID加入到网格对应的ModelList中,然后返回执行步骤B101;否则执行步骤B105;B105、创建新的网格,将该三维模型ID加入到新网格对应的ModelList中,将新网格加入到网格列表中,然后返回执行步骤B101;对于粗粒度级别,根据三维模型包围盒信息列表来构建规则网格列表按以下步骤执行:B111、遍历对三维模型包围盒信息列表;B112、检查三维模型尺寸大小是否属于本级别,如果不是,则返回执行步骤B111;如果三维模型尺寸大小属于本级别,则执行下一个步骤;B113、获取该三维模型所属网格的X、Y坐标标号;B114、判断该标号的网格是否已经存在;如果该标号的网格已经存在,则将该三维模型ID加入到网格对应的ModelList中,然后返回执行步骤B111;否则执行步骤B115;B115、创建新的网格,将该三维模型ID加入到新网格对应的ModelList中,将新网格加入到网格列表中,然后返回执行步骤B111;步骤三、构建三维场景树;步骤四、遍历三维场景树,计算请求重要程度因子,触发调用请求;所述步骤四按以下步骤执行:D1、对三维场景中的每一帧进行场景树渲染遍历;从数据集节点自上而下遍历所有场景块叶子...

【专利技术属性】
技术研发人员:李锋向泽君王俊勇王国牛邱月刘锟杨颖
申请(专利权)人:重庆市勘测院
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1