第一次加载具有大纹理的网格时,三个js延迟

时间:2014-04-19 13:37:19

标签: javascript three.js webgl game-engine

创建特定网格物体并将其添加到场景时,我遇到约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;
});

但它没有帮助。谁知道如何摆脱这种初始滞后?

请注意,我已经安装了预加载器,在所有图像,纹理等都已加载之前,游戏才会启动。即使这样,有问题的纹理也会在游戏中稍后使用。

0 个答案:

没有答案