0

我正在加载一堆 obj 模型,它们相当重,每个模型有 120 个奇怪的纹理。它们加载良好并最终渲染,但当它们第一次绘制时,帧速率下降通过地板并且对象的材料显示为黑色,直到纹理被加载。

有没有办法确保模型及其纹理在显示之前完全加载,或者至少查询它们是否准备好绘制?另外,有没有办法鼓励纹理加载?似乎在绘制对象之前它们不会加载。

谢谢

4

1 回答 1

0
var images = [/*..image list...*/];
var loaded = [];
var numReady = 0;

for(var i= images.length-1; i>=0; i--) {
    loaded[i] = new Image();
    loaded[i].src = images[i];
    loaded[i].onload = function() {
        numReady++;
    };
}

// in render loop
if(numReady==images.length) {
    //now ready to render
}

基本上,只需检查每帧加载了多少纹理,当它们最终加载时,您就可以开始绘制了。

于 2013-08-21T11:58:57.370 回答