Good Day. I Have a question about level streaming: What is their purpose?
I thought it was to increase performance and FPS, so I tested it out.
I created a persistent level (contains only floor and lighs) with few sub-levels (each level was a room in my persistent level)
One room, which was behind corner and not visible from player start, had a lot of quixel bridge stuffs imported in High Quality - point was to drop down FPS.
Then i created Volumes to unload and load that room and build a game - and I had around 45 FPS when I was in empty room and room with all that stuffs was unloaded, when I walked into that room and loaded all that Quixel stuff, my FPS dropped to arround 20-30 as expected.
Then I created antoher build, where everything was loaded immediately and again spawn player in empty room on Begin play.
I expected lower FPS, because everything was loaded, but no, FPS was exactly the same as when I was using level streaming (45 in empty room, 20-30 in populated room)
So I wonder, doesnt Level streaming supposed to improve performance by not everything is needed to be loaded and drawed on begin play?
By my testing, it doesnt matter, if I unload that populated room on level startup, or that room is allways loaded.
Or did I do something wrong?
Level streaming IS improving the performance for you, that MS wasnât loaded until it needed to be. So, things are better while itâs not loaded.
Level streaming is how to do endless open worlds, if you want more control than world partition. You get to load and unload stuff while the player is moving around the world without them knowing.
If youâve got a level thatâs heavy to run, naturally, level streaming wonât make any difference to that particular area. Itâs not magic
Rereading your post, when you have already loaded the MS stuff, but are not in the room with it, the engine is not drawing it, because itâs occluded. So the performance would be fairly good, but maybe not as good as if the room was totally empty.
Yes, the engine automatically hides stuff we canât see, but we canât lean on that system totally and just fill the world with 400 million MS meshes. Iâm sure you can see, that wonât work
Thank you for clarification.
Level streaming is not very powerfull in very small maps (which we are currently creating for our project)
Maybe in our next project we will go Bigger
One follow-up question: You said that engine hide meshes and stuff which are occluded (like by wall, etc.)
But what about , if they are out of camera Focus in TOP-DOWN View? (meshes and actors, that are not currently in our viewport, but are âjust around cornerâ).
Will engine not draw them as well, so I donât have to worry about Culling?
Yes, you donât need to worry about culling, because thatâs all done by the engine. Anything thatâs not visible with the camera, will be removed, for that frame.
It doesnât matter if thatâs because itâs hidden behind another mesh, or just not on the screen.
Look up the âfreeze renderingâ console command if you want to see it in action. You can stop the game, and pan the camera around, to whatâs being drawn and not