查看原文
其他

倾斜摄影模型在三维GIS平台中快速加载及流畅浏览,你需要了解这个

王博 超图集团 2020-02-04


上节微课堂介绍了倾斜摄影模型的成果类型、特点及其与三维GIS的对接,模型成果在三维GIS中能否快速加载和调度,成为GIS平台的一个重要指标。本次微课堂将介绍如何对海量倾斜模型进行性能的优化和处理,最终实现承载海量数据在各个行业中的应用。


微课堂简介:微课堂由全国倾斜摄影技术联盟发起的系列课程,邀请业内专家广泛参与,旨在帮助关注倾斜摄影技术和应用的人群答疑解惑,讲师主要以文字和图片的形式进行授课和讨论,每周一次,每次两小时左右(一般在20:00-22:00之间),同时通过多个微信群直播。


主讲人介绍:王博,超图软件股份有限公司产品研发中心三部产品经理,7年GIS技术工作经验,多年从事倾斜摄影技术相关工作,具有丰富的倾斜摄影知识与应用经验,目前主要负责SuperMap GIS 倾斜摄影模块的相关产品,熟悉三维GIS软件的设计与实用场景,是《超图倾斜摄影模型解决方案》的主要作者。




首先来看三维场景中性能的几个重要参数。
帧率也叫做每秒的帧数,是表示图形处理器场景时每秒钟能够更新几次。
帧率达到15帧,场景显示不卡顿。达到24帧人的眼睛无法看出闪动,场景显示自然流畅。达到30帧,画面将非常流畅; 
CPU就像是我们的大脑,它的占用率高,会导致电脑变慢,内存占用低并且持续稳定也决定了计算机的稳定运行,因此CPU和内存的占用需要尽可能低并保持稳定。

在性能优化方面,三维GIS平台内置的几个核心技术:全球尺度空间区域划分、动态调度减轻渲染负担、多分辨率LOD(模型和纹理双重LOD,根据相机视点与模型的距离进行调度)、批量渲染。


那么具体该如何操作呢?

倾斜摄影模型根据建模工艺划分为两种成果,一是已单体对象化的模型,二是自动化模型。



优化已单体对象化的模型性能,主要采用缓存切片,基于金字塔结构(四叉树或者八叉树)的多分率LOD技术,使得城市级别海量数据快速调度。同时也可以调整图层的参数,比如:可见距离、LOD缩放比例等;这两个参数随后详细介绍。


上节微课堂向大家介绍了自动化模型的对接方式,这里说明一下为什么选用直接加载倾斜模型数据,而不选用重新组织数据结构的方式。


OSGB格式的倾斜摄影模型,自带多级分辨率的LOD数据,这个LOD是在模型的生产过程中创建的,是根据密集点云逐级抽稀后构建的三角网模型,在三维场景的浏览过程中,不同层级之间的过度很平滑,没有突跳感。而重新组织数据结构的方式,一般都会舍弃原生的LOD信息,只保留模型的最精细层数据,这样的数据是无法直接加载的,需要生成新LOD信息,但是自动化模型的数据特点是一张皮,所有的三角网都连在一起,直接创建LOD显然是不明智的,这就需要把数据进行切割(根据地物的矢量底面进行切割),然后再逐级简化三角网及纹理,生成新的LOD数据。这种处理方式与模型原生的有本质的区别,简化三角网一般会导致粗糙层的模型数据形变过大,以及不同层级之间的过度不平滑等。


既然OSGB格式数据有这些优势,为何还需要优化和处理呢?我们继续往下看。


针对自动化模型,可以从这几个方面进行优化处理:
1、 纹理压缩2、节点合并3、图层参数设置

个优化方法:纹理压缩

三维场景中对于模型物体表面细节的表现最重要的还是靠贴图来实现的,越是高分辨率的贴图自然表现力也是越强,但是同时带来的问题是所需占用的内存会成倍的上升,而节省内存这一点还是非常重要的。所以各个平台上都在使用纹理压缩的技术,让纹理贴图在内存占用和显示效果能达到一个尽可能的平衡。

我们提供了纹理压缩工具,第一个目的是将纹理贴图存储到OSGB文件中,使得文件个数减少一倍;第二个目的是将纹理压缩成终端显卡直接支持的格式,这样显卡在渲染过程中就不需要花费额外的开销来解析纹理(不同的设备选择不同的纹理压缩方式,这里区分为PC设备、安卓设备、ios设备),压缩完成后数据会更小,加载数据更快捷,资源占用更少。

在iDesktop产品中,提供压缩纹理工具,输入相应的参数即可;
第二个优化方法:根节点合并

什么是倾斜模型的根节点?

在倾斜摄影模型生产过程中,需要设置瓦片边长来输出模型。最终每个文件夹存储一个瓦片(Tile)数据,模型成果以测区中心区域为Tile_+000_+000开始命名,按照行列号以此类推;每个文件夹中的第一个文件(与文件夹同名),我们称为根节点。
为什么要进行根节点合并呢?
大家先看两幅图:


从这张两张图中我们很容易看到,切片过小,会导致切片的数量急剧增加。
设置瓦片边长过小会导致什么样的问题?
上节课,我们提到直接加载OSGB格式倾斜模型,是需要索引文件来加载的,索引文件中记录了每个Tile的根节点文件,如果根节点数量过多,显卡渲染的批次就比较多,而每个批的调用都会消耗一定的CPU时间,这样会导致CPU负载过重,最终导致场景卡顿。
批的概念:批是场景优化中的最重要的概念之一,它指的是一次渲染调用(DP),批的尺寸是这次渲染调用所能渲染的多边形数量。每个批的调用都会消耗一定的CPU时间,对于显卡来说,一个批里的多边形数量远达不到最大绘制数量。因此尽可能将更多的多边形放在一个批里渲染,以此来减少批的数目,最终降低CPU时间。

合并根节点的目的,就是把批的尺寸变大,减少批的数目进而提升性能。

在iDesktop产品中,提供合并根节点工具,相邻的四个瓦片合并生成一个最粗糙的新根节点文件;金字塔层级代表合并的次数,1代表合并一次,瓦片数量减少4倍;2代表合并两次,瓦片数量减少16倍,以此类推。
需要注意的是:合并根节点工具,只是在原来的最粗糙层级上再往上合并了对应的层级数,并不改变原始数据精细层的数据。比如原始瓦片边长50米,推荐合并层级数3,也就是最终达到400米的瓦片边长;最终推荐的瓦片边长为300-600米,百平方公里范围的瓦片数不多于1500。

第三个优化方法:图层设置

这个是跟大家分享性能优化的一些小技巧,首先是图层LOD距离缩放比例参数,设置这个参数会在原来的LOD距离基础上缩放对应的倍数,进而在不同的相机距离切换对应的层级数据;最大可见距离同样是在距离范围之外的数据将会不可见,以此来提升浏览性能;



最后,关于硬件的选择,很多项目在采购设备的时候都会有疑惑,希望三维性能高,不知道显卡如何选择,给大家两条建议:独立显卡优于集成显卡,游戏显卡优于专业显卡


希望通过以上的优化策略和方法,使倾斜摄影模型在超图产品中加载浏览的更快,更流畅!
点击『阅读原文』回顾上一节微课堂精彩内容!

 

|最近热读|

矢量地图包——让移动端地图飞起来

这也许是目前最给力的干旱预测预警系统

微课堂 | 三维GIS如何对接倾斜摄影建模成果?

地图慧 | 业务区划管理可以这样做,你Get到没?

从纸海图到电子海图,GIS如何改变海上世界?

想成为移动GIS地图数据优化小达人?来听本期公开课!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存