CN108520557A - 一种图形图像融合的海量建筑绘制方法 - Google Patents
一种图形图像融合的海量建筑绘制方法 Download PDFInfo
- Publication number
- CN108520557A CN108520557A CN201810317719.6A CN201810317719A CN108520557A CN 108520557 A CN108520557 A CN 108520557A CN 201810317719 A CN201810317719 A CN 201810317719A CN 108520557 A CN108520557 A CN 108520557A
- Authority
- CN
- China
- Prior art keywords
- interest
- node
- magnanimity
- drafting
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000004927 fusion Effects 0.000 title claims abstract description 22
- 238000009877 rendering Methods 0.000 claims abstract description 39
- 230000015654 memory Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 11
- 239000007787 solid Substances 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 210000003462 vein Anatomy 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 claims description 2
- 238000000151 deposition Methods 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 9
- 229910052792 caesium Inorganic materials 0.000 description 7
- TVFDJXOCXUVLDH-UHFFFAOYSA-N caesium atom Chemical compound [Cs] TVFDJXOCXUVLDH-UHFFFAOYSA-N 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000007500 overflow downdraw method Methods 0.000 description 3
- 239000003973 paint Substances 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
- G06T2207/20104—Interactive definition of region of interest [ROI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Software Systems (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明涉及城市三维模型领域,具体涉及一种图形图像融合的海量建筑绘制方法。本发明在LOD和内外存调度的基础上,采用实时图形方法优先对感兴趣区域进行绘制,对于次感兴趣和非感兴趣区域根据视点位置动态的生成纹理图像,并进行屏幕融合,实现场景的完整渲染。本发明既保持了图形渲染的漫游连续性,同时也具有图像渲染的场景复杂度无关的优点。同时在相同硬件条件下能有效提高系统的承载能力,在相对性能较低的硬件条件下也可以实现数十万海量级别建筑物的场景漫游,并能达到视觉无损失的场景完整绘制。
Description
技术领域
本发明涉及城市三维模型领域,具体涉及一种图形图像融合的海量建筑绘制方法。
背景技术
智慧城市建设是实现城市可持续发展的有效手段,虚拟城市作为智慧城市建设的重要内容,在军事、城市规划、交通导航、社交娱乐等多领域内都具有应用价值。由于城市三维数据海量并且结构复杂,缺乏一个高效完善的可视化系统往往是影响数字城市应用的瓶颈之一。随着技术的进步,特别是激光雷达、无人机、倾斜摄影等技术的快速发展,在相对较短的时间内获取大范围具有纹理信息的城市三维模型已经成为现实。数字城市三维建筑模型的建模效率和获取的模型数据质量都不断提升,在提高视觉效果和用户体验的同时,更是增加了大规模城市三维场景可视化的技术难度。经过数十年的发展,尽管计算机图形硬件加速和处理能力大幅提升,学术和工程实践方面也积累了大量的研究成果,大规模城市建筑物模型绘制技术在实际应用当中依然存在诸多问题,是GIS、三维仿真等多领域共同关注的研究热点之一。
在整个城市级别的海量建筑物场景中,每个视景都包含了上万个建筑物模型和数百万级的三角面片,空间数据海量并且数据结构复杂,想要进行完全实时的绘制是相当困难的。再者计算机硬件条件的限制,更增加了实时渲染的技术难度,即使采用复杂的算法,也往往难以满足需求,应用上也存在一定的局限性。
图像渲染(Image-based Rendering,IBR)是大规模城市三维场景可视化的主流技术之一。相比于基于三维几何模型的绘制,图像渲染可以实现与场景几何形状复杂度无关的渲染绘制。街景地图就是一种应用广泛的图像渲染技术。但是IBR技术存在缺乏模型的几何信息、难以连续漫游等缺陷,使其应用存在一定的限制。
目前采用LOD和调度算法结合的大规模城市三维场景可视化方法,大部分研究都集中于通过LOD模型算法来尽可能减少每一帧绘制的数据量,算法过于复杂并且在某些情况下可能会造成视觉上的失真。
发明内容
本发明的目的是提供一种图形图像融合的海量建筑绘制方法,用以解决现有技术算法复杂导致不易实现和容易出错的问题。
为实现上述目的,本发明提供了一种图形图像融合的海量建筑绘制方法,包括以下步骤:
对三维城市模型数据进行处理得到三维模型文件;
根据GPU显存大小将视椎体由近及远划分为感兴趣区域和非感兴趣区域;
对所述感兴趣区域每帧都重新绘制;
当用户的视点固定时对所述非感兴趣区域进行绘制。
进一步的,所述感兴趣区域和非感兴趣区域之间包括次感兴趣区域。
进一步的,对所述感兴趣区域采用实时图像方法进行绘制;对所述次感兴趣区域和非感兴趣区域采用图像渲染的方法进行绘制。
进一步的,根据所述GPU显存大小设定分割参数,根据所述分割参数划分所述感兴趣区域、次感兴趣区域和非感兴趣区域;
在所述视椎体方向上按照视点距离从小到大排列kN个节点,所述分割参数包括两个所述节点km和kn,k1<km<kn<kN,并且:
其中,Mi为节点ki-1和节点ki+1之间所需的最大显存,mj为第j个节点存储的显存中所需的显存大小,2≤i≤N-1。
进一步的,得到所述三维模型文件的过程包括:
在二维平面上将城市空间划分为设定大小的网格;
剔除空网格,同一个网格中的建筑构成一个Tile;
将每个Tile中的建筑物合并为一个几何体。
进一步的,对所述次感兴趣区域和非感兴趣区域采用图像渲染的方法进行绘制的过程包括:
当用户视点固定时,基于图像的渲染方法,将建筑模型渲染到FBO中,并动态生成纹理图像。
进一步的,将绘制后的所述感兴趣区域、次感兴趣区域和非感兴趣区域进行融合获得完整场景的过程包括:
每一帧绘制完成时进行顾及深度信息的融合;
在进行图像渲染时,同时启用颜色和深度缓冲区,大小与屏幕一致;
采用与真实相机相同的模型视图矩阵和投影矩阵;
设定相同的参数得到颜色一致的纹理图像;
每一帧绘制完成时将得到的颜色纹理和深度纹理传入片元着色器中;
对于每个像素片元,如果片元坐标处的深度纹理值小于深度缓存值时,输出颜色纹理值;如果片元坐标处的深度纹理值大于深度缓存值时,输出深度纹理值。
进一步的,每一帧具体的绘制过程包括:
进行编译操作,将固定数量的已经加载到内存中的模型数据编译为VBO对象存储在显存中;
绘制感兴趣区域的模型队列,记录绘制所用时间,每帧最大时间减去记录时间就是用来进行离屏渲染的时间;
离屏渲染阶段,绘制次感兴趣区域中的模型数据,然后绘制非感兴趣区域中的模型数据;非感兴趣区域模型绘制采用流式处理的方法,在内存中建立缓存队列L3,根据视点位置信息更新L3中的模型数据;
限定L3的大小为M3,在更新完成的回调函数中检查队列L3的个数,当队列L3中模型个数大于M3时暂停加载新的模型;
绘制线程依次从L3中取出顶点数据和索引数据信息,并构建VAO对象进行绘制,绘制完成后将模型置入剔除队列,由GC收集器统一进行资源释放。
进一步的,根据所述三维模型文件建立三维索引,根据所述三维索引检索所述三维城市模型数据的过程包括:
采用并行处理方法对所述感兴趣区域、次感兴趣区域和非感兴趣区域分别进行检索,每个区域的检索在不同的线程上执行;
检索过程从区域的根节点开始,采用自上而下、深度优化的顺序对所述三维索引进行遍历;
所述检索过程包括:
设置当前节点为所述根节点;
计算当前节点与视椎体的空间关系,如果在视椎体外则收集当前节点下所有已经完成加载的叶子节点,并放入待剔除队列中;
如果当前节点为叶子节点,且当前叶子节点需要加载模型,则生成请求放入待请求队列中,更新该节点的模型数据,并设置更新回调,使模型数据完成时将该节点加入待编译队列,并向上更新节点的加载完成标记;
如果包围球在视椎体内部,且当前节点已经完成加载,则终止遍历操作,然后选择子节点作为当前节点并判断是否为叶子节点;如果不是则重复选择子节点;
如果包围球与视椎体相交,则进入选择子节点操作,所述选择子节点包括:选择当前节点的所有子节点中到当前视点的距离最小的子节点作为当前节点;然后计算当前节点与视椎体的空间关系。
进一步的,加入多细节层次模型,采用视点距离作为多细节层次自适应控制参数,不同级别节点对应不同的视点距离阈值;采用屏幕空间误差方法计算所述视点距离阈值,并根据所述视点距离阈值判定节点合适的细节层次;所述视点距离阈值的计算公式为:
其中,di为层次i对应的视点距离阈值;视点的视场角度为fov,屏幕像素高为h,ri为节点包围球投影在屏幕上的像素阈值,k为控制系数。
本发明的有益效果是:本发明在LOD和内外存调度的基础上,采用实时图形方法优先对感兴趣区域进行绘制,对于次感兴趣和非感兴趣区域根据视点位置动态的生成纹理图像,并进行屏幕融合,实现场景的完整渲染。本发明既保持了图形渲染的漫游连续性,同时也具有图像渲染的场景复杂度无关的优点。同时在相同硬件条件下能有效提高系统的承载能力,在相对性能较低的硬件条件下也可以实现数十万海量级别建筑物的场景漫游,并能达到视觉无损失的场景完整绘制。
附图说明
图1是本发明方法流程图;
图2是本发明中自适应视椎体分割方法示意图;
图3是本发明中视椎体分割结果示意图;
图4是实施例1采用本发明方法后的场景绘制效果图;
图5是实施例2采用本发明方法后的场景绘制效果图;
图6是本发明中帧率统计示意图;
图7是实施例3采用本发明方法后的场景绘制效果图;
图8是实施例3采用Cesium方法后的场景绘制效果图。
具体实施方式
下面结合附图对本发明做进一步详细的说明。
人类视觉处理中,虽然人眼看到的场景是广阔复杂的,但是大脑只是将注意力集中于场景中的部分对象,也就是视觉感兴趣区域,感兴趣区域会被大脑优先处理。本发明将该原理应用于海量城市建筑三维仿真中,物体随着视点距离由近到远,用户的感兴趣程度逐渐降低。根据用户对场景中不同区域的感兴趣度不同,分为感兴趣区域、次感兴趣区域和非感兴趣区域,对不同区域采用不同优先级的绘制策略。优先保证感兴趣区域的交互实时绘制。对于次感兴趣和非感兴趣区域,当用户停止拖拽固定视点时进行绘制,采用图像渲染技术和纹理渲染(RTT)技术,将模型绘制到FBO中,根据视点位置动态生成纹理,在每一帧结束的时候进行屏幕融合,最终达到视觉无损失的场景完整渲染。视点位置移动之后,次感兴趣和非感兴趣区域中每个模型只用绘制一次即可,减少了绘制冗余。利用帧与帧之间一致性原理,将次感兴趣区域中的模型数据也存储在GPU高速缓存中,减少用户响应时间并提高渲染效率。主要过程包括海量建筑数据模型构建、视域分级、数据调度、场景绘制等,如图1所示。
1、海量建筑数据模型
CityGML是一种用于虚拟三维城市模型存储和交换的标准数据格式,很多学者都采用该格式数据作为研究的实验数据。但是CityGML的设计初衷是用来表示和存储三维城市模型数据的,难以直接用于有效率的绘制,因此需要对数据进行处理。R树为海量城市三维建筑模型应用最广泛的空间索引结构之一,但是直接利用R树构建整个城市的建筑索引,生成的R-Tree层次过深,并且在渲染时需要生成过多的绘制指令,造成图形显卡的效率损失。Cesium是一款优秀的基于网络的开源全球可视化仿真平台,Cesium团队提出了一种3DTiles Streaming方法实现了全球地形、影像、建筑、点云和矢量数据等海量多源数据的集成。本发明借鉴3D Tiles方法构建3D Building Tile,首先在二维平面上将城市空间划分为合适大小的格网,剔除空的网格,落入同一个网格中的建筑构成一个Tile。将每个Tile中的建筑物合并为一个几何体,这样每个Tile在渲染时只用调用一次绘制函数。为了便于视椎体剔除计算,对生成的Tile集合构建基于BVH的三维R树索引。R树索引的相关算法已经比较成熟,这里不再详细介绍。
2、自适应视域分割策略
场景的分级策略需合理,平行分割阴影图(Parallel-split shadow maps,PSSM)算法是一种有效的解决大范围场景阴影生成方法。本发明借鉴PSSM算法中的视椎体平行分割方法,将视椎体由近及远平行分割为三部分,分别为感兴趣、次感兴趣和非感兴趣区域,需要两个分割点。找出合适的分割点是视椎体分割的关键,分割点距离近裁剪面越远,即感兴趣区域范围越大则视觉效果越好;但考虑性能,感兴趣区域越小则性能越高,因此分割点的选取要综合考虑视觉效果和性能因素。
为了满足性能和视觉效果的平衡,本发明采用了一种自适应的方法,根据GPU的渲染和存储能力设定合适的分割参数。在检索时,将需要加载的节点[k1,k2,…kN]按照视点距离从小到大排列,以第km和第kn个节点为分割点将所有节点划分为三个区域。节点[k1,k2,…km]即为感兴趣区域,节点[km+1,km+2,…kn]为次感兴趣区域,节点[kn+1,kn+2,…kN]为非感兴趣区域,如图2所示。km值越大视觉效果越好,但感兴趣区域实时渲染时间长,难以预留足够时间进行其它区域的离屏绘制。感兴趣和次感兴趣区域的模型数据都存储在GPU的显存中,kn的设定要充分利用GPU的显存容量,并且不能造成显存溢出。根据实际数据和硬件情况设定km和kn的值,假设某区域的最大显存设定为Mi,mj为第j个节点存储的显存中所需的显存大小,则分割节点ki应满足:
此时k1的值为初始值,2≤i≤N-1;在绘制过程中,统计每一帧感兴趣区域实时绘制所用的时间,对k1的值进行调整优化。
假设di为分割面距离视椎体近裁减面的距离。则di=dis(ki)-near,dis(ki)为第ki个节点到视点的距离,near为近裁减面。
3、图形图像融合绘制
视域分割后,对不同区域采用不同优先级的分级绘制策略。对于感兴趣区域每帧都重新绘制,达到交互实时渲染的要求。
对于次感兴趣和非感兴趣区域,当用户停止拖拽操作,视点固定时才开始绘制操作。采用基于图像的渲染方法,将建筑模型渲染到FBO中,动态的生成纹理图像。每一帧的循环开始的时候并不进行颜色和深度缓冲区的清空操作,当视点移动时,清空缓冲区,移动停止再进行重新绘制。每一帧绘制操作完成的时候将生成的图像与屏幕融合。
在视域分级策略的基础上采用图形图像融合的绘制方法,可以弹性的适应硬件环境的性能条件。这里采用图像绘制是一种以时间换取空间来实现更大规模场景绘制的策略。当硬件性能较好时可以设置感兴趣区域更大的范围,获得更好的体验效果;反之当硬件性能相对较低时,设置感兴趣区域较小的范围,最终也能实现场景的完整呈现。
场景的更新和筛选都在更新线程中完成,在绘制线程中只进行绘制操作。每一帧具体的绘制过程包括:首先进行编译操作,将固定数量的已经加载到内存中的模型数据编译为VBO对象存储在显存中。然后绘制感兴趣区域的模型队列,记录绘制所用时间,每帧最大时间减去记录时间,就是用来进行离屏渲染的时间。离屏渲染阶段,首先绘制次感兴趣区域中的模型数据,然后绘制非感兴趣区域中的模型数据。非感兴趣区域模型绘制采用流式处理的方法,在内存中建立缓存队列L3,更新线程根据视点位置信息更新L3中的模型数据。限定L3的大小为M3,在更新完成的回调函数中检查队列L3的个数,当队列L3中模型个数大于M3时暂停加载新的模型。绘制线程依次从L3中取出顶点数据和索引数据信息,并构建VAO对象进行绘制,绘制完成后将模型置入剔除队列,由GC收集器统一进行资源释放。
4、顾及深度信息的屏幕融合
在每帧的绘制完成后需要将FBO中的颜色纹理与屏幕进行融合。传统的RTT技术采用纹理映射的方法将FBO颜色纹理作为场景中某个图形的纹理单元融合到场景中。该方法存在不能处理遮挡情况的问题,例如场景中有一座山,绘制在FBO中的两个建筑物,一个在山的前面,另一个在山的后面,简单地采用纹理映射的方法难以处理这种遮挡情形。为解决该问题,本发明采用了顾及深度信息的融合方法。在进行图像渲染时,同时启用颜色和深度缓冲区,大小与屏幕一致。采用与真实相机相同的模型视图矩阵和投影矩阵,这样就能得到与屏幕一致的图像大小和深度信息。为了得到颜色一致的纹理图像,还需设定相同的光照等参数。在每一帧绘制完成时得到颜色纹理Tcolor和深度纹理Tdepth,采用GPU编程方法,将Tcolor和Tdepth都作为GLSL中的Uniform对象传入片元着色器中,对每个像素片元,比较该片元坐标处的Tdepth深度值与深度缓存Cdepth深度值大小,当Tdepth的值比Cdepth中已有的值更小时输出Tcolor的颜色值;当Tdepth的值更大时输出当前颜色缓存Cdepth中的颜色值。坐标(s,t)处的片元最终输出颜色:
5、场景建筑物数据流
视点位置的移动引起场景内容的改变,根据视点移动参数等信息,快速的响应并完成场景调度是本发明的关键。场景调度的目的是解决海量大规模场景数据与有限计算机资源之间的矛盾,对节点进行数据请求加载与剔除操作,动态的更新内存资源。根据上文对场景区域的划分,对每个视椎体子区域分别进行检索,采用流式的并行处理方法,每个子区域的检索操作执行在不同的线程上,提高检索效率。检索过程从场景根节点开始,采用自上而下、深度优先的遍历顺序对场景索引树进行遍历。具体的检索步骤为:
(1)设置根节点为当前节点。
(2)计算当前节点与视椎体空间关系,如果在视椎体之外则进入步骤(6)。判断节点是否为叶子节点,如果是则转至步骤(5)。如果包围球在视椎体内部则转至步骤(4);如果相交则转至步骤(3)。
(3)对当前节点的所有孩子节点[C1,C2…Cn],选择节点sn=min(d1,d2,…dn)作为当前节点,di为第i个节点到当前视点之间的距离。即选择当前未遍历的孩子集合中距离最近的孩子节点。转至步骤(2)。
(4)当前节点是否已经加载完成,如果是则终止遍历操作并返回。按照步骤(3)中的方法选择子节点,如果子节点是叶子节点则转至步骤(5);否则依次将选择子节点作为当前节点重复该步骤。
(5)如果当前叶子节点需要加载模型,则生成请求放入待请求队列中,更新该节点的模型数据,并设置更新回调。该回调的作用是当模型数据完成时将该节点加入待编译队列,并向上更新节点的加载完成标记。
(6)收集该节点下所有已经完成加载的叶子节点,放入待剔除队列中。
上述的三个视椎体子区域是完全贴合的,在模型与视椎体进行空间关系计算时会产生重复。为了解决该问题,对于建筑物索引的叶子节点,在视椎体远平面计算时,只考虑完全包含的情况。这样在两个子区域交面的模型,检索时只会被第二个区域处理,避免了重复问题。
6、多层次细节
多层次细节是实现大规模场景绘制的有效手段,CityGML定义了三维城市模型的细节层次划分,将建筑模型分为五个不同层次等级,LOD0是从整体上观察城市的形貌特征。LOD1级别的建筑模型由简单的几何体组成,没有屋顶和纹理。LOD2级别在LOD1的基础上添加了贴图和楼顶结构。LOD3级别具有更复杂的几何细节和更高分辨率的纹理贴图。LOD4级别包括了模型内部的结构,比如房间内饰、楼梯等。本发明将多细节层次模型应用到算法中,采用视点距离作为多细节层次自适应控制参数,不同级别节点对应不同的距离阈值。阈值采用使用广泛的屏幕空间误差(Screen Space Error,SSE)进行计算,来判定是节点合适的细节层次。具体的视点距离阈值的计算公式为:
其中,di为层次i对应的视点距离阈值;视点的视场角度为fov,屏幕像素高为h,ri为节点包围球投影在屏幕上的像素阈值,k为控制系数。
本发明选用公开的纽约部分市区的CityGML模型数据进行实验,实验数据共包含118195个建筑物模型;实验硬件配置为Inter i5双核四线程处理器,内存8G,NVIDIA的GT940入门级独立显卡,显存4G;开发环境为Windows 7 64位操作系统、Visiual Studio 12编译器、Qt 5.4.2、OpenSceneGraph-3.4.0。
利用开源数据库3DCityDB进行数据处理工作。3DCityDB基于PostgreSQL和PostGIS实现,能够处理超大文件的CityGML模型数据。首先利用3DCityDB将Citygml中的建筑物提取出来并存储到PostGIS数据库中,使用3DCityDB导出工具导出KML格式的三维模型文件,导出同时按照合适格网进行划分。然后基于三维引擎OSG,并采用C++语言编程实现对KML文件进行处理,构建三维索引。
首先将视域分割为感兴趣、次感兴趣和非感兴趣区域,根据实验硬件条件将分割点距离设置为2100米、5000米。用不同颜色区分不同区域,其中较亮的区域为感兴趣区域,较暗颜色为次感兴趣和非感兴趣区域,如图3所示。
集成本发明所提出的算法,实现了带有纹理信息的大规模建筑物三维场景漫游。图4和图5分别是纽约曼哈顿地区的建筑物场景绘制效果。
绘制帧率是三维仿真系统的重要参数之一,对本发明中绘制帧率进行实验。从实验数据中分别构建不同数量建筑物模型组成建筑场景。将本发明方法与传统方法对比,其中传统方法绘制采用R树索引调度,并启用了视锥体裁剪、细小裁剪等加速绘制策略。
表1帧率统计
从表1中可以看出,传统方法随着场景规模的增大,绘制帧率一直减小。当建筑物数据量达到10万级别时,传统方法已经不能适用。而本发明方法则表现稳定,在几组实验中,绘制帧率都优于20帧,表现出了绘制帧率与场景复杂度无关的优点。并且本发明对建筑物数量为10万的场景漫游时的帧率在时间上进行采样统计,统计结果如图6所示,其中横轴表示采样时间,纵轴表示帧率变化。从图中可以看出绘制帧率在20~35fps之间,在第15、20秒附近,因为视点完成移动后GPU在实时图形渲染的同时还进行了图像渲染,帧率下降到20帧左右,但是依然能保证绘制的流畅。实验结果表明算法可以实现海量级别的建筑模型场景绘制,并具有良好的用户体验。
Cesium三维平台提供了实验数据的公开访问服务,将本发明方法与Cesium平台进行对比实验,选取两个相同视点对比绘制结果。如图7和图8所示,其中图7为本发明方法绘制效果,图8为Cesium目前的实现效果。从图中可以看出,Cesium采用LOD算法,剔除掉了视点距离相对较远的部分模型,造成了视觉上的缺失。本发明方法虽然需要一些绘制时间,但是最终实现了视觉无损失的场景完整渲染。
以上给出了本发明涉及的具体实施方式,但本发明不局限于所描述的实施方式,例如视椎体分割数量的改变,或者具体参数的改变,这样形成的技术方案是对上述实施例进行微调形成的,这种技术方案仍落入本发明的保护范围内。
Claims (10)
1.一种图形图像融合的海量建筑绘制方法,其特征在于,包括以下步骤:
对三维城市模型数据进行处理得到三维模型文件;
根据GPU显存大小将视椎体由近及远划分为感兴趣区域和非感兴趣区域;
对所述感兴趣区域每帧都重新绘制;
当用户的视点固定时对所述非感兴趣区域进行绘制。
2.根据权利要求1所述的一种图形图像融合的海量建筑绘制方法,其特征在于:所述感兴趣区域和非感兴趣区域之间包括次感兴趣区域。
3.根据权利要求2所述的一种图形图像融合的海量建筑绘制方法,其特征在于:对所述感兴趣区域采用实时图像方法进行绘制;对所述次感兴趣区域和非感兴趣区域采用图像渲染的方法进行绘制。
4.根据权利要求2或3所述的一种图形图像融合的海量建筑绘制方法,其特征在于:根据所述GPU显存大小设定分割参数,根据所述分割参数划分所述感兴趣区域、次感兴趣区域和非感兴趣区域;
在所述视椎体方向上按照视点距离从小到大排列kN个节点,所述分割参数包括两个所述节点km和kn,k1<km<kn<kN,并且:
其中,Mi为节点ki-1和节点ki+1之间所需的最大显存,mj为第j个节点存储的显存中所需的显存大小,2≤i≤N-1。
5.根据权利要求4所述的一种图形图像融合的海量建筑绘制方法,其特征在于,得到所述三维模型文件的过程包括:
在二维平面上将城市空间划分为设定大小的网格;
剔除空网格,同一个网格中的建筑构成一个Tile;
将每个Tile中的建筑物合并为一个几何体。
6.根据权利要求5所述的一种图形图像融合的海量建筑绘制方法,其特征在于,对所述次感兴趣区域和非感兴趣区域采用图像渲染的方法进行绘制的过程包括:
当用户视点固定时,基于图像的渲染方法,将建筑模型渲染到FBO中,并动态生成纹理图像。
7.根据权利要求6所述的一种图形图像融合的海量建筑绘制方法,其特征在于,将绘制后的所述感兴趣区域、次感兴趣区域和非感兴趣区域进行融合获得完整场景的过程包括:
每一帧绘制完成时进行顾及深度信息的融合;
在进行图像渲染时,同时启用颜色和深度缓冲区,大小与屏幕一致;
采用与真实相机相同的模型视图矩阵和投影矩阵;
设定相同的参数得到颜色一致的纹理图像;
每一帧绘制完成时将得到的颜色纹理和深度纹理传入片元着色器中;
对于每个像素片元,如果片元坐标处的深度纹理值小于深度缓存值时,输出颜色纹理值;如果片元坐标处的深度纹理值大于深度缓存值时,输出深度纹理值。
8.根据权利要求7所述的一种图形图像融合的海量建筑绘制方法,其特征在于,每一帧具体的绘制过程包括:
进行编译操作,将固定数量的已经加载到内存中的模型数据编译为VBO对象存储在显存中;
绘制感兴趣区域的模型队列,记录绘制所用时间,每帧最大时间减去记录时间就是用来进行离屏渲染的时间;
离屏渲染阶段,绘制次感兴趣区域中的模型数据,然后绘制非感兴趣区域中的模型数据;非感兴趣区域模型绘制采用流式处理的方法,在内存中建立缓存队列L3,根据视点位置信息更新L3中的模型数据;
限定L3的大小为M3,在更新完成的回调函数中检查队列L3的个数,当队列L3中模型个数大于M3时暂停加载新的模型;
绘制线程依次从L3中取出顶点数据和索引数据信息,并构建VAO对象进行绘制,绘制完成后将模型置入剔除队列,由GC收集器统一进行资源释放。
9.根据权利要求8所述的一种图形图像融合的海量建筑绘制方法,其特征在于:根据所述三维模型文件建立三维索引,根据所述三维索引检索所述三维城市模型数据的过程包括:
采用并行处理方法对所述感兴趣区域、次感兴趣区域和非感兴趣区域分别进行检索,每个区域的检索在不同的线程上执行;
检索过程从区域的根节点开始,采用自上而下、深度优化的顺序对所述三维索引进行遍历;
所述检索过程包括:
设置当前节点为所述根节点;
计算当前节点与视椎体的空间关系,如果在视椎体外则收集当前节点下所有已经完成加载的叶子节点,并放入待剔除队列中;
如果当前节点为叶子节点,且当前叶子节点需要加载模型,则生成请求放入待请求队列中,更新该节点的模型数据,并设置更新回调,使模型数据完成时将该节点加入待编译队列,并向上更新节点的加载完成标记;
如果包围球在视椎体内部,且当前节点已经完成加载,则终止遍历操作,然后选择子节点作为当前节点并判断是否为叶子节点;如果不是则重复选择子节点;
如果包围球与视椎体相交,则进入选择子节点操作,所述选择子节点包括:选择当前节点的所有子节点中到当前视点的距离最小的子节点作为当前节点;然后计算当前节点与视椎体的空间关系。
10.根据权利要求9所述的一种图形图像融合的海量建筑绘制方法,其特征在于:加入多细节层次模型,采用视点距离作为多细节层次自适应控制参数,不同级别节点对应不同的视点距离阈值;采用屏幕空间误差方法计算所述视点距离阈值,并根据所述视点距离阈值判定节点合适的细节层次;所述视点距离阈值的计算公式为:
其中,di为层次i对应的视点距离阈值;视点的视场角度为fov,屏幕像素高为h,ri为节点包围球投影在屏幕上的像素阈值,k为控制系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810317719.6A CN108520557B (zh) | 2018-04-10 | 2018-04-10 | 一种图形图像融合的海量建筑绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810317719.6A CN108520557B (zh) | 2018-04-10 | 2018-04-10 | 一种图形图像融合的海量建筑绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108520557A true CN108520557A (zh) | 2018-09-11 |
CN108520557B CN108520557B (zh) | 2022-02-22 |
Family
ID=63430830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810317719.6A Active CN108520557B (zh) | 2018-04-10 | 2018-04-10 | 一种图形图像融合的海量建筑绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108520557B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669998A (zh) * | 2018-11-05 | 2019-04-23 | 武汉中地数码科技有限公司 | 基于渐进式传输增量绘制的地理大数据可视化方法及系统 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN110838161A (zh) * | 2019-10-30 | 2020-02-25 | 西安恒歌数码科技有限责任公司 | 一种osg大批量图形节点在三维场景中聚合的方法 |
CN111090759A (zh) * | 2019-10-23 | 2020-05-01 | 中电科新型智慧城市研究院有限公司 | 一种海量真景大数据跨级加载的算法 |
CN111145331A (zh) * | 2020-01-09 | 2020-05-12 | 深圳市数字城市工程研究中心 | 一种海量城市空间三维数据云渲染图像融合方法及其系统 |
CN111325783A (zh) * | 2020-02-19 | 2020-06-23 | 深圳震有科技股份有限公司 | 一种基于WebGIS的可视域分析方法及装置 |
CN111862104A (zh) * | 2019-04-26 | 2020-10-30 | 利亚德照明股份有限公司 | 一种基于大规模城市夜景的视频切割方法及系统 |
CN112184864A (zh) * | 2020-09-08 | 2021-01-05 | 中国电子科技集团公司第二十八研究所 | 一种百万量级三维态势目标的实时绘制方法 |
CN112529994A (zh) * | 2020-12-29 | 2021-03-19 | 深圳图为技术有限公司 | 三维模型图形渲染方法、电子设备及其可读存储介质 |
CN113140038A (zh) * | 2021-05-13 | 2021-07-20 | 天讯方舟(北京)信息科技有限公司 | 一种大场景城市建筑实时三维可视化的方法 |
CN113256780A (zh) * | 2021-07-06 | 2021-08-13 | 广州中望龙腾软件股份有限公司 | 工具体的动态剖切方法、智能终端以及存储装置 |
CN114707014A (zh) * | 2022-06-06 | 2022-07-05 | 科大天工智能装备技术(天津)有限公司 | 一种基于fov的影像数据融合索引方法 |
CN115272591A (zh) * | 2022-05-10 | 2022-11-01 | 泰瑞数创科技(北京)股份有限公司 | 基于三维语义模型的地理实体多形态表达方法 |
CN116912411A (zh) * | 2023-07-17 | 2023-10-20 | 杭州阳斯信息技术有限公司 | 数字化电网图形展示智能算法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289839A (zh) * | 2011-08-04 | 2011-12-21 | 天津中科遥感信息技术有限公司 | 一种面向三维数字城市的高效多细节层次渲染方法 |
WO2012083508A1 (zh) * | 2010-12-24 | 2012-06-28 | 中国科学院自动化研究所 | 互联网上复杂场景真实感快速绘制方法 |
CN103646415A (zh) * | 2013-12-24 | 2014-03-19 | 秦皇岛数据产业研究院有限公司 | 基于双重约束的三维场景lod模型的选择调用方法 |
CN104867174A (zh) * | 2015-05-08 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种三维地图渲染显示方法及系统 |
CN106446351A (zh) * | 2016-08-31 | 2017-02-22 | 郑州捷安高科股份有限公司 | 一种面向实时绘制的大规模场景组织与调度技术及仿真系统 |
-
2018
- 2018-04-10 CN CN201810317719.6A patent/CN108520557B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012083508A1 (zh) * | 2010-12-24 | 2012-06-28 | 中国科学院自动化研究所 | 互联网上复杂场景真实感快速绘制方法 |
CN102289839A (zh) * | 2011-08-04 | 2011-12-21 | 天津中科遥感信息技术有限公司 | 一种面向三维数字城市的高效多细节层次渲染方法 |
CN103646415A (zh) * | 2013-12-24 | 2014-03-19 | 秦皇岛数据产业研究院有限公司 | 基于双重约束的三维场景lod模型的选择调用方法 |
CN104867174A (zh) * | 2015-05-08 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种三维地图渲染显示方法及系统 |
CN106446351A (zh) * | 2016-08-31 | 2017-02-22 | 郑州捷安高科股份有限公司 | 一种面向实时绘制的大规模场景组织与调度技术及仿真系统 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669998A (zh) * | 2018-11-05 | 2019-04-23 | 武汉中地数码科技有限公司 | 基于渐进式传输增量绘制的地理大数据可视化方法及系统 |
CN111862104A (zh) * | 2019-04-26 | 2020-10-30 | 利亚德照明股份有限公司 | 一种基于大规模城市夜景的视频切割方法及系统 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN110443893B (zh) * | 2019-08-02 | 2023-04-25 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN111090759A (zh) * | 2019-10-23 | 2020-05-01 | 中电科新型智慧城市研究院有限公司 | 一种海量真景大数据跨级加载的算法 |
CN111090759B (zh) * | 2019-10-23 | 2023-05-12 | 中电科新型智慧城市研究院有限公司 | 一种海量真景大数据跨级加载的算法 |
CN110838161A (zh) * | 2019-10-30 | 2020-02-25 | 西安恒歌数码科技有限责任公司 | 一种osg大批量图形节点在三维场景中聚合的方法 |
CN110838161B (zh) * | 2019-10-30 | 2024-01-30 | 西安恒歌数码科技有限责任公司 | 一种osg大批量图形节点在三维场景中聚合的方法 |
CN111145331A (zh) * | 2020-01-09 | 2020-05-12 | 深圳市数字城市工程研究中心 | 一种海量城市空间三维数据云渲染图像融合方法及其系统 |
CN111145331B (zh) * | 2020-01-09 | 2023-04-07 | 深圳市数字城市工程研究中心 | 一种海量城市空间三维数据云渲染图像融合方法及其系统 |
CN111325783A (zh) * | 2020-02-19 | 2020-06-23 | 深圳震有科技股份有限公司 | 一种基于WebGIS的可视域分析方法及装置 |
CN112184864A (zh) * | 2020-09-08 | 2021-01-05 | 中国电子科技集团公司第二十八研究所 | 一种百万量级三维态势目标的实时绘制方法 |
CN112184864B (zh) * | 2020-09-08 | 2022-09-13 | 中国电子科技集团公司第二十八研究所 | 一种百万量级三维态势目标的实时绘制方法 |
CN112529994A (zh) * | 2020-12-29 | 2021-03-19 | 深圳图为技术有限公司 | 三维模型图形渲染方法、电子设备及其可读存储介质 |
CN112529994B (zh) * | 2020-12-29 | 2022-01-11 | 深圳图为技术有限公司 | 三维模型图形渲染方法、电子设备及其可读存储介质 |
CN113140038A (zh) * | 2021-05-13 | 2021-07-20 | 天讯方舟(北京)信息科技有限公司 | 一种大场景城市建筑实时三维可视化的方法 |
CN113256780A (zh) * | 2021-07-06 | 2021-08-13 | 广州中望龙腾软件股份有限公司 | 工具体的动态剖切方法、智能终端以及存储装置 |
CN115272591A (zh) * | 2022-05-10 | 2022-11-01 | 泰瑞数创科技(北京)股份有限公司 | 基于三维语义模型的地理实体多形态表达方法 |
CN115272591B (zh) * | 2022-05-10 | 2023-09-05 | 泰瑞数创科技(北京)股份有限公司 | 基于三维语义模型的地理实体多形态表达方法 |
CN114707014B (zh) * | 2022-06-06 | 2022-08-26 | 科大天工智能装备技术(天津)有限公司 | 一种基于fov的影像数据融合索引方法 |
CN114707014A (zh) * | 2022-06-06 | 2022-07-05 | 科大天工智能装备技术(天津)有限公司 | 一种基于fov的影像数据融合索引方法 |
CN116912411A (zh) * | 2023-07-17 | 2023-10-20 | 杭州阳斯信息技术有限公司 | 数字化电网图形展示智能算法 |
Also Published As
Publication number | Publication date |
---|---|
CN108520557B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108520557A (zh) | 一种图形图像融合的海量建筑绘制方法 | |
CN110738721B (zh) | 基于视频几何分析的三维场景渲染加速方法及系统 | |
CN108133044B (zh) | 基于属性分离的空间大数据三维可视化方法及平台 | |
CN105378796B (zh) | 可伸缩体积3d重构 | |
LU102117B1 (en) | Method and system for measuring mountain view visible area in city | |
CN109934914A (zh) | 一种嵌入式城市设计场景仿真方法及系统 | |
CN101241603B (zh) | 一种电磁场强度实时可视化方法 | |
CN108919944A (zh) | 一种基于数字城市模型实现在显示端进行数据无损交互的虚拟漫游方法 | |
CN109887084A (zh) | 一种利用浸入式虚拟现实技术用于城市规划的方法 | |
CN112308974B (zh) | 一种改进八叉树和自适应读取的大规模点云可视化方法 | |
CN106446351A (zh) | 一种面向实时绘制的大规模场景组织与调度技术及仿真系统 | |
CN111915726B (zh) | 一种架空输电线路三维场景的构建方法 | |
CN106056670B (zh) | 塔式太阳能热发电系统中剔除遮挡的辐射能密度模拟方法 | |
CN112017270A (zh) | 实景三维可视化在线应用系统 | |
Xie et al. | Automatic simplification and visualization of 3D urban building models | |
CN113066160B (zh) | 一种室内移动机器人场景数据的生成方法 | |
CN107291223A (zh) | 一种超大数据量虚拟现实空间信息可视化系统及方法 | |
US11508112B2 (en) | Early release of resources in ray tracing hardware | |
CN109872390A (zh) | 一种海量三维模型的组织方法 | |
CN115131482A (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
CN110287508A (zh) | 一种多源三维城市模型的可视化融合系统 | |
CN103164440B (zh) | 面向虚拟现实的空间数据引擎方法 | |
CN104866549B (zh) | 一种适于多智能体仿真的地形环境数据库系统 | |
Zhang et al. | [Retracted] Virtual Reality Design and Realization of Interactive Garden Landscape | |
do Nascimento et al. | Gpu-based real-time procedural distribution of vegetation on large-scale virtual terrains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |