Having problems with textures popping in

I’m currently trying to make the level I’m making load smoothly by using a transition. However, whenever I open my level for the first time, all of the meshes appear with a gray checkerboard and after 1 or 2 seconds all textures load in. This is a bit frustrating because the time taken for textures to appear is not constant between different machines, and because this also interferes with the transition itself which pops in. I’m trying to find a way to avoid this textureless frames but to no avail.

It is Shader Compilation, Let it happen after Shaders are compiled, it will be stored on your Project or Global DDC Folder.
If it Happens every time then Checkout your DDC configuration

Is there a way to know when shaders have finished compiling? Or is there some way to at least make sure this doesn’t happen in my packaged game?

There should be Counter or Message on Top Left and Bottom Right.
Something like Shader Compiling (1900) etc.

That seems to happen only once when I open the editor, but only if I use play in viewport or play in new editor window. If I play my game as a standalone game then everythings textureless for a few frames before it loads in. I’m not sure if this is a problem that will persist even in my packaged game. Also, I’m not sure if there’s a way to access the remaining shaders left to compile through a blueprint

No it won’t occur in Packaged Game if used Package Settings Properly, I have never Faced Shader Compilation in Packaged Version. You can try Packaging yourself and see if it works or not, it won’t take more then 30 min to few Hours Depending on your Project Size.

Tried packaging the game and opening the level, for some reason now during the first two frames you can see the whole map unloaded (including the ui), and after that the player ends up spawning, which is something that didn’t happen at all in the editor,

It is normal in Huge Levels, Since in Editor the Assets are already Loaded hence it doesn’t Load them all together at Initialization while in Packages Games it is Loading whole Level all together.

Is your map Huge or does it have more then 1000-5000 Objects in world? If so then you should try using World Partition and also using Async Loading Level would help, I don’t remember whether Unreal have in-build solution for that or not.

Alternate way would be using Black Loading Screen and then Fading it, all these methods are combined by Developers to Hide such Artifacts but if your Level is Small then you shouldn’t Face this, it might be caused by something else.

Understandable, it is indeed a huge level. Though world partition shows as set I might have to do a double check since it only looks like there are remains of world partition without the world partition itself. Otherwise I might need to use fade ins as you commented. What I’m confused about is if the async load level you’re talking about is referring to streamed levels or is it a plug-in?

I am referring to method for Initial Loading Level when you Open, on other hand Level Streaming Level is different to manage Runtime Loading of Segments.

I think there was Function on C++ for Async Level loading but anyway there is Free Plugin in Marketplace called Async Loading Screen it does Load Level in Async Process without blocking main thread and there is way to Execute Flow on level Loading Complete.

You can try it and see if it works.

You have to do a loading screen setup. No way around this.