Hey everyone,
I’m currently working on a large open-world project in Unreal Engine 5.4, and I’m struggling with performance issues, especially when moving through dense forest areas or large terrain sections.
Here’s a quick overview of my setup:
Nanite enabled for most static meshes
Lumen used for global illumination (no baked lighting)
Landscape is split into multiple components using World Partition
Target platform: PC (possibly moving to console later)
Even with LODs and culling in place, I still get major frame drops when rotating the camera quickly or when streaming in new cells.
My questions:
Are there best practices for optimizing performance in large outdoor maps using World Partition?
Is Lumen too heavy for open worlds without using hardware ray tracing?
Should I consider switching to HLODs or manually placing proxy meshes?
Any advice, documentation links, or examples from similar projects would be incredibly helpful. Thanks a lot!
Controlling your world’s performance is a complex task, which usually comes down to streaming resources, draw call management, and lighting cost limits. Your initial setup sounds solid, I would add just a few pointers, going further:
When working with WP, cell size and load distance matters a lot. If streaming hitches are hitting, try smaller cells and confirm what’s flagged as always loaded.
For your landscape, please make sure your components aren’t too high resolution, and use Virtual Textures to blend terrain with assets, to cut down on shader cost.
And regarding your camera hitching, check your shader pipeline cache and texture streaming, increase your pool size if necessary.
Now, considering your questions, let’s go one by one:
Are there best practices for optimizing performance in large outdoor maps using World Partition?
Keep cell sizes reasonable, between 256 m or 512 m should stream smoother than large sections
Only mark what you truly need as always loaded
Use streaming source actors to control the loaded area around the player
Is Lumen too heavy for open worlds without using hardware ray tracing?
For exteriors, Lumen will have conflicts with foliage and large areas
HRT will be more efficient, at a greater CPU cost
Should I consider switching to HLODs or manually placing proxy meshes?
HLODs should give the best results, since Nanite can solve polycount, but not draw calls
Manual proxies can be useful for certain elements in the map, but you won’t need them at all times. The automated HLOD generation inside WP can handle this for you
As for documentation, there’s a lot to cover, I would point you to the following articles, covering both performance handing, and open world management. Hope this helps, good luck!