How does Nanites handles textures/materials in games?

Hello, this is my first post here, still learning how the forum works and if this is the right place to post my questions.

So, my question is simple and has 2 parts:

  1. Does Nanites handle textures the same way as the traditional LOD? does it decrease its resolution over distances? (I could not find any official data on this)

  2. From reading the documentation here:
    Nanite Virtualized Geometry in Unreal Engine | Unreal Engine 5.0 Documentation
    I concluded that the use of Nanites in games has to be limited to only a few and the biggest meshes in your project, since as stated in the document it does not support:

  • Blend Modes using Masked or Translucent
  • Deferred Decals
  • Two Sided
  • Custom UVs
  • Forward Rendering
  • Multisampling Anti-Aliasing (MSAA)
  • PlayStation 4 and Xbox One Nanite support is currently considered experimental.

Which all of the above are crucial for a game’s development and shipping of the game product.
And, the question here is: How safe is to use Nanites at this point for game development?

Thank you very much in advance.

You didn’t read the documentation well then, it explicitly states:

“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.”

Nanite should be enabled on 90% of meshes in the scene, otherwise in probably isn’t a good option.

On the other limitations

  • Custom UVs
    I believe this is referring to the Customized UVs node in the material editor and isn’t crucial

  • Blend Modes using Masked or Translucent
    Nanite supports Masked Materials now, translucent elements should be separate mesh that doesn’t have nanite enabled, not a big deal.

  • Deferred Decals
    Kinda sucks, but you can have 3d modeled out “decals” that are really meshes you’re using in place of decals.

  • Two Sided
    Two sided was already problematic, especially with lumen and mesh distance fields. Close your meshes or duplicate and invert them.

  • Forward Rendering
    Mostly used for VR or mobile games.

  • Multisampling Anti-Aliasing
    Other features already rely on temporal AA or temporal upscaling

Thank you for your reply.

I’ve been reading a lot Unreal documentations lately since I’m new to this engine (but no to game development and game engines in general), and this last one I read it late last night and probably need to read it again.
But, the question of how Nanites handles textures still remains.

So, ‘Custom UVs’ is referring to the UVs modified inside Unreal Engine, right?
This is one that troubles me the most, since I’ll be adding a vast amount of custom made assets.

It handles textures like a normal 3d model, there’s just one particular node/feature in the material editor it doesn’t support. Customized UVs | Unreal Engine 4.27 Documentation

Sorry, but I did not specify my question.

While using traditional LOD on a mesh you have multiple instances of the same mesh but with lower vertex count/mesh quality.
Each level of LOD has its own texture that reduces in size/resolution according with the level of LOD.

Now, Nanites is Unreal 5 new way of generating LOD for a mesh, and it has a plethora of documentation about how Nanites works on a mesh. But, it does not referred anywhere on how Nanites generate LOD for the texture the mesh is carring.

Does it reduce the resolution of the texture as the distance grows from the player’s position?

Important thing there: The documentation version you have is for Unreal Engine 5.0, we are currently on version 5.3; massive changes and upgrades to the nanite system have been made such that it can handle many cases it struggled with before. By and large, the only common use cases that nanite poses a problem for is skeletal geometry and translucency, most other limitations can just be fixed with different pipelines.

No. It is referring to a method of vertex interpolation that was used for shader optimization prior to the “vertex interpolator” node being added which does the same thing.

Thank you, this clarifies things about UVs.
Do you happen to know anything about my original question? About if and how Nanites generate texture LOD on the mesh they are applied?

Texture mipmapping works exactly the same on Nanite as non Nanite.

Thank you, I had a feeling that would be the case, but thought I’d ask to be sure because I couldn’t find the answer written anywhere.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.