专栏名称: CityMaker
CityMaker是国内领先的国产三维地理信息软件(3DGIS)平台和解决方案提供商,提供三维地理数据整合管理、浏览展示、服务发布、地形管理发布等多款专业应用软件产品、增值服务、整体解决方案等等。
目录
相关文章推荐
GiantPandaCV  ·  MoE之年的总结和MoE 推理优化的一些认识 ·  2 天前  
51好读  ›  专栏  ›  CityMaker

CityMaker史上最全的数据优化攻略!

CityMaker  · 公众号  · 3D  · 2018-07-26 18:01

正文

俗话说,

流畅的数据都是相似的,

卡顿的数据各有各的问题。

事实上CityMaker足够强大,

足以支持海量大数据,

但也确实经不起有些数据问题过多。


今天小编就给大家总结了,

如何从数据优化层面解决卡顿问题,

小伙伴们赶紧那小本本记下来吧。


接下来我们从数据结构、模型化简、图层设置和瓦片化四个方面给大家介绍一下,如何优化数据。


1 优化数据结构

大家都知道我们的数据是按照

数据源、数据集、要素类三级结构划分的,

在这里不过多介绍,

不明白的小伙伴可以查看:

《小课堂--你真的需要了解一下。。。》

那么数据加载问题呢,

首先要检查一下数据结构本身有没有问题。



数据源(FDB)太多

一个场景中的数据源(FDB)过多,

势必会影响加载速度。


举一个直观形象的例子,

好比每天上下班挤公交车,

所有人都是从一个门进来的,

总要所有人都上来才能出发。

所以FDB数目太多容易造成加载慢的问题,

初始化打开工程的时候,

一直在加载数据,

模型自然显示会慢很多。


解决方案:

合并数据源(FDB)。

在Builder工具集中,

选择DataInterop->MergeDataSet。



要素类太多

当然,

有些小伙伴的FDB个数并不多,

但是每一个FDB里的要素类多得吓人,

这也是会影响加载速度的啊,

原因还是跟挤公交车是一样的。


其实,

我们对于要素类的数目没有严格的要求,

几个,十几个,几十个都OK的,

小编亲眼见过几百个要素类的,

简直是不忍直视!


解决方案:

合并要素类。

在Builder中打开数据,

选中数据,

选择要素菜单栏中切换要素类按钮,

将选中的模型切换到目标要素类中。



对象数目过多

当然,

但当个要素类中的模型数目过多时,

也会影响加载和渲染的效率。


再举个简单的例子,

就像挤公交车的时候,

有一个体型过于庞大的人卡在门口,

自己上车比较困难,

还会影响其他人上车。

解决方案:

01

拆分要素类

避免不同类型的要素混在一个要素类中,

比如建筑、道路、植被等,

要分成不同的要素类。


另外,当单个要素数量过多时,

比如树,有上万、十几万个的时候,

可以按区域分开不同的要素类。


拆分要素类的方法,

同样用切换要素类的工具。


02

合并模型

将一部分模型进行合并,

也是一个减少模型个数的好方法,


Builder中可以直接进行合并操作。


但是手动合并工作量有些大,

所以二次开发的小伙伴可以参考

《那些模型之间的悲欢离合!》

自己写代码直接将模型合并。



03

模型引用

即相同的模型相互复用,

主要针对树模型、小品设置等

大批量相同的模型复用,

从而大大增加加载效率。

这属于比较高阶的应用,

小编之后会做专门的介绍,

这里就不多说了。



重建索引

说道空间索引和渲染索引,

可能很多小伙伴不太理解,

其实简单的解释:

就是在将空间打成不同等级的格子,

随相机视角显示不同格子里的对象。


其实不理解也没关系,

因为空间索引和渲染索引可以自动计算。

好多客户的模型看不到,

或者闪一下就消失了,

一般就是索引问题。


操作方法:

在Builder资源目录中右键点击要素类属性,

在空间索引和渲染索引处,

直接点击计算即可。

注意:

重建索引之前要将数据从图层树中移除。


2 模型优化

在检查完数据结构没有问题的情况下,

数据卡顿问题,

往往是由于模型三角面过多

和贴图尺寸多大造成的。

那么,

如何查看模型的三角面和贴图信息,

可以参考之前文章,

我们都有很详细的介绍。

《小工具--信息统计背后的故事》



贴图优化

贴图问题往往存在于手工建模的数据中,

Max模型或者SketchUp模型,

当贴图的尺寸过大时,

就会影响加载和渲染的效率,

甚至出现贴图丢失或者白模情况。

操作方法:

贴图优化可以说是非常简单的操作,

在Builder工具集中选择贴图优化工具,

输入优化数据,

选择优化尺寸即可。

需要注意的是:

贴图优化是将贴图压缩为原尺寸的一半,

所以,

2048的贴图要压缩成512的,

要进行两次操作。


不要问我压缩到什么程度最好,

当然是越小越好!

小编觉得512或以下就可以了。



整体优化

其实这里说的整体优化,

主要是针对BIM模型进行的优化,

是对整个FDB中的模型三角面进行化简,

大幅度的减少三角面数目,

并生成简模。

简模的三角面个数远远低于精模,

在场景加载中,

远距离处调用简模,

近距离调用精模,

从而大大提高了加载和渲染效率。

操作方法:

使用Connect工具集中BIM数据优化工具。



超大对象优化

超大模型我们一般说的是三角面大的模型,

当然模型尺寸太大也会影响渲染,

这里我们分情况介绍。


01

三角面数目过大

针对于大三角面数的模型,

尤其是上百万三角面的BIM模型,

我们可以利用Connect里优化筛选工具,

进行针对性的优化。

具体用法小编也曾经介绍过,

可查看:

《新功能--Connect 模型优化筛选功能》

优化的效果非常显著!


02

模型尺寸过大

当场景中某个模型过大过长时,

会非常影响模型的渲染效率,

这时候就需要对模型进行拆分。


解决方法:

可直接利用Builder中的拆分工具。

二次开发的小伙伴还是可以参考

《那些模型之间的悲欢离合!》


3 图层设置

在数据加载进来之后,







请到「今天看啥」查看全文