When does Nanite become viable?

So in the small game I’m working on following a course if I replace all the meshes with nanite meshes the performance drops by 12fps.

I’d assume it’d be more worth using when the triangle counts in a scene or on specific meshes get very large but at about what triangle count for a mesh would people recommending enabling nanite?

What Types of Meshes Should Nanite Be Used For?

Nanite should generally be enabled wherever possible. Any Static Mesh that has it enabled will typically render faster, and take up less memory and disk space.

More specifically, a mesh is an especially good candidate for Nanite if it:

  • Contains many triangles, or has triangles that will be very small on screen
  • Has many instances in the scene
  • Acts as a major occluder of other Nanite geometry
  • Casts shadows using Virtual Shadow Maps

An example of an exception to these rules is something like a sky sphere: its triangles will be large on screen, it doesn’t occlude anything, and there is only one in the scene. Typically these exceptions are rare and performance loss for using Nanite with them is fairly minimal so the recommendation is to not be overly concerned about where Nanite shouldn’t be enabled if Nanite supports the use case.

If you are experiencing widespread performance loss with Nanite, you will need to do some profiling to see where exactly the difference is. Just saying that enabling nanite causes it doesn’t tell us much. Is the lost performance in the the base pass, shadow depths, etc?
Performance should be measured in milliseconds, not FPS. Losing 12 FPS means extremely different things if your starting point was 30 vs 60 vs 120 fps, so it doesn’t really tell us anything either.

Also, Nanite has a large upfront cost, but usually scales better for a full scene. Nanite also has better performance with Lumen and VSM versus traditionally geo.