创建特定网格物体并将其添加到场景时,我遇到约0.25秒的延迟。有问题的网格使用4096 x 4096 rgba纹理,并由一个简单的2三角形正方形几何体包含:
var geometry = new THREE.PlaneGeometry(this.w/1000*RESOLUTION,this.h/1000*RESOLUTION,1,1);
var customUniforms = {
time: {type:"f",value:performance.now()/1000},
tex: { type: "t", value: ResourceManager.get('explosion_spread').tex },
a: { type: "f", value: this.a }
};
var material = new THREE.ShaderMaterial({uniforms:customUniforms,vertexShader:ResourceManager.get('vert_anim'),fragmentShader:ResourceManager.get('frag_anim'),wireframe:false,transparent:true});
this.mesh = new THREE.Mesh(geometry,material);
scene.add(this.mesh);
第一次将类似这样的网格添加到场景时只有一个延迟,所有后续添加都是平滑的。我已经使用了与此类似的代码来预加载纹理:
ResourceManager.threeLoader.load(url,function(t){
items[name].item.tex = t;
});
但它没有帮助。谁知道如何摆脱这种初始滞后?
请注意,我已经安装了预加载器,在所有图像,纹理等都已加载之前,游戏才会启动。即使这样,有问题的纹理也会在游戏中稍后使用。