顾及用户体验的复杂三维城市模型组织方法

2015-02-10 02:26陆刚兰
地理与地理信息科学 2015年6期
关键词:格网漫游粒度

陆刚兰

(广西机电职业技术学院计算机与信息工程系,广西 南宁 530007)

0 引言

随着人类城市信息化逐步地向数字化和立体化方向发展,以Google Earth为代表的数字地球和数字城市三维应用不仅开启了城市数字化表达与地理信息的新时代,同时也面临着巨大的挑战[1]。三维GIS的一个重要功能就是高效流畅地实现城市模型的三维可视化,但是随着并发用户数越来越多,有限的硬件条件与高速大容量的多层次细节模型的传输之间的矛盾变得越来越突出。

传统网络电子地图的研究对象始于二维平面矢量数据,逐渐扩展到由遥感数据、三维点云模型等组成的三维模型数据,呈现出复杂化、海量化的趋势,因此如何组织、管理、存储与绘制大数据量的三维城市模型已成为地图学中的一个热点研究内容[2]。目前,三维数据模型的组织与管理方法多数是具有“Layer-Feature”特点的管理模式,在该模式下,城市数据模型被划分为道路、建筑模型等多个图层,且每个图层管理不同的要素对象,但该模式并不对不同分辨率的模型进行区分,而是按照相同的方式进行统一管理、调度和绘制[3]。由于这种模式并不考虑用户的视觉感知、数据的类型、数据的层次,使得其具有如下缺点:存储粒度过大,调度绘制效率低下,并且对用户操作习惯和感知特征没有任何针对性考虑。因此,本文根据用户的视觉感知特点与操作习惯,设计了一种顾及用户体验的适用于大数据的复杂三维城市模型的组织方法。该方法可以根据用户的体验进行数据调度,以减少数据的无效传输。

1 用户体验和数据组织方法

用户体验是指在人机交互时,用户的主观心理感受。其中,系统的友好性、软件的可操作性、系统的流畅性等因素都影响着用户体验[4]。而在三维可视化应用环境下,三维模型的数据组织方式也影响用户体验,尤其在硬件资源有限的条件下,如何有效地组织数据,以便能够向海量并发用户提供良好的体验,保证他们能够流畅地浏览三维场景,已成为亟须解决的问题。本文通过分析用户操作特点及归纳视觉感知特点进行数据的组织,从而最终实现良好的用户体验。

1.1 用户操作特点和元数据组织

在三维可视化应用环境下,用户操作呈现出大范围漫游和小范围聚焦的特点。用户浏览的过程会产生众多无意义的漫游和拖拽,经过许多与目标范围无关的区域,从而造成大量无效数据的调度,这些调度会消耗大量有限的软硬件资源,导致目标范围模型数据得不到及时传输,从而造成目标范围可视化的滞后。为了解决上述问题,针对海量三维模型数据,其组织方式一定要能够快速地做到宏观粗略模型到微观精细模型的检索,因此,模型被分成索引元数据和实体数据两部分[5]。不同LOD模型可以对应着同一个索引元数据,而根据内在关联关系,索引元数据又能够映射到不同LOD的实体模型。同时,打包存储技术的使用也能够减少传输次数。而三维城市模型作为构筑在地形之上的城市景观,其表达依附于地形的展现,而地形普遍采用格网划分[6],因此利用相同的格网划分方法和格网划分粒度,并使用相同的格网编码方式对地形和模型进行编码,就能够很好地解决模型和地形的同步调用问题。同时,为了更好地解决小体积模型拉近显示问题,在综合考虑模型、视觉权重以及场景的可视范围的情况下,模型元数据可以采用多层瓦片中重复存储的策略[7]。此外,为了提高用户的请求响应速度,可以把小数据量的低精细程度模型和元数据进行打包存储,并采用低精细模型的快速传输和绘制,从而提高操作反馈性,增加用户的认同感,减少用户的心理等待时间,为精细模型的调度和可视化提供等待时间。

索引元数据使用定位点信息完成格网块的映射,而模型包围盒的地面中心点或左下角点是常用的定位点之一。然而,诸如道路交通网络模型、地下管网模型等大跨度模型具有覆盖范围广和跨越多个瓦片块的特点,如果按照传统定位点计算其所在瓦片,并且大跨度模型的定位点不在这些瓦片内时,就会出现“镂空”现象,如果把大跨度模型所覆盖的所有瓦片都存储所有元数据,即使浏览经过了模型的局部,也需要对整个模型进行调度和绘制。对于城市模型而言,其大跨度的空间会产生大量的几何和纹理数据,因此其传输和绘制压力会比较大。此外,在绘制完整模型时,如果浏览没有经过远处地形,就可能进入模型“悬空”状态。而为了平衡大跨度模型的传输和绘制压力,往往将大跨度模型切割为多个小段,这样一方面降低了传输和绘制压力,另一方面也便于元数据管理,但是这种方法却破坏了模型的完整性,因此大跨度模型的生产需要平衡模型的表达粒度和完整性之间的矛盾[8]。

1.2 用户视觉感知特点和对象离散存取

为了避免不同数据类型和不同LOD模型实体对象传输数据量大与粒度不均匀的现象发生,在考虑用户视觉感知特点的情况下,可以首先把表达轮廓的几何、材质纹理、细节属性等数据进行离散存储,然后采用几何操作减少传输和绘制的时间,最终实现城市模型的位置、形状、道路走向等的显示。而用户根据当前显示的内容判断是否继续浏览当前区域还是进行切换。如果用户停顿时间大于设定阈值或者几何数据已经传输完毕,那么将进行多级纹理数据的传输与绘制。同时,为了有效地减少传输的次数,每一级纹理都被烘焙成单张。此外,为了能够提高用户请求的响应速度,首先传输和绘制最粗的一级纹理,而且客户端还会根据相应的策略进行更精细纹理数据的传输和调度。

2 顾及用户体验的三维城市模型自适应组织

2.1 顾及用户体验的元数据层次结构组织

在进行三维城市模型数据存储时,使用了多层次的混合空间索引结构以统一多个对象的粒度大小,并进行相应的磁盘数据布局。在本文中,顾及用户体验的索引被分成格网索引和基于对象的索引[9]。在格网索引中,利用格网对城市的空间范围进行分区。本文将根据城市的行政区域划分建立最上层的空间索引。在基于对象的索引中,格网索引被用于管线模型和道路网络模型;四叉树索引被用于地形和正射影像图;LOD-R树空间索引被用于建筑模型和其他设施模型;八叉树被用于地质体模型。

由于不同的数据内容使用了不同的空间索引,为了便于管理,需要对不同空间索引树的生成过程进行一定的限制,即设立数据的粒度以控制混合空间索引结构的生成,如四叉树、八叉树的剖分节点终止条件,R树空间索引中节点数量的设置等。同时,针对各类型空间索引的特点,选择一定的粒度标准生成场景的组织,进而使用此粒度统一内存管理对象、绘制缓存对象以及磁盘存储对象的大小。在使用四叉树空间索引时,考虑到纹理的层次,以纹理的大小作为是否进行粒度选择的约束条件。在使用八叉树空间索引时,则把地质体的多边形数量作为分割的约束粒度。而在使用LOD-R树空间索引时,不仅要限制节点中的对象数量,还要限定R树中每个节点中的多边形数量总和,从而最终生成混合的空间索引结构。

格网块划分完成后,模型元数据按照格网进行打包存储。模型元数据是模型实体表现之外的索引信息,其不随模型精细程度的增加而改变,描述了模型概念层次的特征信息,包括定位信息、旋转信息、缩放信息、包围盒范围和LOD层数,如表1所示。通过定位、旋转和缩放信息可以确定模型所在的位置及形状,包围盒范围可以进行可视范围对象过滤和范围查询。为了改善用户体验,增加模型的响应速度,对分辨率较低的LOD层次几何和纹理与模型元数据进行打包存储,并通过最粗一级模型的快速传输,实现目标区域最粗一级的模型数据的快速绘制,表现地物轮廓,从而能够做到第一时间响应用户的请求,为精细数据的调度提供等待时间。

此外,把模型元数据按瓦片范围进行聚类,并按照二进制形式进行打包。打包数据分文件头和文件体两部分,文件头负责对象的索引,存储了对象ID和对象偏移量,文件体存储了每个模型元数据的实际信息。用户通过检索文件头,既可以遍历获取模型元信息,又可以根据对象偏移量,直接定位到目标模型元数据所在地址,获取模型元数据。

2.2 顾及用户体验的多层次ID结构设计

在本文城市模型组织的数据库设计中,并没有采用传统数据库的单项ID结构,而是使用了顾及用户体验的多层次ID结构(图1)。该ID结构的第0字节是管理字节;第1~4字节存放着随机变量;第5~7字节存放着自增序列。其中,第0字节负责元数据的管理,该字节的1~3位代表着该模型LOD的数目。第1~4字节中的随机变量代表着不同的工作区,即当出现新工作区时,首先把新工作区的随机变量与库中的随机变量进行比较,如果两者相等,那么,该随机变量重新生成,重复上述过程,直到无重复。同理,材质中存储的纹理ID第0字节的1~3位,存储了纹理的LOD级数j。这种ID结构不仅较好地体现出了数据之间的关联关系,还增加了存储空间的利用率,从而能够满足三维模型生产的需要。

2.3 顾及用户体验的分布式数据库存储结构设计

内存管理对象、磁盘存储对象和绘制缓存对象之间的对应关系是由其粒度决定的,同时,根据数据在不同层次间的传输与交换,可得最小的数据交换输入/输出(I/O)次数。然而,无论在哪一层次中,数据只用一个一维的线性数据序列表示。如果不考虑结构的统一,当相应粒度的数据块从磁盘取出后,通过一次I/O操作进入内存管理对象时,需要磁盘数据块中的数据序列经过相应的重新排序与表达,才能成为内存管理对象中所能进行分析与应用的对象;同样,同一粒度的数据传输到绘制缓存时,也需要将磁盘中的数据粒度中的线性序列转化为绘制缓存所需要的数据序列。随着数据量的增加,数据序列的变化代价变得越来越高,进而影响到用户的体验。因此,为了减少数据交换次数,提升用户体验,本文针对磁盘、内存与显存中同一粒度的数据单元,提出一种顾及用户体验的分布式数据库存储结构,在该结构中,以最终应用端所采用的数据序列的数据结构为基础,统一了其余各层次中粒度数据单元的数据结构,图2展示了存储的逻辑模型。例如,在进行实时绘制的应用中,以绘制缓存中的数据描述列表为基本组织结构,统一内存与磁盘中的数据组织结构。此外,考虑到MongoDB的存储采用键值对,因此数据按照二进制块打包存储。

图2 存储逻辑模型Fig.2 Logical model of storage

3 模型绘制效率提高关键技术设计

(1)文件系统存储管理方法。在对城市中的各类对象进行三维建模时,由于对象精度的不同造成了对象表达数据量的差异,因此,如何高效地组织与存储大范围城市中的各类模型数据,成为各种基于城市实时应用系统的难点与不可回避的问题。现有的组织方法在内存管理中使用面向对象的方法进行数据的表达,而磁盘采用基于图元列表的文件存储,绘制缓存中则使用多个顶点数组、纹理对象生成绘制图像。通过研究三维城市模型的应用、组织与存储结构发现,如果对象的数据组织粒度不一致,那么,单一的数据请求将会占用多个磁盘I/O操作。为了解决这个难题,本文使用了顾及用户体验的分布式数据库存储结构,实现了磁盘、内存、显存中数据结构的统一,从而有效地减少了I/O操作次数,能够实现更快的用户响应,达到改善用户体验的目的。

(2)基于多线程的动态调度机制。线程可以分为粗粒度与细粒度两个层次。其中细粒度多线程可以在每个时钟周期的多个线程中进行上下文切换,从而有效地减少了垂直开销,提高了总的吞吐率,但这会影响到单个线程的执行性能。当线程遇到长延迟操作时,粗粒度多线程可以对线程进行上下文切换,有助于提高处理器执行资源的利用率。本文使用基于多线程的动态调度机制实现线程粒度的动态控制,有助于提高执行效率和资源利用率,有助于缩短任务执行时间和提升模型绘制效率。

(3)基于流水线的多线程协同机制。本文针对应用处理、数据加载、模型绘制这3个阶段,建立了基于流水线的多线程协同机制,即根据三维城市模型数据的特点建立多线程分配机制和控制机制,以实现基于CPU与GPU联合处理的线程处理方法与协同方法。通过采用不同的线程处理加载任务和绘制任务,能够有效地减少数据加载对绘制的阻塞。例如,在大规模三维城市环境下,模型数据被存储在多磁盘系统中,使得数据散布于多个磁盘系统中,如果采用多线程从多个磁盘系统并行读取数据,能够更好地利用多磁盘系统并行I/O能力,实现数据并行加载与传输,缩短模型数据的整体加载时间和传输时间。

(4)以用户为中心的自适应可视化策略。本文所采用的以用户为中心的自适应可视化策略能够根据场景的不同选择合适的绘制周期,并选择相应的场景数据表达,从而确保系统的流畅性,还能够对用户交互与感兴趣区域进行重点可视化。多用户模式的自适应可视化系统有两个重要特征:一是具有不同背景的用户通常会提出个性化的信息需求,这就要求系统具备多种可视化表现形式;二是系统需要能够根据用户信息自适应地选取可视化表现形式。例如,在虚拟环境中,能够满足不同用户所特有的视觉需求,即要根据用户的交互动作及与场景中其他对象的相对位置,决定显示哪些对象、每个对象的显示方式、场景的显示风格和速度等。在用户为中心的自适应可视化过程中,系统首先从人机交互中得到当前视点位置,并根据当前视点位置确定视景体可见范围大小;接着调度模块根据视景体参数,使用场景的组织索引结构计算得到可见场景节点,并将可见节点送入数据调度模块;然后数据调度模块根据空间组织节点与存储文件的映射关系,得到磁盘存储数据并开启磁盘I/O,同时将数据加载到内存缓存中;最后,绘制的API接口(如OpenGL)根据内存缓存中的数据进行图元的组装、状态的设置与场景绘制环境的设置,并把数据与图元绘制命令、绘制控制语句等传输到图形绘制设备缓存中完成图像的显示,其过程如图3所示。

图3 实时绘制过程流水线Fig.3 Workflow of physical model of storage

(5)多模式路径漫游机制。本文设计的多模式路径漫游方式主要包括人机交互漫游和路径漫游。人机交互漫游是传统的各系统漫游方式,又被称为交互式漫游,即通过操作键盘和鼠标等终端设备实现任意漫游;路径漫游则是通过选择预先设定的路径进行漫游。通常交互式漫游的命令包括左转、右转、前进、后退、上升、下降、仰视、俯视、左平移、右平移等,而人机交互漫游还包括左旋、右旋、上旋、下旋、放大视景体角度、缩小视景体角度等命令。路径漫游中也包含了许多交互操作和切换特效。通过使用多模式路径漫游机制,能够改进现有的路径设计方法和漫游方式,增加路径切换特效,方便用户的漫游操作,让用户获得一个更加舒适的漫游环境和享受漫游过程,达到更好的用户体验。

4 实验与分析

4.1 实验环境

实验场景设为武汉市,该市由武昌区、青山区、洪山区、汉阳区、硚口区、江岸区和江汉区组成。数据中包括地上建筑、市政设施、管道以及道路网络模型数据,而地下数据则主要包括管线数据、地下构造、地质体数据等。通过相关合并后,7个行政区包含87个小绘制工作单元,当把这87个小工作区的相关数据输入数据库中,其几何数据量为6.8 GB,而纹理数据达62.9 GB,工程总数据量达70.7 GB。软硬件配置情况为:操作系统为 Windows 2003,中央处理器为Intel Core i7 8核处理器,硬盘为单个希捷7 200转/min,500 GB容量硬盘,内存大小为4 GB,DDR2 667 MHz,显示卡为Geforce GTS 250,512 MB缓存大小。采用19寸宽屏显示,显示分辨率为1 440×900。

4.2 实验结果与分析

为了验证本文提出方法的性能,本节将从响应时间、数据传输量、场景调度三方面对其进行测试。利用gDebugger测试工具对Layer-Feature组织方法、基于R树索引的组织方以及本文所提方法的响应时间进行了测试,测试结果如表2所示。从表2中可以看出,对于同一个场景,本文方法能够极大地减少首次传输数据规模,从而实现响应速度的提高。同时,由表2可见,与其他两种方法相比,本文所提方法的响应时间最短,缓存数据最少。这是因为在对三维模型索引元数据和最粗一级模型LOD打包组织后,并不需要将场景格网内模型对象完整取出,只需将场景范围内格网块取出并快速绘制最粗一级模型,从而实现了缓存数据及响应时间的减少。其次,设计了实验2对同一个实验场景在不同组织方法下(图4)的无效数据传输量,即在视景体中并不可见的几何与纹理细节的数据量进行对比,结果如表3所示。从表3中可看出,本文方法能够有效地减少无效数据传输量。使用本文所提方法在3 s、5 s、10 s进行场景切换时,分别能够减少73.3%、56.1%、15.8%的无效数据传输。

5 结语

大数据是各种应用的主流特点,其中,三维城市的可视化应用分析无疑是大数据时代的典型案例,三维城市模型的复杂性、粒度差异和传输特点导致多用户并发访问是重要的瓶颈问题。本文针对以上问题,提出了一种顾及用户体验的三维城市模型组织方法,并给出了相关的设计与实现。在顾及用户体验的三维城市模型组织方法中,分别对数据的建模和组织以及最终的高效绘制进行了详细地介绍。实验表明,本文提出的方法能够增加数据传输的效率,平衡调度的粒度,减少无效数据的传输,提高响应速度,改善用户体验。

[1] 周东波,朱庆,杜志强,等.粒度与结构统一的多层次三维城市模型数据组织方法[J].武汉大学学报(信息科学版),2011,36(12):1406-1409.

[2] 龚俊,朱庆,章汉武,等.基于R树索引的三维场景细节层次自适应控制方法[J].测绘学报,2011,40(4):531-534.

[3] 胡昌平,邓胜利.基于用户体验的网站信息构建要素与模型分析[J].情报科学,2012,24(3):321-325.

[4] 刘群,冯丹.基于层次结构的元数据动态管理方法的研究[J].计算机研究与发展,2011,46(z2):78-82.

[5] 孙敏,薛勇,马蔼乃.基于格网划分的大数据集DEM三维可视化[J].计算机辅助设计与图形学学报,2012,14(6):566-570.

[6] 万刚,高俊,刘颖真.基于阅读实验方法的认知地图形成研究[J].遥感学报,2013,12(2):339-346.

[7] 胡金星,马照亭,吴焕萍,等.基于格网划分的海量地形数据三维可视化[J].计算机辅助设计与图形学学报,2011,16(8):1164-1168.

[8] ANDUJAR C,BRUNET P,Ayala D.Topology-reducing surface simplification using a discrete solid representation[J].ACM transactions on Graphics,2002,21(2):88-105.

[9] PARK K.Location-based grid-index for spatial query pro-cessing[J].Expert Systems with Applications,2014,41(4):1294-1300.

猜你喜欢
格网漫游粒度
粉末粒度对纯Re坯显微组织与力学性能的影响
遥感数据即得即用(Ready To Use,RTU)地理格网产品规范
实时电离层格网数据精度评估
矢量点状数据抽稀方法的研究与实现
霹雳漫游堂
基于粒度矩阵的程度多粒度粗糙集粒度约简
NASA漫游记
双粒度混合烧结矿颗粒填充床压降实验
泉州湾表层沉积物粒度特征分析
平均Helmert空间重力异常格网构制方法