一种三维地理信息系统实时绘制多线程分配与控制方法技术方案

技术编号:12732391 阅读:62 留言:0更新日期:2016-01-20 15:42
本发明专利技术公开了一种三维地理信息系统实时绘制多线程分配与控制方法。从绘制流水线本身的特征出发,在三维城市模型数据特点的基础上,统筹整个实时绘制过程中的代价,将数据加载代价与图元绘制代价统一考虑,进行三维城市的模型数据组织;基于三维城市模型数据及其应用的特点,采用CPU多线程分配加载与绘制任务以及GPU多线程分配基于顶点与象素数据处理内核线程;通过实时资源监测来动态调节CPU线程资源与GPU处理线程与缓存分配,以实现CPU与GPU资源的高利用率与绘制的实时和平稳。

【技术实现步骤摘要】

本专利技术属于地理空间信息系统
,更具体地,涉及一种三维地理信息系统实时绘制多线程分配与控制方法
技术介绍
当人们在使用GoogleEarth,NASAWorldWind以及MicrosoftVirtualEarth等工具来漫游地球影像时,一种全新的浏览方式震撼了普普通通的人们,使得人们可以足不出户地来认识我们生存的这个世界,可以从电脑屏幕来看看那梦寐以求的地方是什么样子的。然而,随着人类活动的发展,只是从影像上看我们的世界,由于其限定的视角、阴影、建筑物等遮挡等因素的限制,渐渐不能满足人们的要求。人们更多地期待日常生活中的各种对象真实再现于虚拟现实,使人有身临其境的感觉。并且要求人们能够与环境进行实时的交互操作。随着计算机技术的发展,人们在数据获取技术上也取得了飞速的进步,数据获取的手段更加丰富,建模技术更加精确和快捷:表现在CAD建模技术,三维激光扫描技术,全自动或半自动数字摄影测量建模,科学试验算法模拟数据生成以及航空、航天手段遥感数据。数据获取范围越来越大,精度越来越高,更新周期也越来越快。数据获取手段发展的一个重要表现是数据的精确度提高,对建模对象的表达更加精细。在以格网进行表达的模型中,顶点越来越密集,多边形数越来越多,纹理的精度也越来越高,这些都使用以表达模型的数据量以爆炸式增长,表达一个场景的数据量达几十个GB甚至TB级。所谓实时绘制(realtimerendering),是指系统在限定的时间内完成场景中各对象的位置和姿态的计算与图像绘制,使画面更新平滑,随用户视点的改变画面的更新必须达到人眼察觉不到闪烁的程度(画面更新速度至少应达到24帧/秒);同时能够对用户的输入,如模拟飞行时对飞行的位置、方向的控制,立即做出响应,并同步更新相应的场景及事件,并产生相应的环境和场景,以实现用户与系统的实时交互。因此,实时绘制要实现以下指标:一、使得渲染的速度可以达到24FPS以上;二、维持在这个速率对场景进行渲染与用户交互反应;三、反应的外部事件的时间应在100毫秒内。当前计算机技术硬件发展中,CPU与GPU的发展速度远远超过存储器容量与访问速度提高的速度,同时,随着数据获取技术的进步,模型表达所采用的数据量呈爆炸性增长。模型的数据量是无法全部同时加载到系统的内存中的,场景的复杂度已经远远超过当前硬件的渲染能力。提高实时绘制的能力主要的途径可以从硬件与软件两个方面进行。硬件方面:通过提高计算处理的速度,包括CPU的处理速度以及GPU的处理速度,使图像生成绘制时间变短。软件方面:从绘制算法入手,包括减少图形画面的复杂度和提高图形实时生成的能力。软件的方法可以分为两个大类:一是提高绘制管道效率,二是减少场景进入绘制的数据量。大规模三维城市模型实时绘制的瓶颈在于数据量巨大引起的大量I/O操作导致的延迟以及绘制管线中的不平衡。在使用简化与剔除方法的基础上,在保证绘制图像质量的前提下,尽可能减少模型表达的数据量时,数据量仍不能满足完全加载的要求。因此,对数据的组织与加载成为决定能否达到场景完整实时绘制的关键。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种三维地理信息系统实时绘制多线程分配与控制方法,针对大规模三维城市模型中实时漫游绘制时,模型数据的动态调度困难的问题,从绘制过程本身出发,以实时绘制为目的,将数据加载代价、图元绘制代价反映到三维城市场景模型的组织与存储过程中,并以实时监测的代价为依据动态调节处理器多核资源,实现加载过程与绘制过程的平衡。为实现上述目的,本专利技术提供了一种三维地理信息系统实时绘制多线程分配与控制方法,其特征在于,包括如下步骤:(1)读取三维城市数据文件,从中解析出目标对象,提取出每个目标对象的几何部分和纹理部分,计算每个目标对象包含的几何数据量与纹理数据量;(2)对每一个目标对象,计算其空间包围盒,并创建场景管理节点对象,将空间包围盒作为场景管理节点对象的几何特征,将几何数据量和纹理数据量作为场景管理节点对象的属性;计算场景管理节点对象的数据加载代价因子和图元绘制代价因子;(3)获取场景管理节点对象的整体空间范围,构建三维城市模型,使用k-d树空间索引方法由上至下对三维城市模型进行空间剖分,得到k-d树空间索引;其中,叶节点的生成规则为:使每个叶节点的总代价因子小于阈值;(4)先序遍历k-d树空间索引,将叶节点的数据加载代价因子、图元绘制代价因子和总代价因子分别累加到上一层中间节点,得到中间节点的数据加载代价因子、图元绘制代价因子和总代价因子;将每个叶节点内所有场景管理节点对象的数据作为一个整体生成几何存储数据块和纹理存储数据块后,分别写入几何映射文件和纹理映射文件;(5)将空间索引构单独生成空间索引文件,加载空间索引文件,获取可视视点的位置并计算可视区域,将可视区域与k-d树空间索引求交,获取当前位置下的可见节点;根据可见的中间节点的数据加载代价因子及存储硬件参数计算其数据加载代价,根据可见的叶节点的图元绘制代价因子及图形绘制硬件参数计算其图元绘制代价;分别根据可见的中间节点的数据加载代价和可见的叶节点的图元绘制代价生成加载列表和绘制列表;(6)建立CPU线程池,根据实时绘制帧率的时间要求和可见的中间节点的加载代价,计算加载列表中需要设置的加载线程数量,从CPU线程池中分配加载线程进行数据加载;从几何映射文件和纹理映射文件中提取可见的叶节点的几何数据和纹理数据,解析出可见的叶节点的图元数量,根据可见的叶节点的图元绘制代价,建立GPU处理内核线程管理对象,动态分配内核处理线程数量;(7)实时监测帧内数据加载和图元绘制加载用时t1以及绘制用时t2,在帧内加载绘制用时t1+t2大于帧率时间时,强制中断当前帧内的加载与绘制,确保当前帧率的稳定,并利用相邻帧的结余时间动态调整帧间加载线程和绘制内核线程,最终实现帧间平稳绘制。优选地,所述步骤(1)中,读取三维城市数据文件,从中解析出实体对象,根据城市三维建模技术规范对实体对象进行分类,将建筑物、道路、管线和其它设施四类实体对象作为目标对象。优选地,所述步骤(2)中,场景管理节点对象的数据加载代价因子为: Cost l o a d o b j 本文档来自技高网
...
一种三维地理信息系统实时绘制多线程分配与控制方法

【技术保护点】
一种三维地理信息系统实时绘制多线程分配与控制方法,其特征在于,包括如下步骤:(1)读取三维城市数据文件,从中解析出目标对象,提取出每个目标对象的几何部分和纹理部分,计算每个目标对象包含的几何数据量与纹理数据量;(2)对每一个目标对象,计算其空间包围盒,并创建场景管理节点对象,将空间包围盒作为场景管理节点对象的几何特征,将几何数据量和纹理数据量作为场景管理节点对象的属性;计算场景管理节点对象的数据加载代价因子和图元绘制代价因子;(3)获取场景管理节点对象的整体空间范围,构建三维城市模型,使用k‑d树空间索引方法由上至下对三维城市模型进行空间剖分,得到k‑d树空间索引;其中,叶节点的生成规则为:使每个叶节点的总代价因子小于阈值;(4)先序遍历k‑d树空间索引,将叶节点的数据加载代价因子、图元绘制代价因子和总代价因子分别累加到上一层中间节点,得到中间节点的数据加载代价因子、图元绘制代价因子和总代价因子;将每个叶节点内所有场景管理节点对象的数据作为一个整体生成几何存储数据块和纹理存储数据块后,分别写入几何映射文件和纹理映射文件;(5)将空间索引构单独生成空间索引文件,加载空间索引文件,获取可视视点的位置并计算可视区域,将可视区域与k‑d树空间索引求交,获取当前位置下的可见节点;根据可见的中间节点的数据加载代价因子及存储硬件参数计算其数据加载代价,根据可见的叶节点的图元绘制代价因子及图形绘制硬件参数计算其图元绘制代价;分别根据可见的中间节点的数据加载代价和可见的叶节点的图元绘制代价生成加载列表和绘制列表;(6)建立CPU线程池,根据实时绘制帧率的时间要求和可见的中间节点的加载代价,计算加载列表中需要设置的加载线程数量,从CPU线程池中分配加载线程进行数据加载;从几何映射文件和纹理映射文件中提取可见的叶节点的几何数据和纹理数据,解析出可见的叶节点的图元数量,根据可见的叶节点的图元绘制代价,建立GPU处理内核线程管理对象,动态分配内核处理线程数量;(7)实时监测帧内数据加载和图元绘制加载用时t1以及绘制用时t2,在帧内加载绘制用时t1+t2大于帧率时间时,强制中断当前帧内的加载与绘制,确保当前帧率的稳定,并利用相邻帧的结余时间动态调整帧间加载线程和绘制内核线程,最终实现帧间平稳绘制。...

【技术特征摘要】
1.一种三维地理信息系统实时绘制多线程分配与控制方法,其特征在
于,包括如下步骤:
(1)读取三维城市数据文件,从中解析出目标对象,提取出每个目标
对象的几何部分和纹理部分,计算每个目标对象包含的几何数据量与纹理
数据量;
(2)对每一个目标对象,计算其空间包围盒,并创建场景管理节点对
象,将空间包围盒作为场景管理节点对象的几何特征,将几何数据量和纹
理数据量作为场景管理节点对象的属性;计算场景管理节点对象的数据加
载代价因子和图元绘制代价因子;
(3)获取场景管理节点对象的整体空间范围,构建三维城市模型,使
用k-d树空间索引方法由上至下对三维城市模型进行空间剖分,得到k-d树
空间索引;其中,叶节点的生成规则为:使每个叶节点的总代价因子小于
阈值;
(4)先序遍历k-d树空间索引,将叶节点的数据加载代价因子、图元
绘制代价因子和总代价因子分别累加到上一层中间节点,得到中间节点的
数据加载代价因子、图元绘制代价因子和总代价因子;将每个叶节点内所
有场景管理节点对象的数据作为一个整体生成几何存储数据块和纹理存储
数据块后,分别写入几何映射文件和纹理映射文件;
(5)将空间索引构单独生成空间索引文件,加载空间索引文件,获取
可视视点的位置并计算可视区域,将可视区域与k-d树空间索引求交,获取
当前位置下的可见节点;根据可见的中间节点的数据加载代价因子及存储
硬件参数计算其数据加载代价,根据可见的叶节点的图元绘制代价因子及
图形绘制硬件参数计算其图元绘制代价;分别根据可见的中间节点的数据
加载代价和可见的叶节点的图元绘制代价生成加载列表和绘制列表;
(6)建立CPU线程池,根据实时绘制帧率的时间要求和可见的中间
节点的加载代价,计算加载列表中需要设置的加载线程数量,从CPU线程
池中分配加载线程进行数据加载;从几何映射文件和纹理映射文件中提取
可见的叶节点的几何数据和纹理数据,解析出可见的叶节点的图元数量,
根据可见的叶节点的图元绘制代价,建立GPU处理内核线程管理对象,动
态分配内核处理线程数量;
(7)实时监测帧内数据加载和图元绘制加载用时t1以及绘制用时t2,
在帧内加载绘制用时t1+t2大于帧率时间时,强制中断当前帧内的加载与绘
制,确保当前帧率的稳定,并利用相邻帧的结余时间动态调整帧间加载线
程和绘制内核线程,最终实现帧间平稳绘制。
2.如权利要求1所述的三维地理信息系统实时绘制多线程分配与控制
方法,其特征在于,所述步骤(1)中,读取三维城市数据文件,从中解析
出实体对象,根据城市三维建模技术规范对实体对象进行分类,将建筑物、
道路、管线和其它设施四类实体对象作为目标对象。
3.如权利要求1或2所述的三维地理信息系统实时绘制多线程分配与
控制方法,其特征在于,所述步骤(2)中,场景管理节点对象的数据加载
代价因子为:
Cost l o a d o b j = k 1 * Σ i = 1 n S i z e ( file g e o m e t ...

【专利技术属性】
技术研发人员:周东波钟正
申请(专利权)人:华中师范大学
类型:发明
国别省市:湖北;42

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

1