基于Hash映射的综合管网三维可视化资源管理方法

文档序号:6576813阅读:310来源:国知局

专利名称::基于Hash映射的综合管网三维可视化资源管理方法
技术领域
:本发明涉及综合管网三维可视化中的资源管理方法,特别涉及一种基于Hash映射的资源管理方法。
背景技术
:城市地下管网作为空间地理环境的重要组成部分,近来随着城市现代化的发展已受到越来越多的关注。当前多数地下管网GIS系统是基于二维的,随着GIS应用的深入,人们越来越多地要求从真三维空间来处理问题。在应用要求较为强烈的部门如采矿、地质、石油等领域已率先发展专用的具有部分功能的三维GIS,比较有名的软件有LYNX、IVM(InteractiveVolumeModeling)、G0CAD、1/EMS、SGM等,但由于它们一般是针对自己的领域开发的,具有较强的局限性。实际的地下管网具有非常明显的三维特征,因而三维管网地理信息系统逐渐成为城市管网管理系统研究开发的新热点。在三维可视化系统开发过程中涉及到大量的系统资源,高效的资源管理方式可以降低三维场景中功能实现的复杂度,提高可视化系统的开发效率。对于地下管网领域而言,管网中的要素可归结为管点要素和管线要素管线端点、结合点、变径点与附属设施特征点一般为管线分叉或管径变化部位,在现实情况中,由三通、阀门、变径接头等附属设施相连接,统称为管点数据;管网形状多为树枝状、环状或辐射状,每一条管线可以根据交叉点和变径点分解成若干条管线段,管线段是由相应管点数据的连接,组成一条不间断的管线段。因此在管网的三维可视化中涉及到的资源包括1、各类管点资源,可通过各种专业三维建模软件进行抽象建模,即管点附属物模型;2、各类管线纹理,不同的管线类型在三维可视化过程中要通过不同的颜色及纹理区分;另外管网三维空间分析中必然涉及到与地面基础设施的关系,因此还将有以下两种资源需要统一管理1、地面标志性建筑物模型;2、地面一般建筑物纹理。哈希(Hash)表是一种高效的数据结构,它的最大优点在于把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间,而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点。
发明内容本发明就是为了解决现有技术的不足而提出的一种能够较好的实现管网三维可视化系统中资源管理的方法。为了达到上述发明目的,本发明采用的技术方案为一种基于Hash映射的综合管3网三维可视化资源管理方法,它包括如下步骤(1)、以存储有管网要素类型的数据库为依托,创建资源信息表,建立管网要素类型与资源序号的Hash映射;(2)、读入管网所涉及到的资源,包括纹理资源和模型资源,并以纹理对象标识符和模型管理器的形式存储在内存中;(3)、三维可视化过程中,根据所述数据库中存储的管网要素类型以及Hash函数Addr=f(Key)的键值对应关系,在内存中找到资源序号,并进一步对应起相应的纹理对象标识符和模型管理器指针,通过三维图形引擎接口表现于三维场景中,实现综合管网三维可视化的资源管理。进一步地,所述的纹理对象标识符由OpenGL的库函数生成。本发明具有如下优点本发明将信息系统中的数据存储与访问技术一Hash映射技术引入到综合管网三维可视化中,能够较好实现管网三维可视化系统中资源管理,并为提高城市综合管网三维可视化系统的性能奠定基础。附图1为本发明纹理资源映射流程附图2为本发明模型资源映射流程具体实施例方式下面结合附图对本发明的具体实施方式作进一步详细的说明Hash映射是指在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应,并把关键词直接映射为存储地址,达到快速寻址的目的,即Addr二f(Key),其中Key为关键词,f为哈希函数。因而在查找时,只要根据这个对应关系f就可以找到给定值Key的地址Addr。在地下管网外业普查过程中,管点物探号是唯一标识的,而管线段则是由两个不同的管点连接构成,因而地下管网数据中的管点、管线都可以由唯一标识的ID来确定。这样对于Hash映射来说,同一个关键词Key由唯一的地址Addr与之对应,同样同一个地址Addr也由唯一的关键词Key对应,也就避免了Hash映射中的键值冲突问题。本实施例中,利用OpenGL在¥0++编程环境下实现,其中资源数据通过文件系统来存储,其具体实现过程如图1和图2所示1、创建资源信息表,指定管网要素类型与资源数据的对应关系1)纹理信息表,表名TEXTURE_3D<table>tableseeoriginaldocumentpage4</column></row><table><table>tableseeoriginaldocumentpage5</column></row><table>2)模型信息表,表名M0DEL_3D<table>tableseeoriginaldocumentpage5</column></row><table>2、分别创建纹理(Texture)、模型(Model)文件夹存储系统资源纹理及三维建模模型;3、建立纹理、模型索引文件,文件格式为[OO31]#模型(或纹理)资源总数目#[OO32]模型(或纹理)1资源序号资源文件地址[OO33]模型(或纹理)2资源序号资源文件地址[OO34]模型(或纹理)3资源序号资源文件地址............4、读取资源信息表TEXTURE_3D、M0DEL_3D,并加载到模型、纹理的索引Hash函数中(为了描述方便,这里称为Hash函数l),存储于内存中typedefhash—m即〈char,int〉CModelIndexM即;typedefhash—m即〈char,int〉CTexturelndexM即s即是建立管网要素类型与资源序号的一一对应,关键字Key和Hash关系的"存储位置"f(K)相应的分别由要素类型和资源序号构成;5、读取纹理、模型索引文件,并在三维场景初始化时载入系统资源,由OpenGL库函数中的glGenTexture(GLsizein,GLunit*texture)生成可用纹理对象的标识符;6、定义Hash对应关系,用来建立资源关键字Key和存储位置f(K)的映射关系对于管点附属物及地面标志性建筑物模型,其资源序号即为管点资源的关键字Key,资源文件通过模型资源管理类CModelResource转化为Hash关系的"存储位置"f(K);而管线及地面一般建筑物纹理则通过纹理资源在OpenGL中的可用纹理对象的标识符一texture转化,构成管线Hash关系表中的"存储位置"f(K),其模型、纹理Hash函数如下(为了描述方便,这里称为Hash函数2):typedefhash_map〈int,CModelResource*>CModelResourceMap;typedefhash—m即〈int,int〉CTextureResourceM即;通过将上述图1和图2的Hash函数的键值映射关系综合起来,即可实现综合管网三维可视化中资源的有效管理c权利要求一种基于Hash映射的综合管网三维可视化资源管理方法,其特征在于,它包括如下步骤(1)、以存储有管网要素类型的数据库为依托,创建资源信息表,建立管网要素类型与资源序号的Hash映射;(2)、读入管网所涉及到的资源,包括纹理资源和模型资源,并以纹理对象标识符和模型管理器的形式存储在内存中;(3)、三维可视化过程中,根据所述数据库中存储的管网要素类型以及Hash函数Addr=f(Key)的键值对应关系,在内存中找到资源序号,并进一步对应起相应的纹理对象标识符和模型管理器指针,通过三维图形引擎接口表现于三维场景中,实现综合管网三维可视化的资源管理。2.根据权利要求1所述的基于Hash映射的综合管网三维可视化资源管理方法,其特征在于所述的纹理对象标识符由0penGL的库函数生成。全文摘要本发明涉及一种综合管网三维可视化资源管理方法,包括如下步骤(1)以存储有管网要素类型的数据库为依托,创建资源信息表,建立管网要素类型与资源序号的Hash映射;(2)读入管网所涉及到的资源,包括纹理资源和模型资源,并以纹理对象标识符和模型管理器的形式存储在内存中;(3)三维可视化过程中,根据所述数据库中存储的管网要素类型以及Hash函数Addr=f(Key)的键值对应关系,在内存中找到资源序号,并进一步对应起相应的纹理对象标识符和模型管理器指针,通过三维图形引擎接口表现于三维场景中,实现综合管网三维可视化的资源管理。本发明能够较好实现管网三维可视化系统中资源管理,并为提高城市综合管网三维可视化系统的性能奠定基础。文档编号G06T17/00GK101706719SQ20091011598公开日2010年5月12日申请日期2009年8月13日优先权日2009年8月13日发明者刘志勇,刘维敏,吴镇臣,孙伟,张衡,徐青,蓝朝桢申请人:苏州市数字城市工程研究中心有限公司;中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1