[LayaAirIDE 2.0]用了Sprite3D.instantiate方法,在iPhone6上性能降低了80%

import s3d = Laya.Sprite3D;
 
static s3ds:{[key:string]:s3d;} = {};
 
static news3d(id):s3d{
return x.s3ds[id].clone() as s3d;//s3d.instantiate(x.s3ds[id]);
}
 
static loads3d(id, path, handler=null):void{
  s3d.load(path, Laya.Handler.create(null, function(sp){
x.s3ds[id] = sp;
if(handler)handler.loadeds3d(id, sp);
}));

我首先用loads3d方法加载所有的.lh文件,然后用Sprite3D.instantiate方法加载入场景后,在iPhone6上性能降低了80%,40000个面只有5贞,但是如果不用clone或instantiate,直接每个模型都用s3d.load加载,不进行Sprite3D.instantiate就是30贞。
 
表现出来的就是场景里有相同的模型一下性能就降低了很多,如果全部加载不同的模型,却是满贞。难道到Sprite3D.instantiate后引擎自动动态合并导致的性能降低?
 
图1是先用Sprite3D.load加载,然后再Sprite3D.instantiate或clone的,只有4贞。
图2是直接用Sprite3D.load加载后直接使用,没有进行克隆的。
1.png 2.png
已邀请:

要回复问题请先

商务合作
商务合作