iMobile中三维数据的性能优化

作者:xinxin

      目前,很多项目都用SuperMap iMobile for Android产品来实现展示三维数据效果,但由于三维数据对硬件设备要求高,而移动端设备的硬件远不如PC端,所以想要在iMobile中加载较多的三维数据,又要保证有良好的性能,需要先在iDesktop中将三维数据做优化,然后再加载到iMobile的场景中,下面和大家分享一下怎么来优化。
在iDesktop优化数据的时候可以根据场景中的“帧率”来判定整个场景性能的快慢。在桌面“场景”的“场景属性”中勾选“帧率信息”,在三维场景的左下角就能看 到“平均帧率”。一般而言,低于 10 帧就会非常卡顿,15 帧以上会好一些,20 帧以上 较为流畅,30 帧以上就非常流畅了。当帧率低的时候可以从以下几个方面来优化:

1、 切场景缓存

      对于三维数据性能优化而言,最重要的就是出场景缓存,可以这么说:“无缓存,不性能”。缓存的作用是把适合用来进行数据库管理的模型和矢量等各类数据,按照便于显卡进行三维渲染来进行重新组织和优化,而且对于iMobile端三维数据只支持场景缓存数据,在iDesktop切缓存的时候要选择对应的设备类型,如下图所示。在iDesktop 9D版本切场景缓存的时候就进行了纹理压缩,以前的版本切完缓存后还需要进行单独的纹理压缩再拷贝到移动端打开。
这里写图片描述

2、 升级到最新版本

      iDesktop产品的后一个版本对于前一个版本在某些方面对三维数据进一步优化提升性能,所以建议切场景缓存和加载场景的产品用最新的版本来实现。

3、 三维特效合理运用

各种三维特效,或多或少会影响三维性能,所以要正确的选用三维特效。在优化的过程中要先找到影响性能的特效图层,然后采用有针对性的优化方法,具体可以从以下方面排查:
(1) 水面特效:需求关注矢量面对象个数及对象节点数,尽量用少的节点数的多边形来表示水面特效,如果面的节点过多,可以进行抽稀;
(2) 粒子特效:主要关注粒子的个数,建议只在需要的时候开启图层,不需要的时候设置不可见;
(3) 阴影特效:推荐用Max烘焙来实现,平台提供的实时阴影对性能影响比较大。

4、 特殊图层

      当场景中有文字标签图层、kml图层或者跟踪图层的时候要保证图层中不要有过多的对象,如果场景中有很多标签图层,可以通过图层高度设置,距离设置,文字避让等来减少同时显示的文字数量。

5、 场景加载的三角面片数量

      在开启【帧率信息】时,同时会显示出当前绘制的三角面片数量,场景中的建筑、树、小品的纹理尽量简单一点,使当前绘制的三角面片数量越少越好。

6、 检查模型数据制作

      Max中制作的模型,其质量好坏会严重影响三维浏览性能,可以关注以下几个方面:
(1) 尽可能用少的三角面片去构建模型骨架。例如高楼的一面墙,不要每层楼都勾画线,而 是用贴图的方式体现出楼层来;看不到的地方应删除掉等;
(2) 用尽可能少的贴图数量。例如相近的墙面可以共享贴图;细碎的纹理拼接为一个图等;
(3) 贴图大小不要太大。一般建议控制在 1024*1024 之内,最大不要超过 2048*2048;
(4) 除非必要,采用单面渲染,而非双面渲染;
(5) 尽可能独立的建筑物作为一个单独的对象,不要把相邻的建筑物合并为一个对象,也不要把一个建筑物拆分为N多个对象;

7、 图层数是否过多

      场景渲染时,每个图层都会占用一定的资源,并且调度时也会有一定的损耗,建议控制在20层以内,最多不要超过50层,可以通过以下方式减少图层数量:
(1) 合并同类型图层:例如模型可按照:建筑、地板、树木、小品等分为 5-8 层即可,不同区域的建筑可先在数据集中合并后再生成缓存 ;
(2) 通过图层可见高度控制同时可见的图层数量。

8、 图层参数设置

      场景的图层属性中也有很多参数会影响场景性能,比如:图层可见高度、对象可见距离、精细纹理距离、LOD距离等。
(1) 设置场景图层的最大和最小可见高度,减少同时显示的图层数量;
(2) 模型和矢量图层可以设置最远可见距离,超过该距离的物体将不被显示,比如:建筑模型设置为3000-5000米,树、小品设置为500米比较合适;
(3) 模型图层,可设置精细纹理距离和LOD距离。精细纹理距离是控制模型贴图清晰层到抽 稀层的距离,默认距离为 200 米;LOD 距离是模型贴图抽稀层到模型骨架抽稀层(LOD)的距离,默认距离为 800 米。
这里写图片描述

9、 数据格式

      影像数据建议用切成sci3d格式,性能优于影像的sci格式;地形图层要切成tin地形,否则在iMobile中不支持。
      通过上述方法优化后,在iDesktop中浏览的性能良好,然后保存场景,拷贝到移动设备中,用iMobile产品打开加载优化后的场景数据。由于移动设备的原因,场景数据在iDesktop中浏览的性能好,但是在iMobile中还是比较卡顿的话,就要在iMobile中确定是哪个图层影响的性能,可以通过设置场景图层的可见性来测试、最终确定影响性能的图层,然后再根据该图层的实际情况在iDesktop中继续优化。另外,移动端设备硬件配置的高低也会严重影响场景显示的性能,所以尽量用高配置的移动设备来显示三维数据。移动设备的性能可以用安兔兔等第三方软件来测试。

阅读更多
版权声明:本文为博主原创文章,欢迎转载,SuperMap技术问答社区 http://ask.supermap.com https://blog.csdn.net/supermapsupport/article/details/78784190
个人分类: 三维 iMobile iDesktop
想对作者说点什么? 我来说一句

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

不良信息举报

iMobile中三维数据的性能优化

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭