Three.js:如何知道是否所有纹理都已完全加载并显示(并且没有黑色矩形残留)

Three.js: How to know if all the textures are fully loaded and shown (and no black rectangles remains)?

本文关键字:显示 黑色 色矩 加载 何知道 js 是否 纹理 Three      更新时间:2023-09-26

我正在开发一个web应用程序,用户可以在该应用程序中建造他/她想要建造的房子,然后可以在3D中预览。当浏览器不支持WebGL时,房子会在服务器上渲染,并向客户端发送一些屏幕截图。然而,如果屏幕截图很快被截取,一些纹理将不会显示,并将被黑色矩形取代。

在three.js中,是否有一个事件触发,或者是否有一种方法来判断是否或何时所有纹理都已完全加载并显示?

到目前为止,这是我发现的最好的。如果有人找到更好的解决方案,请告诉我。

THREE.DefaultLoadingManager.onProgress = function ( item, loaded, total ) {
    // All textures are finished loading when loaded === total
};

感谢JPS给出的答案:如何在使用three.js和jsonLoader的同时制作加载屏幕?