Nanite Performance is Not Better than Overdraw Focused LODs [TEST RESULTS]. Epic's Documentation is Dangering Optimization.

nanite made my game run a lot better on older hardware which surprised me. A lot of my players are now reporting much smoother frame rates and the ability to play high-ultra settings after updating the game to use nanite fully. I also implement AMD FSR 3 frame gen + upscaling to make the frame rate 3x.

1 Like

True, epic even stated that nanite is not for targeting 120+ fps. It was built for games targeting 30-60fps on consoles and PC with consistent frame timing and insane amounts of detail which is ultimately what matters and sells.

1 Like

Exactly.

I don’t think you understand the whole point of performance nor how complicated these games actually are TheKJ.

Your Fortnite test. How do you not see all the elements of visuals in front of you!!!

Plus, the whole point of performance is to make the game look good. Do you like Fortnite? I don’t care, but that is what matters. What sells is visuals, not numbers. The city test too. There is so much going on there that you don’t see, like Metahumans.

You should really put that middle finger in Reddit's hole, not Epic's.

Basically go f*ck yourself TheKJ.

How do you not see all the elements of visuals in front of you!!!

Elements of visuals being smeary TAA or insane noise? Sub 60fps mean worse input and screen judder. Oh let’s forget the original performance on FN 5.0 was complete crap and was only recently updated with a new map with less Nanite and got better performance.

You lost your DÅMN mind over ME asking for better documentation.
Brian Karis PUBLICLY stated it will give worse performance and the documentation STILL insist developers on enabling it on EVERYTHING. That is a problem I and others want FIXED.

You’re the one who knows NOTHING about graphics or history of what we have already achieved. I don’t care how fast games get pumped out, we are getting trash quality and people know it, in fact people are hating UE more than ever.

You account says based in Florida huh
no wonder.

1 Like

Here is another test I am doing for a video using the archviz sample scene in UE5.0.3:

No Nanite 11.39ms

All static Meshes with Nanite Enabled via content folder

Better performance with Nanite but notice the GPU is using more watts and has a higher clock MHz? But take a look at geometry density with and without Nanite:

Without Nanite

With Nanite

It’s clear that Nanite cut down the geometric detail, so to a certain extent we are getting basic subpixel(visual) optimization like LODs but nothing revolutionary other than the fact that I can’t make LODs as fast as Nanite can(as it actually making levels of detail not performance). After trying to see if I could achieve the same(probably even better) performance without Nanite by editing the polycount of the objects manually
UE crashed.

If I’m rendering lower geometric detail with Nanite, my computing should go up but it doesn’t. It’s just using more of my GPU in comparison to regular pass. If I was rendering the same geometric detail via optimizing the meshes, I would either have higher fps or lower GPU usage.

This is a workflow issue, not a “LODs are bad” issue.
To Epic: Stop trying to force something that has worse performance as a bandaid to your workflow issues and deficiencies towards LODs.

1 Like

The visuals get better as you get closer dynamically

Maybe Nanite should automatically refuse meshes that are too small and we should have a bit more options to do better LODs when needed.
I would also love to have some more settings. Nanite is this completely automated robot thinking for you
 I don’t really like that.

1 Like

This is a workflow issue, not a “LODs are bad” issue.
To Epic: Stop trying to force something that has worse performance as a bandaid to your workflow issues and deficiencies towards LODs.

Nobody is forcing you to use Nanite. Quite the opposite in fact. You are encouraged to turn it off unless your project specifically uses very high poly count assets or you are doing arch viz or non-realtime rendering type projects. You can simply just use LODs instead. If it doesn’t make sense for you to use, then feel free to disable it. LODs aren’t going anywhere

Why are you measuring frame time 
 when you’re not GPU limited 
 in the editor?
Like, sure, that’s probably something that affects you personally, but it has almost nothing at all to do with what real games will do with high density nature assets on shipping builds on target hardware.

Figure out what your hardware target, and available development time, is. Use any or all tools available to you to make the best game you can make for the given target hardware in the given development time budget. If Nanite is part of that, great! If Nanite is not part of that, also great! For gnarly outdoors scenes with typical 3D photogrammetry scanned high-realism assets, Nanite is absolutely a win for a large subset of the games using those techniques. If your game is somethign else, it might not be.

2 Likes

Nobody is forcing you to use Nanite.

I already said stop referring to me, my issue is with other(not all) studios who are and It’s becuase of out of context information being okayed by ignorant users who have fallen for marketing.

Corporate studios who use UE are admitting to a lack of interested managing graphics, I have seen them admit it from their mouths. Also, the way UE is designed atm makes using Nanite a much quicker option, you can highlight like 1000 objects and enable Nanite. There is no such thing for LODs(even tho their could be ) becuase this isn’t going to be improved by Epic. They are not technically forcing anybody to do anything, but they aren’t making anything that isn’t Nanite related better for developers.
I’m not using the Engine Epic provides.

You are encouraged to turn it off unless your project specifically uses very high poly count assets or you are doing arch viz or non-real-time rendering type projects

I have been asking for Epic to state this, you are NOT encouraged to turn it off unless something was updated(at this threads request) in the documentation.
The whole point of this thread is to give more context in the docs, your contradicting the whole point of the thread and Epic documentation(that I last remember?)

So please, I sincerely ask what is your personal point?

I already said stop referring to me, my issue is with other(not all) studios who are and It’s becuase of out of context information being okayed by ignorant users who have fallen for marketing.

Well because you are the one saying that Epic is intentionally misleading developers. Does the engine lack documentation? sure, but that has been that way since the dawn of the engine, its an issue across all features, not just nanite. I can’t count the number of times an obscure checkbox fixed/broke my builds or features, with little to to no documentation on what the checkbox really does under the hood.

But to say they are doing it on purpose is silly.
If its one thing I learned early in development is that you are responsible for your game and all the pitfalls, unknowns and tricky obstacles along the way. If a studio chooses to use Nanite without fully understanding what it does, or without testing it first to compare, or without reading the documentation, that’s on them and they will suffer the consequences.

To me the small performance hit is worth never needing to worry about LOD popping/optimization ever again and to dramatically save artists time. To some other studios it won’t be. But either way, I’m not going to sit here and complain about a cool feature that I’m happy the Engine has, and I also won’t worry too much about what other studios are doing, you don’t need to rescue them.

There is no such thing for LODs

Yes there is, via the property matrix

3 Likes

Word!

Even if I’m not happy about the feature, I’m not going to complain that other people are happy about it.

A bunch of companies are making a bunch of games I probably wouldn’t enjoy playing.
Every day there’s like ten thousand hours of gameplay released into the world, it’s impossible to play even one percent of all of it, so I’ll focus on the games I will probably enjoy, and ignore the rest.

To follow up on this: The conclusion is that “telling an artist they should make art the way I want to, not the way they want to, isn’t going to be met with a good reception,” as we see above 


Yes there is, via the property matrix

The property matrix is only one part, their LOD algorithm is still broken, logicless, slow, and VERY limited. Again, like I said this is a workflow deficiency and time is imporant. Epic is approaching the time problem with Nanite at the expense of the users computation.

But why would they care, they are here to convince devs not players. The majority of gamers hate unreal and the few that do like it have no idea what they are talking about.

Well because you are the one saying that Epic is intentionally misleading developers.

They already stated they want to completely replace traditional rendering, and they are giving out of context information. It’s not that that are intentionally misleading developers, they don’t care. (unless the update this already)

To follow up on this: The conclusion is that “telling an artist they should make art the way I want to, not the way they want to, isn’t going to be met with a good reception,” as we see above 


Brian Karis said the reason he wanted to make Nanite is becuase “what’s the point in making a technically limited scene if that’s not even how the artist envisioned it”.

I can’t enjoy your art when it’s blurry and unperformant. This thread is more than a complaint thread towards Epic and is now a test ground for Nanite vs alternatives for other developers.

The majority of gamers hate unreal and the few that do like it have no idea what they are talking about.

Gamers don’t hate engines. They hate bad games. The engine didn’t make the game bad, the game developer did. The engine gives you all the tools you need to make a great game. You can use them or not, its entirely up to you. Most gamers could care less whether you use Nanite or LODs, whether you use most barely even understand the graphical settings and what they do. What they care about is if your game is enjoyable to play.

I can’t enjoy your art when it’s blurry and unperformant.

Then optimize it better. That is on YOU, not on epic. The engine runs great when you properly use the optimization tools given to you. Nobody put a gun to your head and forced you to turn on Nanite

Atm, it is being promoted as this one all, be all solution by Epic themselves

No it isn’t. Nanite is one small element of the rendering problem, dealing with level of detail. That’s it. And its entirely optional. Poly counts are only going to continue to increase over time. With photogrammetry assets they are already hitting millions of polys per mesh. Do you really think its it feasable to be packaging hundreds of millions of LODs worth of data along with games in the future? Of course not.

Now please excuse me while I play a song of sympathy for you on the worlds smallest violin

No it isn’t. Nanite is one small element of the rendering problem, dealing with level of detail. That’s it. And its entirely optional. Poly counts are only going to continue to increase over time. With photogrammetry assets they are already hitting millions of polys per mesh. Do you really think its it feasible to be packaging hundreds of millions of LODs worth of data along with games in the future? Of course not.

Did I say that? I said this problem needs to be solved, just not at the players massive computations expense. Like a better LOD algo and streaming logic? That would be a BETTER investment than the crap they are working on now.

Games scenes don’t NEED million poly meshes and performance it adds is just as much as GI. It’s literally that expensive. Nanite doesn’t do ANYTHING that revolutionary other than save dev time becuase all other workflows are so slow and poorly polished.

It’s a STUPID waste of ms budgeting.
And showing that is the point of this thread, not being utterly complacent.

EDIT: Your acting like we have just began using photogrammetry within the past 3 years, when they have been in games for 9. It’s called creating better textures and base LODs that illustrate and represent something bare minimum. If I have a mailbox, I fine with not going right up to it to inspect it’s microscopic triangle represented paint bumps.

Besides the fact all that detail is completely gone when you moving with an upscaler turned on becuase performance is so bad on POWERFUL hardware.

initially nanite has an extra performance hit, however it is basically infinitely scalable to any hardware it supports. On my games low end hardware users saw significant improvements with nanite enabled.

There is a lot more to performance than just “oh look at my fps counter I got 120 before and now I get 90”.

A great example is grass, without nanite you are limited to how dense it can be before fps starts tanking exponentially, with nanite you can spawn as many grass models as you wish without any change to the FPS. this applies to any model in the level, nanite will never drop below its initial hit which is the exact opposite of normal rendering. if you have already optimized your level to a T and have it perfect across all hardware targets then keep nanite off, if you are wanting to make the level better/bigger and are okay with losing 20-30fps initially then turn it on.

Another benefit of nanite is it removes the need for culling, and far distance meshes dont need things like billboards which can lack shadows so you can have infinite detail with no fps loss.

1 Like

Games scenes don’t NEED million poly meshes

Who are you to decide that? Nanite isn’t just about optimizing poly count on a per mesh basis. Its also for optimizing the entire screens poly count to ensure it maximizes your pixel resolution. If a game has a very complicated mesh with both macro detail and micro detail, why shouldn’t I make it 1 million polys? Thats what good game engines do: They give you the choice. They provide the freedom to make your game how you want it. Its still up to you to make those decisions and trade offs.

Like a better LOD algo and streaming logic?

Ya? like what? whatever LOD algorithm you come up with is still going to require storing an increasing number of LOD meshes. And this data will only ever increase as hardware increases. You either calculate them offline, or at runtime. There are pros and cons to both.

1 Like

I investigated this issue with Nanite Landscape in my game, conclusion: The Nanite visbuffer gets overloaded by the landscape which is most likely overlapping too many meshes which it now has to calculate EVERY frame.