WebGL三维数据服务浏览问题与解决方案集锦
作者:LingGL
不少用户在初学WebGL产品的时候,总会遇见一些三维数据发布不成功或数据加载的问题,因此写一篇WebGL三维数据服务浏览问题与解决方案集锦,提供用户自己检测问题的方法。
本文主要分为两大部分,数据不出现和数据加载慢两种情况,再分别例举不同类型的数据出现的问题解决方案,主要提供以下类型数据的解决方法:S3M缓存数据,影像。
数据不显示
(一)基本原因
数据加载不显示是用户经常遇见的问题,加载不出有如下一些问题,也是用户最常见的,用户需要先检查一下自己是否用符合以下几种情况,然后再根据自己的数据类型来解决问题。
1. 发布工作空间服务的时候,桌面端没有关闭工作空间。
iServer发布的工作空间是独占的,意思是指,在工作空间只能在桌面端或iServer其中一个产品被使用。因此在发布数据时,桌面的工作空间需要关闭
2. 工作空间保存时相机的视角比较高
iServer打开WebGL预览的时候,相机初始的位置与桌面保存场景时的相机位置是一致的。因此有时并非是数据不正确,而是在桌面软件保存场景时视角太高。这种情况只需要在桌面软件更改一下相机视角,既可解决这个问题。
3. 图层名中带有“#”这个符号
发布的三维服务中,不支持带有“#”符号的图层,这个图层在文件中找不到对应的数据,因此这个图层时加载不出来。
4. 工作空间保存的数据路径不对
查看工作空间保存的数据源的路径先要将工作空间另存成sxwu格式,再将这个格式的工作空间使用记事本打开或者用文本编辑器。下图截图部分便是记录的工作空间和数据源的相对路径。此时通过更改此路径或着在桌面重新打开数据另存一个工作空间。
若检测完,以上几种情况都不存在,接下来,我们将要按数据类型来查找原因。
(二) 倾斜与S3M缓存图层丢失
1. 缓存切的矢量缓存
点线面数据集生成缓存的时候,有矢量缓存和三维切片两种方式。用户没有注意,就会将数据生成矢量缓存。这时需要重新生成缓存,缓存方式如下:
先将矢量数据添加到三维场景中,保存场景,再使用场景右键生成缓存,在下图标记处设置为三维切片
2. OSGB格式的文件没有压缩成S3M格式文件
WebGL支持的缓存格式为S3M,发布的数据若为OSGB格式在前端加载时会转成S3M格式的,在小数据的OSGB格式发布显示可能没有问题,但数量大的时候就会出现加载不出来的情况。因此为了避免这种情况出现,生成缓存的时候我们需要在如下图所示的地方选择生成S3M.
若为倾斜摄影数据或已生成OSGB格式的数据,可以使用压缩纹理的方式将数据格式转换.。在三维数据菜单——倾斜摄影——压缩并单体化打开压缩纹理的功能,保存类型选择S3M.
3. 切成了S3MBZ和S3MB,且iServer版本比桌面版本低(910版本及以下)
这两种格式在910及以下版本的是不支持的。
4. 切成了S3MBZ和S3MB,没有使用谷歌浏览器
这两种格式在IE目前不支持的。
(三) 影像丢失
1. 影像缓存通过场景缓存的方式生成的
场景切缓存默认是dxtz格式,WebGL不支持,缓存方式换成数据集右键缓存,缓存的格式为jpg_png格式。
2. iServer版本低
若是iServer版本低的原因,使用者一般会发现,影像数据在iServer预览没有数据,而在使用代码调用服务后浏览是正常的。这个主要原因是iServer版本内嵌的WebGL版本比较低,支持不了,因此这种情况下,建议用户升级一下版本即可。
3. 影像剖分方式不是全球剖分
WebGL加载的影像必须是切的全球剖分瓦片,若为其他剖分方式,则不支持。在超图桌面产品切缓存时,一般默认的是全球剖分。
数据加载慢
(一)运行环境要求
在数据加载之前,要确保网络环境良好和硬件设施配置较好,个人认为,若需要浏览效果好,电脑运行内存8G以上,显卡Geforce GT 10系列以上,首选谷歌浏览器运行。在使用三维产品,确保电脑中有独立显卡,并将独立显卡3D设置和PhysX设成高性能处理器。如下图所示
(二) 倾斜合并根节点
大部分倾斜数据引入超图桌面的时候,瓦片边长都比较小,这个数据发布后,前端每次请求的数据都比较小,把数据全部加载完成后,就会花费很长的时间。在这种情况下,我们可以使用下图的合并根节点的方式,将倾斜的块文件适量合并,这样在前端加载数据时一次性会加载更多的数据,在前端显示的效率就会提升。
(三) S3M切片文件超过了3M
前端数据渲染慢除了上面的原因,还有另外一种情况,生成S3M切片文件有超过3M的。超过3M的数据在前端请求会变慢,因此在生成缓存后,应该检测以下,是不是有特别大的切片文件,若有,则需要对数据作优化处理。 处理方案如下
1. 建模阶段
在建模的阶段,避免模型做得过于精细,导致模型无意义的三角面过多。建模过程中,建议相同模型引用一个对象,制作实例化模型。
建模要求和模型优化参考下方链接
https://blog.****.net/supermapsupport/article/details/80684996
2. 模型数据集优化
对模型数据集做移除重复点和重复面。
3. 缓存阶段
缓存时将模型的瓦片边长设小,勾选实例化(仅对有实例数据有用)。若缓存切片中存在着特别大的数据,在缓存时,也会比较慢,缓存前可以使用三维地理设计——三角王操作——模型拆分的功能,一般可以解决这个问题。
结语
以上便是三维前端数据浏览问题的整理,大家可以根据自己的情况自检一下原因。在自检后,若以上情况都不符合,仍然出现前端浏览问题,大家可以前往超图社区提问或拨打400890086,在咨询时,直接告诉咨询人员使用的产品和版本,电脑硬件配置和使用的浏览器更能帮助支持人员定位问题…