Navigation Mesh Rebuild At Runtime causing 20-40 fps loss

Branch: Binary

Build Version: 4.8.1-2591939

Description: Navigation mesh gets fully rebuilt as soon as the game is played, causing a huge fps drop on a big map with a large nav mesh. With “Runtime Generation” set to “Dynamic”.

Repro:

  • Make a large level with a very large nav mesh
  • project settings-> nav mesh → runtime generation → dynamic
  • Reload the editor, and make sure the “building navigation” message lasts at least 10 seconds
  • construct a reasonably complex scene that takes the fps below max on your machine

Result:
A 20-40 fps drop just after begin play until the nav mesh is fully built. Instead I was hoping the engine could use the initial state of the pre-built nav mesh (like the Static option) and then continue working like Dynamic after that. As opposed to having to rebuild the mesh from scratch.

Notes:

This issue seems to be the exact same as one found a while ago in 4.5: [4.5] Navigation Mesh Rebuild At Runtime causing 20-40 fps loss in 4.5 only - Programming & Scripting - Epic Developer Community Forums

I’ve also tried using the new option “Dynamic Modifiers Only” on “Runtime Generation”. But wasn’t able to get any navigation working at all. Same issue as this unanswered thread: Navigation fail with Dynamic Modifiers Only - AI - Epic Developer Community Forums

I read the description of “Dynamic Modifiers Only” in: What's New | Unreal Engine 5.1 Documentation That’s all the documentation I could find on it. And it sounds like it’s supposed to work exactly like the “Static” option when there are no nav modifiers in the map. But in practice it doesn’t work this way and I can’t figure out how to use it.

Hello Mastodon,

After reading over your post I found that the setting “Dynamic Modifiers Only” works with little to no frame rate drop and my characters are able to navigate as expected. However, I was able to reproduce the frame rate drop that you are seeing with the dynamic settings. I have written up a report ( UE-18627) and I have submitted it to the developers for further consideration. I will provide updates with any pertinent information as it becomes available.

Make it a great day

Thank you so much for looking into it.

Could you please direct me to some documentation on how DynamicModifiersOnly works?

For me it just doesn’t work: (at least in the way I’m trying to get it to work)

  • Created a new project from the top-down template
  • Changed setting to DynamicModifiersOnly
  • Hit play and can’t move

DynamicModifiersOnly mode has been fixed very recently and the fix is not in 4.8. Sorry!

I pulled the latest promoted version and verified that it works.

I think DynamicModifiersOnly will fit nicely with what I’m trying to do.

Thank you for adding this functionality. It makes the nav system a lot easier to work with.