gltf模型过大,第一次加载渲染很慢,怎么预加载。

0 投票

使用产品:SuperMap iClient 3D for WebGL 操作系统:win10 x64
数据类型: gltf模型
问题详细描述:第一次加载五六兆大小的gltf模型需要很长(半分钟)时间才能渲染至场景,如何解决预加载处理。
问题重现步骤:  系统如图所示,和官方的demo类似(http://support.supermap.com.cn:8090/webgl/examples/editor.html#addSymbols),第一次添加模型至场景时,需要等半分钟才能渲染出来,第二次添加同样类型的模型可以瞬间渲染进去,如何解决第一次加载很慢的问题,我想到了预加载,但是不知道怎么写,或者是其他的方法。
 

6月 12 分类:  85次浏览 | 用户: 172476032 (8 分)

1个回答

0 投票
您好,我们打开场景或者打开图层都会有一个回调,当场景数据打开了,才会触发回调函数,要准确点的话,可以写死时间,等数据加载好了再显示出来。也就是说您可以在打开场景的时候写一个进度条或者其他的等待什么的,然后把这个写死
6月 12 用户: 赵爽 登峰造极 (5,046 分)

您好,现在加了一个进度条,但是模型多的时候都要预加载,等候的时间有点长,有没有另外一种实现方式可以解决首次加载比较慢的情况。比如原生的Cesium可以采用把模型切成3dtiles的格式,3dtiles加载就很快,而且还可以通过矩阵变换调整位置和大小。目前预加载如下:

一般来说,加载动态的才用gltf。如果您的模型是静态的,您可以把模型通过iDesktop切为S3M格式,然后发布到iserver上,这样的话加载速度会快很多。我们这边虽然也可以加载3dtiles,但是会有一定的偏移,不建议加3dtiles

还有就是如果问题间隔时间太长,建议您重新提问一个帖子,不要再以前的帖子下回复,因为当时的情况很有可能忘了
...