Material LODs when using Nanite

On a traditional static mesh pipeline you have LODs with individual material slots that can be used to simplify the material complexity as a mesh gets further away. Does UE5 have a function to reduce material complexity (via swapping materials or some other method) when using Nanite which has no LODs (in the traditional sense anyway)?

I recall this feature was not present in UE5.0, though there were plans to implement it in 5.2/5.3. Could you please advise whether this feature is included in the current 5.8 engine?

[Attachment Removed]

Hi, as far as I know, we do not have a plan to support this feature at the moment. Typically, Nanite reduces the complexity of the material evaluation by using shade binning. We do have Nanite Override Materials, but these might not cover your use case. Is there a particular use case you are trying to cover with the addition of these extra material LoDs?

[Attachment Removed]

Ok, thanks for clarifying. Unfortunately, we don’t have that feature available in the engine as of today. We have had discussions in the past about adding a LoDing system for Nanite materials. Still, the main concern has been that material permutation counts and shading bin counts would become too unmanageable for users. Now that we are making significant efforts to reduce the number of material permutations, we could consider adding this feature. I have raised this with the dev team so they can decide where to add it to their planning.

But our scene has many unique, non‑reused props, leading to bad performance. Any recommendations?

I can’t say exactly what would help, given the info you’ve provided, but I would look into reusing props and using instancing as much as possible. Optimizing your content first will place less performance pressure on Nanite, which is heavily optimized to take advantage of instancing geometry.

I also saw Nanite Material Cache. Can it help with heavy material complexity? What about VRAM cost though?

The Material Cache is an experimental feature undergoing many changes, so depending on your project timeline, I cannot say you should opt into it right now.

[Attachment Removed]

If you want to have a lower resolution material in the distance, you could also look into Hierarchical LODs (HLODs): https://dev.epicgames.com/documentation/unreal\-engine/hierarchical\-level\-of\-detail\-overview\-in\-unreal\-engine. These are lower-poly meshes that we swap to when the viewer is a certain distance away.

[Attachment Removed]

Hi again,

There are two things I should have mentioned here as well. First, if you want a material LOD chain with HLODs, you can specify “Disallow Nanite” on the mesh, which’ll revert to Nanite fallbacks at runtime, allowing you to have a material LOD chain. Secondly, we have WPO and Pixel Programmable disabled distances to achieve the nominal outcome for Nanite, forcing the instance to fall back to cheaper rasterization. Tuning those distances tends to be the bigger performance concern for Nanite.

Otherwise, no, distance-based material LODing is antithetical to the way we’re developing Nanite, and it is not likely we are going to add this in. Adding material LODs creates extra shading bins, which is one of the main bottlenecks for Nanite performance, so we want to avoid that as much as possible.

[Attachment Removed]

I want to use high‑complexity materials for close‑range viewing, such as increased tiling and layered detail normal maps, since we heavily rely on procedural materials.

For distant viewing, I intend to use simple baked material textures.

This approach can reduce video memory consumption and optimize performance.

Like the Quixel DerelictCorridor sample: `MI_Walls_03` pulls in lots of textures for better visuals.

But our scene has many unique, non‑reused props, leading to bad performance. Any recommendations?

I also saw Nanite Material Cache. Can it help with heavy material complexity? What about VRAM cost though?

[Attachment Removed]

[Image Removed]Left side: complex material.

​

Right side: simplified material.

​

Most of the visual output matches at far distances, yet the tiled detail‑normal effect is lost up‑close.

​

How can I achieve higher‑quality material baking?

​

The ideal solution would be for Nanite to use the complex material near‑camera and fall back to the simplified material in the distance.

​

I have also experimented with NaniteDisplacedMesh, but it still cannot reproduce the original visual quality.

We have also enabled Nanite for skeletal meshes, such as MetaHuman assets.

Similarly, we want to use complex materials near‑camera and reduce material slot count with simplified materials for distant views.

However, Nanite currently does not support this feature.

[Attachment Removed]

HLOD does not fully meet my needs.

What I may want more is standalone Mesh LOD, because I might also use ISM or HISM, which only support the same material.

This makes it impossible to use high-quality materials at close range and simpler materials at long range.

Do you have a better solution? Or are you planning to develop related features?

[Attachment Removed]