大规模虚拟地形数据多线程异步调度算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018年第2期计算机与现代化
JISUANJI YU XIANDAIHUA总第270期
文章编号:1006-2475 (2018 )02-0084-05
大规模虚拟地形数据多线程异步调度算法
任子健$,陈璐2
(1.中车青岛四方机车车辆股份有限公司国家高速动车组总成工程技术研究中心,山东青岛266111&
2.中国海洋大学信息科学与工程学院,山东青岛266100)
摘要:为了实现大规模虚拟地形环境的实时绘制,提出一种海量地形数据实时调度算法。本文算法基于传统四叉树结构 对地形数据进行组织和索引。在此基础上,运用Hilbert填充曲线对数据进行存储优化。然后设计基于I/O完成端口(I OCompletion Port,IOCP)的异步机制,结合多线程技术实现了I/O操作及数据加卸载的合理运作。最后,选取单线程同 步I/O算法与本文算法进行实验对比。结果表明,本文算法具有高效的数据调度性能,可以满足大规模地形实时绘制的 需求。
关键词:虚拟地形环境;金字塔模型;异步调度;线程池;I/O完成端口
中图分类号:TP391 文献标识码:A doi: 10.3969/j.issn.1006-2475.2018.02.018
A Multi-thread Asynchronous Dispatch Algorithm for Large-scale Virtual Terrain Data
R E N Zi-jian1,C H E N L u2
(1.National Engineering Research Center for High-speed E M U,C R R C Qingdao Sifang Co.L td.,Qingdao
2.College of Information Science and Engineering,Ocean University of China,Qingdao266100,China)
Abstract:Areal-time dispatching algorithmfor massive terrain data i s proposed,in order t o impleme ing.On the b asis of traditional quadtree model,the algorithm i s used t o make further organization and index for the data.Based on this,high performance spatial querying i s archived by the use of Hilbert storage indexing algorithms.And then,an asynchronous disjDatch mechanism i s designed based on I O Completion Port(IOC P)and multithreaded technology operations,data loading and unloading.Finally,we carry out a comparative analysis by the use of the algorithmand single thread synchronous I/Oalgorithm.The results of the experiments show that,compared t o traditional algorithms,the proposed algorithm has efficient data scheduling performance and can meet the needs of real-time render K e y words:virtual terrain environment;pyramid model;asynchronous dispatch;thread pool;IOCP
:引言
大规模地形的绘制是虚拟自然场景的重要组成 部分,虽然地形环境仿真的研究已经有较长的历史,但海量地形数据的存储和调度仍然是虚拟现实领域 的研究重点和难点。在进行局部小范围地形的可视 化时,高程数据和影像数据的数据量较小,一般不会 超过1 8B,计算机可以一次性地载入全部地形数据 并进行处理和渲染。但在大规模地形环境下,地形的 数据量随着分辨率的增加成指数级增长,可以达到 T B级甚至P B级。即使不断地提高计算机的硬件水 平,也很难实现海量地形数据的组织、存储、管理、调度和实时绘制。因此,如何利用计算机有限的处理能 力实现海量地形数据实时调度和渲染已成为一个需 要面对的重要问题。
Z h a o等人⑴提出了一种基于四元三角网的全球 地形无缝可视化模型。杜莹[2]、Z h ang等人[3]和R e 等人[4]对全球多分辨率虚拟地形仿真的关键技术进 行了深入研究,初步实现了全球大规模地形数据的实 时调度和渲染。Lebiedi等人[5]和H s i e h等人[6]提出 了基于计算机集群的虚拟地形并行化方案,有效提高 了地形数据调度和渲染的性能。O l a d a等人[7]使用 小波瓦片金字塔方法进行地形数据压缩,并实现了地 形的网络化调度和渲染。针对海量地形数据无法一
收稿日期=2017-06-05
作者简介:任子健(1989-),男,山西忻州人,中车青岛四方机车车辆股份有限公司国家高速动车组总成工程技术研究中心工 程师,博士,研究方向:虚拟现实,智能制造;陈璐(1988-),女,山东泰安人,中国海洋大学信息科学与工程学院博士研究生,研究方向:虚拟现实,计算机图形学。
2018年第2期任子健等:大规模虚拟地形数据多线程异步调度算法85
性读入 进行高效渲染的问题,虽然国内外学者
相 一些 组织和调度算法,但还是无法完
全满足实际应用的 。充分的研究和分析,本
的四叉树结构进行金 模 分辨率
层次划分,并运 Hilbert填充曲线对大规模地形数 进行 化。最基于I O C P技术,一种
大规模地 线 度算法,实现了海量地的实时快速调度。
1大规模地形数据组织与存储管理
1.1分层分块组织策略
进行虚拟场景的绘制时 将原 度的全部载入,场的细节性。但 人
察物体的经验可知,人难以看视点较远
区域的细节。因此 想,中进行物体的时,可以由远及 同的细节层次。而细节的精细程度,的念进行量化,等
视点与物体之间的进行计算,这是
L O D模型的基本思想。金 模型是一 分辨率层次模型*"+,念 L O D模型的思想非常稳合。
1地 像 金 意图,图中同层
像所代表的地理区域 相同,像分辨率逐层 ,如金一般。
图1地形影像和高程金字塔结构
理 金 层的分 应该是连续变化的,但实 没 很难 分 的连续性。四叉树网格兼具结构网格和非结构网格的特性,一方面 具有结构网格的正交性特点,另一方面具有非结构网 的灵活性特点,便于网格的自适应化[8]。因此,本 的叉 结 进行金 模 分
网格划分,如 2 。地 分为D O M影像数和D E M2类。D O M像 ,而原始D E M规 网。由于O p e n G L纹理流水线读入纹理 的速度非常快,因此
D E M的读取速度,本将D E M处理为32位图像进行 ,其中每个D O M瓦片块分 置为256 x256,每D E M瓦片块分辨率设置为257 x257。
图2地形影像和高程数据四叉树结构
层级划分的 ,地 总量将
长。由于操 的,海量 的、更新、看会非常困难。[9] 一 Scene Graph (S G)的组织结构对地形金 进行组织,S G中实际的地 ,只是 一:据的属性描述,在地渲染时直接读进行 索。当量较大时,S G接读取内
较大的 资源,索效 极大地下降。本
[4]中的方法对 的瓦片 进行
的组织。对于空间上连续的256 x256、片 ,将 一个Blockdata文件中,而索引信息 一个对应的Blockindex文件中。Blockin-dex:序 片在Blockdata文件中的 偏量,B l o k d a t a:序 片 本身及每个片的长度值。Blockdata和Blockidex文件按 在层级和编号进行命名。这样 片的级别、编号就读取相应的瓦片 。这 的
组织方式,海量瓦片 的更新、迁和创建将更加
方便和快速。
1.2基于H ilbert填充曲线的存储优化策略
仿真 中的空间 往往是 ,并一维都 一序全之间的空间 性,方划分空间空间记录之间的 联系,使空间上相邻的数对 划分 同的 空间上[10]。中进行交互漫游时,往往 进行实时空间 ,读
当前视点及 相邻区域的空间 。如果空间相的分 相隔较远的不同 页面中,的头在读 时 较大的 ,加硬 时间,空间 的调度效率。空间的同的Blockdata文件中,当进行连续 读取时,频繁 同文,这 很大的 。因此,理想的数据存方式是让空间上相邻的 外 器中的逻辑地址 相邻。
对于 中的 ,面
。外 中的 一 般是线 性 结,一索引进行检索。地 三表达到一维索引的 空间填充曲线
‘