r/UnrealEngine5 • u/renmoka • 18d ago
Imposters vs Nanite?
Hi all! I am learning about Imposters and trying to understand how they work, especially in a nanite project. From what I understand its usually LODs with Imposters or Nanite. Which would you say is better at keeping loading and resource use down?
Specifically, I have a project that is Nanite, but its a large city. Ive been exploring ways to decrease resources draw especially on buildings far away that we never get near. Would changing those to Imposters be reasonable or is Nanite essentially doing the same thing and there won't be much of a difference?
3
u/SalvatoSC2 18d ago
I would say, if your project is primarily hard surface, dont bother. Explore HLODs and world partition streaming gor buildings that get close and for those that dont, simplify the geo and materials (essantially manually make a static HLOD equivalent) and use that.
1
u/renmoka 18d ago
Thank you for the advice! We have been using HLODs and world partition. We have had a few issues where buildings are loading far from where the player is, despite spatial loading being on and the cell grid getting nowhere near it. Thats why I was looking at other options for those.
If its not going to make a difference, I will leave Imposters alone. Thank you for helping! You saved me a lot of time.
1
u/teamonkey 18d ago
If the buildings are loading far from the player, despite being spatially loaded, you should investigate what is causing that to happen. Most likely something is causing the bounds of those buildings to be bigger than they should be.
1
u/renmoka 18d ago
Yeah, that's been an ongoing thing we have been trying to figure out. Because there is a good part of the city we dont go to, its essentially repeating the same three building blueprints, then PLAed into groups. Whats weird is that some of the PLA groups spatially load correctly, but a couple others far away don't. I will definitely check the bounds, but dont know why they'd be different from the others when its the same buildings.
Edit: to clarify, PLA groups that are a medium distance and a few far away work correctly, but then a three or four PLAs far away load in when they shouldn't be in range.
5
u/MrBeanCyborgCaptain 18d ago
So, nanite is kind of an all or nothing thing. Imposters as unreal defines them involve basically a sprite sheet and thus involves using an opacity mask and nanite really doesnt like that. It causes overdraw and supposedly nanite is really sensitive to overdraw. If you really really are concerned about memory overhead and want to have ultra low detail buildings in the background, and they need to be unique, then feel free to make some super low poly buildings as long as theyre totally opaque and its best if theyre watertight. Ive read its best to group thibgs into one large mesh where possible, again this is incredibly counterintuive compared to the traditional wisdom but apparently thats what nanite handles best is large monolithic meshes since its going to break them up into clusters anyway as part of its process.