My OpenStreetMap 3D renderer uses alike 100 different of PBRMaterial with >=3 detailed (4MB etc.) Textures (color, normals, ORM, emissive, reflectivity)
As my “world” is divided in tiles, PBRMaterials are loaded while the user is moving in the VR scene already. And PBRMaterials loading stops/slows the render cycle remakable/unacceptable for 30 seconds.
So I preloaded the textures before I create the material. The texture load is the ugly part.
As other loads from the web are not a problem, I assume it is not the loading itselfe but the copying to the GPU.
Am i right?
Is there any idea to do it “in the background”?
I already use a service worker, but it has no access to the BABYLON.Scene, hm?
If it is indeed the gpu upload that takes time, you could try to check our basis support to load compressed textures instead ? this would help a bit.