Nanite + Virtual Textures + Quixel = Texture Budget exceeded and incorrect textures

Has anyone else run into this? I have virtual texturing on, and pulled in a total of 7 different Quixel assets in Nanite format. Before turning VT on, I was consistently getting bad textures and a red overlay saying texture budget exceeded, which was not unexpected. I’ve since turned VT on, and now it’s basically random whether or not it’ll happen. When it does happen, one or more asset will be textured the another asset’s maps.

Is this expected behavior for just a small number of assets (with 8k textures being understandably huge)? Is there any easy way to downgrade the texture resolution on a Quixel Nanite asset without manually pulling in the lower-res textures and replacing them?

Video card is RTX 3090 for reference.

1 Like

Here’s a sample of what I mean. I’ve also gone through now and converted all textures to VT, which fixes the problem in the editor all around, but immediately goes back to weirdness when I hit play. I built out a shipping build of this small scene and it had the same problem.

I did a little more experimentation and turned the floors and walls into nanite meshes. They are using the default material, which notably does NOT have a texture at all - it has a flat color constant plugged into the albedo. However, upon hitting play I get a texture nightmare. This is the same floor as the above two images, but I opened the mesh and selected the enable nanite option.

Megascans material seems to be broken for some reason, I’m experiencing the same issue with no easy fix in sight. I think this is because my project already had Bridge installed when I ported which messed up with the root materials of Bridge.

Try converting the texture Bridge imports to Virtual Textures. Make sure you have Virtual Textures enabled in your project settings first though, under the “Rendering” tab.

Once you have turned it on, simply browse to the textures Bridge imported in the content browser, select them, right click and select ‘Convert to Virtual Texture’. This will find the material and all related textures to that material and convert them all to virtual textures, along with updating the material itself, automating the entire process.

Using virtual textures instead of standard stream textures should fix the texture budget issue.

So yeah naw, for me the issue is persisting even with virtual textures and increasing the texture streaming pool budget, on the off chance that was the reason.

Thank you for posting. I’m experiencing the same issue. I noticed that Bridge in UE5EA doesn’t reference or see the old Megascans files that I had previously downloaded. I started a new Third Person project and made sure to download new files and Nanitize :wink: everything. In editor, it looks great. When I PIE it seems to initiate this weird behavior with the textures/materials. I don’t like using virtual texture streaming or whatever due to the extended shader compile time, but I’m going to try it to see if it resolves the issue.

I found a permanent fix to this issue.

  1. Disable Bridge plugin, restart editor.
  2. Remove Megascans and MSPresets folders on your project, restart editor
  3. Enable Bridge plugin, restart editor again

And tada, all your new imports should work out of box.

1 Like

I started from scratch with Virtual texturing enabled, tried converting all to virtual textures, tried using low-res versions of the textures (1024x1024). I wrote my own simplified shaders to test and replaced all the megascan shaders. Sometimes it works once or twice, but then it’ll show the textures all wonky again no matter what I do - even with virtual textures, low resolution, and using materials that only use the color and normal inputs directly, I still get bad textures on half the assets during play. That includes removing all Megascan assets and starting from scratch.

1 Like

I have it fixed, although I’m not 100% which setting fixed it. Let me show yall my Mesh settings, but I want to be clear that I did follow @Navhkrin fix and then I did this:

NaniteSettings

I’m pretty sure the key setting here is the Generate Mesh Distance Fields, but here’s what I did:

  1. Double click your mesh in the content browser or otherwise open the file to edit.
  2. Enable Nanite (duh, but it’s not always enabled automatically upon import through Bridge)
  3. Hit Apply Changes in Nanite Settings
  4. Tick “Generate Mesh Distance Fields”
  5. Under Mesh, tick “Build Nanite”
  6. Save your Mesh file.
  7. Profit

This fixed it for me.

Huh, I tried that as well and I apparently have just the right combination of something that triggers the problem no matter what. All of the meshes already had the nanite settings enabled, but some didn’t have the generate distance fields. However, turning that on didn’t appear to do anything to help the issue. I’ll keep fiddling around, but right now it appears something is badly broken in my combination of setup and hardware that isn’t happy.

I’m getting the same problem. Been fiddling with settings but no luck yet.

Beezir, I have found something. If I remove the Skylight from the World it works fine.

2 Likes

Interesting - I think you may have pinpointed the problem. Before removing it, I went through toggling everything on and off and when I toggled that one, it would swap textures around between two different arrangements (both wrong). I deleted it, and it still wasn’t correct until I hit play. Since then it’s been fine, but I’ll keep playing with it to see if anything else triggers the problem.

I have several other types of lights in the world, but none of them mess with textures at all when I toggle them.

1 Like

i love you with all my heart

i converted the imported texture mesh from megascans to regular texture and solve the low quality res…