Nanite displays a fixed amount of polygons at any distance only with cooked content

Since we integrated the 5.6 version of the Engine we are facing a severe graphic issue that makes our game unplayable in builds. The graphic issue is basically that Nanite is displaying as if the visualization Nanite->Streaming Geometry option would be unchecked, affecting 98% of the Nanite meshes, including the landscape. There are a few that, if the Triangle visualization is on still do some processing, but the rest of them are just with the same amount of geo no matter the distance.

After some research on our side we found that switching between FullScreen and Windowed modes (pressing F11), little by little, the meshes start to behave correctly. Apparently by distance, so meshes closer to the camera are fixed, but distant ones stay broken until the camera is close to them.

We have tried to repro this, but even with the same settings that we have in our project, it doesn’t happen in a newly created project. But it does happen in new levels created for the same project.

Hello there,

Would you mind if I ask you to provide a screenshot with NaniteStats visible?

Additionally, just to clarify for myself, the engine in use has no modifications to any rendering code.

You mentioned this only affects packaged builds. Is this present in all of Development, Testing, and Shipping configurations?

Best regards,

Chris

Hi Chris,

Thank you for the quick response.

I’ve recorded a short video with the issue in a blank level with free content assets.

There is no rendering code modifications done to the engine and it happens in Development, Testing and Shipping configurations.

Additionaly I should say that I suspect that in the forums has also happened to another user:

https://forums.unrealengine.com/t/nanite-geometry-completely-broken-check-images-but-works-fine-in-editor-mode/2632485

Best regards,

Mario

Hi,

In order to attempt to inspect the issue you are reporting can you please provide the following information.

  • A screen shot/recording of the `NaniteStats` command before and after pressing F11
  • A screen shot of the Nanite settings from the details panel of the in-editor Mesh Preview

Also. are you able to set the following in DefaultEngine.ini

[Core.Log]

LogNaniteStreaming=VeryVerbose

LogNaniteDisplacedMesh=VeryVerbose

LogNanite=VeryVerbose

And send through the log file from Saved/Logs from a session that shows the issue. Further, can you please give some more information on how you are testing the packaged/cooked builds and verifying the behavior that you are reporting.

This information may help align the repro project on our end with the results you are seeing.

Many Thanks.

Hi Tristan,

Thank you for taking the time to look at this issue. Here I’m attaching what you have requested.

[Image Removed][Image Removed]

[Image Removed]

The test is pretty straightfowrward since the problem is happening as soon as we transition from the main menu of our project to any other level, either following the game path or using the command Open LevelName. In that level, all Nanite meshes will be showing the geometry as if the Nanite->Streaming Geometry would be unchecked in the editor viewport, even when modifying the distance to those meshes, so they stay heavily broken, Nanite Landscapes included. When the resolution is changed or something else modifies the viewport the issue starts to disapear on nearest meshes. The issue happens both in Shipping and Development configurations no matter the platform, Windows included. It happens when packaging from the editor or using the commandlet. I started testing with the main level that we have, but tried on newly created levels and the issue persists. We have tried to resave or reimport meshes, with no luck so far, and the same with modifying Nanite cvars.

Best regards,

Mario

Hi,

Thank you for the further information, unfortunately it still hasn’t led to a reproducible result on my end. You have mentioned that it doesn’t happen in a clean project but does happen in new levels in your current project.

Would you be able to make a copy of your project, create a test level that reproduces the issue, delete any non-relevant assets from the project, confirm the issue still exists and attach the project to this case.

Further, are you able to please explain the use of the r.Nanite.Streaming.AsyncCompute command in your project ( present in the log file ).

Hi Tristan,

We have found the issue, and it is something it may happen to others as well. We have a SceneCapture in the world that has the NaniteShowFlags->Meshes unchecked. Apparently that prevented the NaniteStreamingManager to be initialized properly, and made the game crash if trying to open an initial level with the SceneCapture with Nanite disabled but the camera having it enabled. Because we had a previous level where there was no SceneCapture, it was initialized, but didn’t work when travelling to another level, until changing the viewport by pressing F11.

This looks like a regression bug in the 5.6 and still present in the 5.6.1.

Cheers!

Hi ,

It is great that you have found a way forward with your project. I will look at reproducing the issue and submitting a bug ticket to the Engine team.

I am going to go ahead and close this issue but feel free to continue the conversation here if you have any further information that you would like to add.

Thank you for the video. That’s definitely unexpected behaviour. In the forum post, the user has noticed that the asset window is showing a mesh without streaming. Are you seeing this as well?

Would you mind if I ask for the rendering settings in DefaultEngine.ini? If there are any platform specific engine.ini and DeviceProfiles, those may also be useful.

What hardware and driver versions are you seeing this on?

Best regards,

Chris

No, in the asset window it looks perfectly fine, and in Standalone as well. It only happens in cooked builds.

My hardware is NVIDIA GeForce RTX 5060 Ti and Driver version Game Ready Driver - 576.52, but it is happening all across the company with AMD and NVIDIA cards.

I’m attaching the Rendering settings. We don’t have anything specific per platform.

I’m also attaching our GI Scalability Settings because we have recently discovered that changing that setting while playing the build via the sg.GlobalIlluminationQuality command will also fix the issue. I think it is probably related with the refreshing process than with the settings itself, but just in case. The setting is by default set to 3, and setting it to any lower value will trigger the fix. And if set to any other value from the beginning will also show up the Nanite issue until changed via de command or the F11 key (though this one only fixes closest meshes, and the other one fixes all of them).

Would it be possible to delete the DDC and attempt to cook all of the assets again?

Additionally, does asset migration from the project to a blank 5.6 project lead to issues on the asset?

Best regards,

Chris

Hi Chris,

I’ve made a build with no shared DDC in my computer (had no DDC stored) and the issue still persists.

In a blank 5.6 project, with our assets migrated, it works as expected, so it looks like it is not an asset problem.

Best,

Mario