Having several problems with World Partition streaming Instanced Static Meshes, and minimap gen

Hi there,

I’m trying to use World Partition in Unreal 5.1 for a 100km x 100km world map, and I can’t seem to get spatial streaming working for my instanced static mesh actors. I am scattering many instances of static meshes around the map, divided into actors of perfectly spaced grids, for World Partition to stream in.
My landscape proxies actually seem to stream in perfectly; when I turn on the preview grid for the cells I can see it’s loading the landscape tiles at just the right time as I spatially move the player/camera into the right areas. However, my instanced static meshes seem to load in almost randomly, actors that are on the other side of the map will load and unload in weird patterns, and many just won’t unload at all. It seems to make no sense. I have checked the bounds of these actors, and even tried using the cvar to load by location rather than bounds, nothing helps… making spatial streaming here impossible for 90% of my level.
When I select a region in the World Partition panel, and load actors in that region, it loads the exact instanced static meshes in those regions perfectly, so manually loading them in that window works, and the bounds look correct… it just doesn’t work at all in runtime/simulation mode.

Thanks for any help!

1 Like

Hey @mchataway I have exactly the same issue. Did you figure it out since?

No I gave up, searching online it seems many people are having similar issue with World Partition.
My conclusion was that it isn’t ready to be used reliably in production.
Would love to be shown that I’m wrong though by the devs here :wink:

Hey I might have found something:

So based on Aris answer if the bounds of an ISM overlaps 2 cells it gets promoted to a higher level cell. In my case it got promoted to the persistent level and never got unloaded. I checked the matrix demo config and found this line which defaults to false:

wp.Runtime.RuntimeSpatialHashPlaceSmallActorsUsingLocation=1

The full config is like this:
[SystemSettings]
; World Partition
wp.Runtime.RuntimeSpatialHashUseAlignedGridLevels=0
wp.Runtime.RuntimeSpatialHashSnapNonAlignedGridLevelsToLowerLevels=0
wp.Runtime.RuntimeSpatialHashPlaceSmallActorsUsingLocation=1
wp.Runtime.RuntimeSpatialHashPlacePartitionActorsUsingLocation=0

Let me know if it solves your issue as well.

Thanks userresu, that worked!
Now I can stream in my Houdini-generated ISMs as expected, thanks for that!

My problem now is that I get pretty bad stutters and frame rate drops as the tiles are streamed in at runtime…
I would have thought the assets would be streamed in asynchronously in the background and only drawn to screen once they are loaded, which you’d think wouldn’t cause stutters like that.
Have you found the same in your tests?

Yeah I had/have the same issue with loading but probably adjusting the tile sizes/ number of instances should decrease the stuttering. I think the loading is async just if you load a 100k instances that hits back a bit.

In the matrix demo they only loaded one tile distance around you and the farther tiles are hlods. Maybe as you move forward you load in lot of tiles at the same time?

I’m experimenting with this in the next couple of weeks so I will update you if I have a rule of thumb for these issues. Let me know if you figure something out!

1 Like

Sounds good, for sure keep me in the loop of what you find, and I’l do the same! :slight_smile:

Try packaging your project and testing that.

Hello!
Where did you add these commands?