Print

发布时间: 2018-07-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170501
2018 | Volume 23 | Number 7




    计算机图形学    




  <<上一篇 




  下一篇>> 





图形图像融合的海量建筑绘制
expand article info 周杨1, 胡校飞1, 靳彩娇2, 张龙1, 陈安东1
1. 信息工程大学, 郑州 450001;
2. 61175部队, 武汉 430074

摘要

目的 城市3维模型数据海量且结构复杂,缺乏一个高效完善的可视化系统往往是影响数字城市应用的瓶颈之一。通常利用多层次细节(LOD)与调度算法减少每一帧绘制的数据量来提高绘制效率,当场景规模足够大时,即使采用复杂的优化算法也难以取得较好的效果。为此,本文在传统算法基础上,提出一种图形图像融合的海量建筑物场景绘制方法。方法 提出并采用视域分级绘制策略,将视椎体平行分割为感兴趣区域、次感兴趣区域和非感兴趣区域,感兴趣区域采用图形实时绘制方法,使用离屏渲染技术将次感兴趣和非感兴趣区域绘制在纹理图像中,每一帧绘制完成后将二者进行顾及深度信息的融合,实现完整场景渲染。结果 使用公开的纽约市区CityGML文件作为实验数据,数据包含了118 195个LOD1和LOD2级别的建筑物模型。分别构建多组不同建筑数量的场景进行帧率统计实验,绘制帧率都达到20帧/s以上。算法实现了视觉无损失的场景完整渲染,并与Cesium平台进行对比实验,证明算法有效且系统运行流畅。结论 图形图像融合的绘制方法,既保持了图形渲染的漫游连续性,同时也具有图像渲染的场景复杂度无关的优点。实验结果表明,针对大规模的低分辨率建筑模型场景,算法可以有效提高系统的渲染能力,在性能相对较低的硬件条件下也能实现海量建筑物实体模型的流畅漫游,并达到视觉无损失的场景完整绘制。

关键词

城市3维; 图形图像融合; 大规模场景; 海量数据; 城市建筑

Graphic-image mixed method for large-scale building rendering
expand article info Zhou Yang1, Hu Xiaofei1, Jin Caijiao2, Zhang Long1, Chen Andong1
1. Institude of Surveying and Mapping, Information Engineering University, Zhengzhou 450001, China;
2. 61175 Troops, Wuhan 430074, China
Supported by: National Natural Science Foundation of China (41701463)

Abstract

Objective Constructing a smart city is an effective approach to achieve sustainable development and enhance the comprehensive competitiveness of cities. A 3D city visualization system is an important part of smart city applications. The structure of a 3D city building model is complex and the data are exceedingly huge. One of the bottlenecks that restrict the dissemination of digital 3D city applications is lack of an efficient and mature visualization system. Level of detail (LOD) and out-of-core algorithms are the key points in many existing large-scale building scene rendering techniques. The algorithms can improve the rendering efficiency by reducing the amount of data drawn in each frame. When the scene is sufficiently large, even the complex optimization algorithm cannot achieve improved results. Thus, rendering of 3D city buildings is extremely slow. Method A novel idea was developed based on the traditional study. We present a graphic-and image-mixed method for large-scale building scene rendering. First, the view frustum is split into three regions along the z axis, as follows:interesting region, less interesting region, and uninteresting region from near to far. We adopt the different rending methods in each region. The building models are drawn in the interesting region on the screen by the traditional graphics method. In the less interesting and uninteresting regions, the image-based rendering and off-screen rendering technology is used by applying the frame buffer object and render-to-texture technology and then drawing the building models on a texture image, where the render buffer is attached. At the end of each frame, the texture image is blended with the screen in consideration of the depth information to obtain the final rendering result. We design a 3D building tile model to improve the efficiency of data load and rendering. The city extent is split with grids. The buildings in the same grid cell compose a tile, and R-Tree index is used to search these tiles. The geo database 3Dcitydb is used in data processing. Result The algorithm is tested on a huge public CityGML model data in urban areas of New York, which includes 188195 building models at LOD0 and LOD1 levels. Several groups of experiments are conducted to compute the scene drawing frame rate. The amount of building model data varies in each experiment. The frame rate is better than 20 frame/s in each scene drawing experiment. We also compared the visualization result with Cesium platform. The LOD algorithm used in Cesium extracts only some distant buildings to improve the rendering efficiency. Some models are lost in the scene. However, this technology can draw the entire scene without any loss. The experimental result is acceptable and shows that the system is operating smoothly. Conclusion The graphic-image mixed scene rendering method maintained the continuity of scene roaming, and at the same time, has the advantage of image-based rendering technology, where the rendering frame rate is independent of the scene scale. The experimental results demonstrate that the algorithm can improve the data-bearing capacity of the visualization system, especially the large-scale low-resolution building scene. It can roam the huge building data smoothly under conditions of relatively low hardware performance and finally render the scene without vision loss.

Key words

city 3D; graphics and image mixed; large-scale scene; huge data; ubran building

0 引言

智慧城市建设是实现城市可持续发展的有效手段,虚拟城市作为智慧城市建设的重要内容,在军事、城市规划、交通导航、社交娱乐等多领域内都具有应用价值。例如,城市3维仿真技术应用在政府部门的市政规划中,可以节约设计成本,提高工作效率;军事方面,在虚拟城市中进行军事训练演习,可以在不受政治环境限制的前提下,达到提高军事战斗力的目的。

由于城市3维数据海量并且结构复杂,缺乏一个高效完善的可视化系统往往是影响数字城市应用的瓶颈之一。随着技术的进步,特别是激光雷达、无人机、倾斜摄影等技术的快速发展,在相对较短的时间内获取大范围具有纹理信息的城市3维模型已经成为现实。数字城市3维建筑模型的建模效率和获取的模型数据质量都不断提升,在提高视觉效果和用户体验的同时,更是增加了大规模城市3维场景可视化的技术难度。经过数十年的发展,尽管计算机图形硬件加速和处理能力大幅提升,学术和工程实践方面也积累了大量的研究成果,大规模城市建筑物模型绘制技术在实际应用当中依然存在诸多问题,是GIS、3维仿真等多领域共同关注的研究热点之一。

1 相关工作

在整个城市级别的海量建筑物场景中,每个视景都包含了上万个建筑物模型和数百万级的三角面片,空间数据海量并且数据结构复杂,想要进行完全实时的绘制是相当困难的。再者计算机硬件条件的限制,更增加了实时渲染的技术难度,即使采用复杂的算法,也往往难以满足需求,应用上也存在一定的局限性。

在模型数据存储服务方面,支持空间查询的面向对象数据库是主流方案之一,基于非结构化的NoSQL数据库逐渐成为研究热点, 文献[1]提供了基于NoSQL的3维空间数据库技术细节,文献[2]对MongoDB和PostgreSQL两种常用的空间数据库进行了对比。空间索引是高效处理海量数据的关键,R树是一种海量城市3维建筑模型应用广泛的空间索引结构[3-4]。多层次细节(LOD)[5]和Out-of-Core内外存调度[6]结合是城市3维场景绘制的主要方法之一。文献[7]利用GPU实现了边折叠简化算法和动态LOD技术,实现了复杂模型的高效绘制。文献[8]充分利用GPU性能,采用CUDA平台实现了R树索引,并采用了一种在GPU内部进行模型简化的动态LOD方法,实现了海量城市建筑的高效绘制。文献[9]提出了一种混合图元LOD算法,采用更简单的点线图元模型作为LOD中的粗分辨率模型来达到提高绘制效率的目的,算法相比于传统的几何模型LOD算法有数倍的渲染加速。文献[4]中采用R树索引,并采用自适应的LOD控制方法,实现了2万多个建筑的实时调度。文献[10]在构建符合OGC标准的网络数据服务基础上,然后分别采用Nasa Java World Wind (NWW)和Cesium作为客户端实现了基于网络的城市3维仿真。文献[11]采用了一种面向服务的网络城市3维模型可视化方案。

图像渲染(IBR)[12-14]是大规模城市3维场景可视化的主流技术之一。相比于基于3维几何模型的绘制,图像渲染可以实现与场景几何形状复杂度无关的渲染绘制。街景地图就是一种应用广泛的图像渲染技术。但是IBR技术存在缺乏模型的几何信息、难以连续漫游等缺陷,使其应用存在一定的限制。

目前采用LOD和调度算法结合的大规模城市3维场景可视化方法,大部分研究都集中于通过LOD模型算法来尽可能减少每一帧绘制的数据量,算法过于复杂并且在某些情况下可能会造成视觉上的失真。本文在LOD和调度算法基础上采用了一种新的思路,提出一种视域分级的绘制策略,首先将视椎体平行分割分为感兴趣区域、次感兴趣区域和非感兴趣区域,然后采用图形图像结合的绘制方法,以时间换取空间来减少每一帧的绘制压力,实现海量城市建筑模型的连续性漫游与视觉无损失的场景完整绘制。

2 本文方法

人类视觉处理中,虽然人眼看到的场景是广阔复杂的,但是大脑只是将注意力集中于场景中的部分对象,也就是视觉感兴趣区域,感兴趣区域会被大脑优先处理。本文将该原理应用于海量城市建筑3维仿真中,物体随着视点距离由近到远,用户的感兴趣程度逐渐降低。根据用户对场景中不同区域的感兴趣度不同,分为感兴趣区域、次感兴趣区域和非感兴趣区域,对不同区域采用不同优先级的绘制策略。优先保证感兴趣区域的交互实时绘制。对于次感兴趣和非感兴趣区域,当用户停止拖拽固定视点时进行绘制,采用图像渲染技术和纹理渲染(RTT)技术,将模型绘制到FBO中,根据视点位置动态生成纹理,在每一帧结束的时候进行屏幕融合,最终达到视觉无损失的场景完整渲染。视点位置移动之后,次感兴趣和非感兴趣区域中每个模型只用绘制一次即可,减少了绘制冗余。利用文献[7]中提出的帧与帧之间一致性原理,将次感兴趣区域中的模型数据也存储在GPU高速缓存中,减少用户响应时间并提高渲染效率。方法的主要过程包括海量建筑数据模型构建、视域分级、数据调度、场景绘制等。

图 1 本文方法概述
Fig. 1 The overview of our approach

2.1 海量建筑数据模型

CityGML是一种用于虚拟3维城市模型存储和交换的标准数据格式,很多学者都采用该格式数据作为研究的实验数据[10-11, 15]。但是CityGML的设计初衷是用来表示和存储3维城市模型数据的,难以直接用于有效率的绘制,因此需要对数据进行处理。R树为海量城市3维建筑模型应用最广泛的空间索引结构之一,但是直接利用R树构建整个城市的建筑索引,生成的R-Tree层次过深,并且在渲染时需要生成过多的绘制指令,造成图形显卡的效率损失。Cesium是一款优秀的基于网络的开源全球可视化仿真平台,Cesium团队提出了一种3D Tiles Streaming方法[16-17]实现了全球地形、影像、建筑、点云和矢量数据等海量多源数据的集成。本文借鉴3D Tiles方法构建3D Building Tile,首先在2维平面上将城市空间划分为合适大小的格网,剔除空的网格,落入同一个网格中的建筑构成一个Tile。将每个Tile中的建筑物合并为一个几何体,这样每个Tile在渲染时只用调用一次绘制函数。为了便于视椎体剔除计算,对生成的Tile集合构建基于BVH的3维R树索引。R树索引的相关算法已经比较成熟,这里不再详细介绍。

2.2 自适应视域分割策略

场景的分级策略需合理,平行分割阴影图(PSSM)[18]算法是一种有效地解决大范围场景阴影生成方法。本文借鉴PSSM算法中的视椎体平行分割方法,将视椎体由近及远平行分割为3个部分,分别为感兴趣、次感兴趣和非感兴趣区域,需要两个分割点。找出合适的分割点是视椎体分割的关键,分割点距离近裁剪面越远,即感兴趣区域范围越大则视觉效果越好;但考虑性能,感兴趣区域越小则性能越高,因此分割点的选取要综合考虑视觉效果和性能因素。

为了满足性能和视觉效果的平衡,本文采用了一种自适应的方法,根据GPU的渲染和存储能力设定合适的分割参数。在检索时,将需要加载的节点[1, 2, …,n]按照视点距离从小到大排列,以第$k_{1}$和第$k_{2}$个节点为分割点将所有节点划分为3个区域。节点[1, 2, …,$k_{1}$]即为感兴趣区域,节点[$k_{1}+1, k_{1}+2, …,k_{2}$]为次感兴趣区域,节点[$k_{2}+1, k_{2}+2, …,n$]为非感兴趣区域,如图 2所示。$k_{1}$值越大视觉效果越好,但感兴趣区域实时渲染时间长,难以预留足够时间进行其他区域的离屏绘制。感兴趣和次感兴趣区域的模型数据都存储在GPU的显存中,$k_{2}$的设定要充分利用GPU的显存容量,并且不能造成显存溢出。根据实际数据和硬件情况设定$k_{1}$, $k_{2}$的值,假设某区域的最大显存设定为$M_{i}$$m_{j}$为第$j$个节点存储的显存中所需的显存大小,则分割节点$k_{i}$应满足

图 2 自适应视椎体分割方法
Fig. 2 Adaptive view frustum split

$ \sum\limits_{j = {k_{i - 1}}}^{{k_i}} {{m_j} \le {M_i} \le } \sum\limits_{j = {k_{i - 1}}}^{{k_{i + 1}}} {{m_j}} $ (1)

此时$k_{1}$的值为初始值,在绘制过程中,统计每一帧感兴趣区域实时绘制所用的时间,对$k_{1}$的值进行调整优化。

假设$d_{i}$为分割面距离视椎体近裁减面的距离。则$d_{i}=d(k_{i})-f_{n}$$d(k_{i})$为第$k_{i}$个节点到视点的距离,$f_{n}$为近裁减面。

2.3 图形图像融合绘制

视域分割后,对不同区域采用不同优先级的分级绘制策略。对于感兴趣区域每帧都重新绘制,达到交互实时渲染的要求。

对于次感兴趣和非感兴趣区域,当用户停止拖拽操作,视点固定时才开始绘制操作。采用基于图像的渲染方法,将建筑模型渲染到FBO中,动态的生成纹理图像。每一帧的循环开始的时候并不进行颜色和深度缓冲区的清空操作,当视点移动时,清空缓冲区,移动停止再进行重新绘制。每一帧绘制操作完成的时候将生成的图像与屏幕融合。

在视域分级策略的基础上采用图形图像融合的绘制方法,可以弹性的适应硬件环境的性能条件。这里采用图像绘制是一种以时间换取空间来实现更大规模场景绘制的策略。当硬件性能较好时可以设置感兴趣区域更大的范围,获得更好的体验效果;反之当硬件性能相对较低时,设置感兴趣区域较小的范围,最终也能实现场景的完整呈现。

场景的更新和筛选都在更新线程中完成,在绘制线程中只进行绘制操作。每一帧具体的绘制过程如图 3所示:首先进行编译操作,将固定数量的已经加载到内存中的模型数据编译为VBO对象存储在显存中。然后绘制感兴趣区域的模型队列,记录绘制所用时间,每帧最大时间减去记录时间,就是用来进行离屏渲染的时间。离屏渲染阶段,首先绘制次感兴趣区域中的模型数据,然后绘制非感兴趣区域中的模型数据。非感兴趣区域模型绘制采用流式处理的方法,在内存中建立缓存队列$L_{3}$,更新线程根据视点位置信息更新$L_{3}$中的模型数据。限定$L_{3}$的大小为$M_{3}$,在更新完成的回调函数中检查队列$L_{3}$的个数,当队列$L_{3}$中模型个数大于$M_{3}$时暂停加载新的模型。绘制线程依次从$L_{3}$中取出顶点数据和索引数据信息,并构建VAO对象进行绘制,绘制完成后将模型置入剔除队列,由GC收集器统一进行资源释放。

图 3 图形图像融合绘制流程
Fig. 3 Graphics-image mixed rending pipeline

2.4 顾及深度信息的屏幕融合

在每帧的绘制完成后需要将FBO中的颜色纹理与屏幕进行融合。传统的RTT技术采用纹理映射的方法将FBO颜色纹理作为场景中某个图形的纹理单元融合到场景中。该方法存在不能处理遮挡情况的问题,例如场景中有一座山,绘制在FBO中的两个建筑物,一个在山的前面,另一个在山的后面,简单地采用纹理映射的方法难以处理这种遮挡情形。为解决该问题,本文采用了顾及深度信息的融合方法。在进行图像渲染时,同时启用颜色和深度缓冲区,大小与屏幕一致。采用与真实相机相同的模型视图矩阵和投影矩阵,这样就能得到与屏幕一致的图像大小和深度信息。为了得到颜色一致的纹理图像,还需设定相同的光照等参数。在每一帧绘制完成时得到颜色纹理$T_{\rm color}$和深度纹理$T_{\rm depth}$,采用GPU编程方法,将$T_{\rm color}$$T_{\rm depth}$都作为GLSL中的$Uniform$对象传入片元着色器中,对每个像素片元,比较该片元坐标处的$T_{\rm depth}$深度值与深度缓存$C_{\rm depth}$深度值大小,当$T_{\rm depth}$的值比$C_{\rm depth}$中已有的值更小时输出$T_{\rm color}$的颜色值;当$T_{\rm depth}$的值更大时输出当前颜色缓存$C_{\rm color}$中的颜色值。坐标$(s, t)$处的片元最终输出颜色

$ {T_{{\rm{out}}}} = \left\{ \begin{array}{l} {T_{{\rm{color}}}}(s, t)\;\;\;\;\;{T_{{\rm{depth}}}} < {C_{{\rm{depth}}}}\\ {C_{{\rm{color}}}}(s, t)\;\;\;\;\;{T_{{\rm{depth}}}} \ge {C_{{\rm{depth}}}} \end{array} \right. $ (2)

2.5 场景建筑物数据流

视点位置的移动引起场景内容的改变,根据视点移动参数等信息,快速的响应并完成场景调度是论文方法的关键。场景调度的目的是解决海量大规模场景数据与有限计算机资源之间的矛盾,对节点进行数据请求加载与剔除操作,动态的更新内存资源。根据上文对场景区域的划分,对每个视椎体子区域分别进行检索,采用流式的并行处理方法,每个子区域的检索操作执行在不同的线程上,提高检索效率。检索过程从场景根节点开始,采用自上而下、深度优先的遍历顺序对场景索引树进行遍历。具体的检索步骤为:

1) 设置根节点为当前节点。

2) 计算当前节点与视椎体空间关系,如果在视椎体之外则进入步骤6)。判断节点是否为叶子节点,如果是则转至步骤5)。如果包围球在视椎体内部则转至步骤4);如果相交则转至步骤3)。

3) 对当前节点的所有孩子节点$[C_{1}, C_{2}…, C_{n}]$,选择节点$S_{n}={\rm min} (d_{1}, d_{2}…, d_{n})$作为当前节点,$d_{i}$为第$i$个节点到当前视点之间的距离。即选择当前未遍历的孩子集合中距离最近的孩子节点。转至步骤2)。

4) 当前节点是否已经加载完成,如果是则终止遍历操作并返回。按照步骤3)中的方法选择子节点,如果子节点是叶子节点则转至步骤5);否则依次将选择子节点作为当前节点重复该步骤。

5) 如果当前叶子节点需要加载模型,则生成请求放入待请求队列中,更新该节点的模型数据,并设置更新回调。该回调的作用是当模型数据完成时将该节点加入待编译队列,并向上更新节点的加载完成标记。

6) 收集该节点下所有已经完成加载的叶子节点,放入待剔除队列中。

上述的3个视椎体子区域是完全贴合的,在模型与视椎体进行空间关系计算时会产生重复。为了解决该问题,对于建筑物索引的叶子节点,在视椎体远平面计算时,只考虑完全包含的情况。这样在两个子区域交面的模型,检索时只会被第2个区域处理,避免了重复问题。

2.6 多层次细节

多层次细节是实现大规模场景绘制的有效手段,CityGML定义了3维城市模型的细节层次划分,将建筑模型分为5个不同层次等级,LOD0是从整体上观察城市的形貌特征。LOD1级别的建筑模型由简单的几何体组成,没有屋顶和纹理。LOD2级别在LOD1的基础上添加了贴图和楼顶结构。LOD3级别具有更复杂的几何细节和更高分辨率的纹理贴图。LOD4级别包括了模型内部的结构,比如房间内饰、楼梯等。本文将多细节层次模型应用到算法中,借鉴文献[4]所用方法,采用视点距离作为多细节层次自适应控制参数,不同级别节点对应不同的距离阈值。阈值采用使用广泛的屏幕空间误差(SSE)阈值进行计算,来判定是节点合适的细节层次。具体的视点距离阈值为

$ {d_i} = \frac{{hk}}{{2\;{r_i}\tan \left( {f/2} \right)}} $ (3)

式中,$d_{i}$为层次$i$对应的视点距离阈值,视点的视场角度为$f$,屏幕像素高为$h$$r_{i}$为节点包围球投影在屏幕上的像素阈值,$k$为控制系数。

3 实验结果与分析

选用公开的纽约部分市区的CityGML模型数据进行实验,实验数据共包含共118 195个建筑物模型;实验硬件配置为Inter i5双核四线程处理器,内存8 GB,NVIDIA的GT940入门级独立显卡,显存4 GB;开发环境为Windows 7 64位操作系统、Visiual Studio 12编译器、Qt 5.4.2、OpenSceneGraph-3.4.0。

利用开源数据库3DCityDB进行数据处理工作。3DCityDB基于PostgreSQL和PostGIS实现,能够处理超大文件的CityGML模型数据。首先利用3DCityDB将Citygml中的建筑物提取出来并存储到PostGIS数据库中,使用3DCityDB导出工具导出KML格式的3维模型文件,导出同时按照合适格网进行划分。然后基于3维引擎OSG,并采用C++语言编程实现对KML文件进行处理,构建3维索引。

按照本文方法,首先将视域分割为感兴趣、次感兴趣和非感兴趣区域,根据实验硬件条件将分割点距离设置为2 100 m、5 000 m。用不同颜色区分不同区域,其中较亮的区域为感兴趣区域,较暗颜色为次感兴趣和非感兴趣区域,如图 4所示。

图 4 场景分割结果
Fig. 4 The scene split result

集成本文所提出的算法,实现了带有纹理信息的大规模建筑物3维场景漫游。图 5是纽约曼哈顿地区的建筑物场景绘制效果。

图 5 场景绘制效果
Fig. 5 Building scene((a) scene 1; (b) scene 2)

绘制帧率是3维仿真系统的重要参数之一,对本文算法的绘制帧率进行实验。从实验数据中分别构建不同数量建筑物模型组成建筑场景。将本文方法与传统方法对比,其中传统方法绘制采用R树索引调度,并启用了视锥体裁剪、细小裁剪等加速绘制策略。

从实验结果表 1可以看出,传统方法随着场景规模的增大,绘制帧率一直减小。当建筑物数据量达到10万级别时,传统方法已经不能适用。而本文方法则表现稳定,在几组实验中,绘制帧率都优于20帧,表现出了绘制帧率与场景复杂度无关的优点。并且本文对建筑物数量为10万的场景漫游时的帧率在时间上进行采样统计,统计结果如图 6所示。从图 6中可以看出绘制帧率在2035帧/s之间,在第15、20秒附近,因为视点完成移动后GPU在实时图形渲染的同时还进行了图像渲染,帧率下降到20帧左右,但是依然能保证绘制的流畅。实验结果表明算法可以实现海量级别的建筑模型场景绘制,并具有良好的用户体验。

表 1 帧率统计
Table 1 FPS statistics

下载CSV
方法 建筑数量
10 000 20 000 40 000 100 000
传统 23 12 7
本文 21 20 22 20
图 6 帧率统计
Fig. 6 The result of FPS statistics

Cesium3维平台提供了实验数据的公开访问服务,将本文方法与Cesium平台进行对比实验,选取两个相同视点对比绘制结果。如图 7所示,其中图 7(a)为本文方法绘制效果,图 7(b)为Cesium目前的实现效果。从图 7中可以看出,Cesium采用LOD算法,剔除掉了视点距离相对较远的部分模型,造成了视觉上的缺失。本文方法虽然需要一些绘制时间,但是最终实现了视觉无损失的场景完整渲染。

图 7 本文方法与Cesium绘制效果对比
((a) the result of our algorithm; (b) the result of Cesium)
Fig. 7 Compared with Cesium platform

4 结论

本文提出了一种视域分级绘制的大规模城市建筑物渲染算法。首先将视椎体平行分割分为感兴趣区域、次感兴趣区域和非感兴趣区域。在LOD和内外存调度的基础上,采用实时图形方法优先对感兴趣区域进行绘制,对于次感兴趣和非感兴趣区域根据视点位置动态的生成纹理图像,并进行屏幕融合,实现场景的完整渲染。算法实质上也是一种图形图像融合的漫游方法,既保持了图形渲染的漫游连续性,同时也具有图像渲染的场景复杂度无关的优点。通过实验证明,算法在相同硬件条件下能有效提高系统的承载能力,在相对性能较低的硬件条件下也可以实现数十万海量级别建筑物的场景漫游,并能达到视觉无损失的场景完整绘制。

本文方法也存在不足,视角的变化引起场景的重新绘制,图像也需要重新生成,对视觉效果造成负面影响。在今后工作中,一方面研究通过数据组织和模型简化方法来加速的图像生成;另一方面将研究视点移动过程中,根据位移矩阵变化对图像进行几何变换和重采样处理来改善用户体验。

参考文献

  • [1] Li S J, Yang H J, Huang Y H, et al. Geo-spatial big data storage based on NoSQL database[J]. Geomatics and Information Science of Wuhan University, 2017, 42(2): 163-169. [杨海军, 黄耀欢, 等. 基于NoSQL数据库的空间大数据分布式存储策略[J]. 武汉大学学报·信息科学版, 2017, 42(2): 163-169. [DOI:10.13203/j.whugis20140774]]
  • [2] Jung M G, Youn S A, Bae J, et al. A study on data input and output performance comparison of MongoDB and PostgreSQL in the big data environment[C]//Proceedings of the 8th International Conference on Database Theory and Application. Jeju, South Korea: IEEE, 2015: 14-17. [DOI:10.1109/DTA.2015.14]
  • [3] He Z W, Kraak M J, Huisman O, et al. Parallel indexing technique for spatio-temporal data[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2013, 78: 116–128. [DOI:10.1016/j.isprsjprs.2013.01.014]
  • [4] Gong J, Zhu Q, Zhang H W, et al. An adaptive control method of LODs for 3D scene based on R-tree index[J]. Acta Geodaetica et Cartographica Sinica, 2011, 40(4): 531-534. [朱庆, 章汉武, 等. 基于R树索引的三维场景细节层次自适应控制方法[J]. 测绘学报, 2011, 40(4): 531-534.]
  • [5] Leite F, Akcamete A, Akinci B, et al. Analysis of modeling effort and impact of different levels of detail in building information models[J]. Automation in Construction, 2011, 20(5): 601–609. [DOI:10.1016/j.autcon.2010.11.027]
  • [6] Li X, Wan W G, Zhu M Y, et al. A fast real-time rendering method of 3D terrain using out-of-core visualization[C]//Proceedings of IET International Conference on Smart and Sustainable City. Shanghai, China: IEEE, 2011: 1-5. [DOI:10.1049/cp.2011.0297]
  • [7] Peng C, Cao Y. A GPU-based approach for massive model rendering with frame-to-frame coherence[J]. Computer Graphics Forum, 2012, 31(2): 393–402. [DOI:10.1111/j.1467-8659.2012.03018.x]
  • [8] HuaJ, Xing T Y, Rui X P, et al. LOD methods of large-scale urban building models by GPU accelerating[C]//Proceedings of the 2nd International Conference on Computer Science and Network Technology. Changchun, China: IEEE, 2012: 853-858. [DOI:10.1109/ICCSNT.2012.6526063]
  • [9] Zhou S C, Yoo I, Benes B, et al. A hybrid level-of-detail representation for large-scale urban scenes rendering[J]. Computer Animation & Virtual Worlds, 2014, 25(3-4): 243–253. [DOI:10.1002/cav.1582]
  • [10] Prandi F, Devigili F, Soave M, et al. 3D web visualization of huge CityGML models[J]. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2015: XL-3/W3:601-605. [DOI:10.5194/isprsarchives-XL-3-W3-601-2015]
  • [11] Pispidikis I, Dimopoulou E. Development of a 3d webgis system for retrieving and visualizing citygml data based on their geometric and semantic characteristics by using free and open source technology[J]. ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2016: Ⅳ-2/W1:47-53. [DOI:10.5194/isprs-annals-Ⅳ-2-W1-47-2016]
  • [12] Li L Y, Shen H W. Image-based streamline generation and rendering[J]. IEEE Transactions on Visualization and Computer Graphics, 2017, 13(3): 630–640. [DOI:10.1109/TVCG.2007.8093671]
  • [13] Kang S B, Li Y, Tong X, et al. Image-based rendering[J]. Foundations and Trends® in Computer Graphics and Vision, 2006, 2(3): 173–258. [DOI:10.1561/0600000012]
  • [14] Chan S C. Image-based rendering[J]. Computer Vision, 2014, 23(3): 392–399. [DOI:10.1007/978-0-387-31439-6_4]
  • [15] Baig S U, Rahman A A. Generalization and visualization of 3D building models in CityGML[M]//Pouliot J, Daniel S, Hubert F, et al. Progress and New Trends in 3D Geoinformation Sciences. Berlin, Heidelberg: Springer, 2013: 63-77. [DOI10. 1007/978-3-642-29793-9_4]
  • [16] Cozzi P. Introducing 3D tiles[EB/OL]. (2015-08-10). https://cesium.com/blog/2015/08/10/introducing-3d-tiles/.
  • [17] Schilling A, Bolling J, Nagel C. Using glTF for streaming CityGML 3D city models[C]//Proceedings of the 21st International Conference on Web3D Technology. Anaheim, California: ACM, 2016: 109-116. [DOI:10.1145/2945292.2945312]
  • [18] Zhang F, Sun H Q, Xu L L, et al. Parallel-split shadow maps for large-scale virtual environments[C]//Proceedings of ACM International Conference on Virtual Reality Continuum and ITS Applications. Hong Kong, China: ACM, 2006: 311-318. [DOI:10.1145/1128923.1128975]