数据瘦身有几招之倾斜模型

倾斜摄影技术是国际摄影测量领域近十几年发展起来的一项高新技术。它不仅能够真实地反映地物情况,高精度地获取地物纹理信息,还可通过先进的定位、融合、建模等技术,生成真实的三维城市模型。然而,越精细、越广阔的倾斜模型就意味着加载和浏览时的压力越大。这该肿么办?且看SuperMap祭出的倾斜数据瘦身三大法宝。
这里写图片描述
SuperMap三维提供了数种对倾斜数据的优化方案,其中最为常用者有三:一是从倾斜数据的数据结构着手,通过合并根节点的方式提升读取数据的速度;二是从三维切片渲染的角度入手,压缩纹理,以提升倾斜三维切片的渲染速度;三是减少切片文件请求总量,直接将多个文件夹下的诸多碎瓦片文件生成为一个倾斜摄影模型大文件。
且先看第一种方式,合并根节点
倾斜摄影模型数据通常采用分块(Tile)方式存储,即一定空间范围的模型划为一个块并存储在一个文件夹中,每个文件夹下包含了一个根节点文件及若干子节点文件。SuperMap通过索引文件(*.scp)记录的根节点相对路径来加载模型,如下示意图(蓝色方框表示模型根节点)。
这里写图片描述
当模型空间范围广、数据量庞大,使得模型被划分为很多个根节点,读取这些根节点花费时间较长导致加载模型较慢,此时,需要进行合并根节点来提升加载效率。
“合并根节点”功能是将相邻一定空间范围的根节点合并为一个根节点,即向上抽稀生成了一层更为粗糙的LOD层级,每合并一次,模型根节点数量减少约为原始数量的1/4。合并示意如下图(蓝色方框表示合并前的模型根节点,橙色方框表示合并一次的根节点;黄色方框表示合并二次后的根节点)。
这里写图片描述
下图是超图中“合并根节点”的界面(倾斜摄影选项卡 - 合并根节点)。
这里写图片描述
其中,金字塔层级对应着用于设置根节点合并次数,默认值为1,即模型根节点将进行一次合并处理。

与此同时,我们还可以对倾斜数据进行纹理压缩
纹理压缩可以将倾斜切片的纹理压缩成更适合特定设备的纹理格式,从而优化倾斜摄影模型数据在三维场景中的渲染性能,获得更流畅的浏览体验。
下图是超图中“压缩纹理”的界面(倾斜摄影选项卡 – PC端或移动端标签组 - 压缩纹理)。
这里写图片描述
其中,压缩类型对应着用于显示和设置纹理压缩的类型。根据适用的设备情况,分为三种压缩类型:
DDS:DDS(DirectDraw Surface)是以定长压缩形式存储图形数据,在PC机上可以直接被显卡支持,从而节省大量的显存。DDS 压缩纹理格式,是PC机(个人计算机)上通用的压缩纹理格式。
iOS系列设备(*移动端压缩纹理):针对iOS系列设备的压缩纹理格式。该格式的压缩比可高达 16:1,在该比例下仍保持较好的贴图质量。由于移动设备资源有限,其显存往往与内存公用,使用 16:1 的压缩比可以在不损失贴图质量的情况下节省大量的内存。
Android系列设备(*移动端压缩纹理):针对Android系列设备的压缩纹理格式。该格式是目前安卓设备上通用的主流压缩纹理格式。在 OpenGL ES 2.0 中定义,适用于所有支持 OpenGL ES 2.0 的 Android 平台设备。

最后,我们还可以用模型生成大文件的方式加速倾斜数据的读取与加载。
倾斜摄影模型数据分块存储在多个文件夹中,每个文件夹下存有很多个被划分为不同LOD层级的.osgb模型文件,场景需通过读取这些碎文件的方式实现加载浏览倾斜摄影模型。为了进一步提升倾斜摄影模型的加载浏览效率,可以将存储在多个文件夹下的诸多碎文件生成为一个.cf格式的倾斜摄影模型大文件。对话框如下(倾斜摄影选项卡 – 模型生成大文件):
这里写图片描述
本文就此告一段落。不得不说的一点是,不同数据有不同的处理方式。只有在性能和展示效果上取得平衡,找到最为合理的优化方案,才可以获得最满意的浏览效果。

阅读更多

扫码向博主提问

SuperMap技术控

非学,无以致疑;非问,无以广识
去开通我的Chat快问
版权声明:本文为博主原创文章,欢迎转载,SuperMap技术问答社区 http://ask.supermap.com https://blog.csdn.net/supermapsupport/article/details/80351070
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭