Unreal Engine 5, [UE5 Developer Availability 2022-04-05]

@davis.anthony I think that guy is full of shit. Video is starting to make the rounds. I've already seen a whole bunch of debunking of that, but it's hard to collect all of it because it's scattered. From what I understand he's not a game developer and never has been. He's trying to crowd fund a company so he can make a game and "fix" geometry with ai.

I don't think he's completely full of it.

Modern hardware can handle so much geometry that if your game is running below a certain threshold, Nanite probably would end up being slower because of its extra over head with no visual gain in terms of geometry.

It's certainly got my brain thinking a little, is Nanite a little too extreme with geometry.

We also need a few more games that really push heavily on Mesh Shaders to compare, we only really have Alan Wake 2 in that regard and it's very geometrically dense. So how much would moving to Nanite add to Alan Wake 2's visuals?
 
I don't think he's completely full of it.

Modern hardware can handle so much geometry that if your game is running below a certain threshold, Nanite probably would end up being slower because of its extra over head with no visual gain in terms of geometry.

It's certainly got my brain thinking a little, is Nanite a little too extreme with geometry.

We also need a few more games that really push heavily on Mesh Shaders to compare, we only really have Alan Wake 2 in that regard and it's very geometrically dense. So how much would moving to Nanite add to Alan Wake 2's visuals?

Nanite isn’t just about blasting lots of triangles onto the screen. The LOD and compression systems are the real magic.

Have we really seen any games produce the same level of near field geometric detail as we’ve seen from Nanite? Alan Wake included.

The question is whether Nanite magic is even necessary. Maybe we have enough triangle crunching hardware to brute force it for primary visibility. GI and shadows and reflections aren’t using Nanite level LODs anyway.
 
Nanite isn’t just about blasting lots of triangles onto the screen. The LOD and compression systems are the real magic.

But arguably aren't required for what we currently have in games.

Have we really seen any games produce the same level of near field geometric detail as we’ve seen from Nanite? Alan Wake included.

Alan Wake 2 is it from what I know of, and a side form the rare visible LOD transition in the first forest area of the game it's a pretty flawless showing in terms of geometry. The game is a very good demo of what mesh shaders can actually do.

I'm just surprised we've not seen more games using them.

The question is whether Nanite magic is even necessary.

I don't think it is, not with the quality of assets games currently have.

Maybe by the time next generation rolls around they might be at the point where a system like Nanite is required.
 
@davis.anthony Pretty sure nanite falls back to mesh shaders on large triangles. I also kind of question why nanite would be slower in the case that there is a large amount of geometry. It's meant to optimize the case where triangles are small and pixel coverage is poor. Basically optimizing towards one triangle per pixel with continuous LOD.

I posted some comparisons a while back, but in a game like Fortnite you see a large performance hit with nanite on but there is no way to make an equivalent comparison with non-nanite rendering. Basically LOD0 in non-nanite is massively simplified compared to the nanite meshes. There is no version of apples to apples when comparing performance. The below shot is comparing the same two trees with nanite on and off. The leaves are different, the branches, the trunk and the bark are all different. Plus when nanite is off you get way more visible LOD changes and pop-in.

1725046449140.jpeg

Now we see the amount of geometry in some basic world objects. I didn't line up distances well here, but basically the spherical object stays a sphere even up close, but in non-nanite it is never a smooth curve.
1725046468314.jpeg

Plus there is a large amount of nanite displacement geometry all over the world that doesn't exist in the nanite off case.
1725046477778.jpeg

Not to mention, any case where you're comparing with shadows enabled is going to be very different, because nanite will use VSMs and nanite off will not. So you have very different results in terms of shadow sharpness, shadow pop-in which I think favour VSMs pretty easily.

If you go game to game you have different engine versions with different performance characteristics based on how much of your world mesh is based on nanite meshes. Some games have nanite terrain (some were even kitbashing terrain for nanite), some don't. Some games have nanite vegetation, some don't. Fornite might be the only game with nanite character meshes, but there's no way to know if that engine feature is in or not because it's being developed in 5.5.

So yah, you have find contrived comparisons that can make performance good or bad, depending on the scene. Making a really good comparison would be difficult. You'd need realistic asset sizes for a deployed game. You need hand-crafted LODs for the non-nanite version. You'd need LOD0 to at least be as detailed as the nanite mesh to make it sort of equal. You'd probably need any shadows, gi disabled to really isolate the performance of just the geometry system and material shading. Then you could look at the implications of what nanite guides you into, in terms of shadows, gi that work well with nanite and without nanite to see what the pros and cons are. It's a lot. The comparisons I see don't really do that. They just take fortnite and set the game to Epic and toggle nanite on off and look at the number. That or they compare vastly different games and just go by gut feeling of what does and doesn't feel like a high enough fps.

I'm sure there are poor quality implementations of nanite. Maybe assets that are not of high enough quality to get real benefit from it, or assets that are artistically ugly so the cost doesn't seem worth it. Or maybe the case where care wasn't taken so the meshes are actually just too detailed for reasonable pcs to handle, where you'd never see all of the detail up close enough anyway. I believe Hellblade 2 reduced the poly counts of their meshes in half, or something like that, because they could save memory and processing without a visual impact, because the camera would never be close enough in detail to see the finer detail anyway.

Also mesh shaders is an API and nanite is a whole software rasterizer with fallbacks. Not all use cases of mesh shaders will be created equal.
 
@davis.anthony Pretty sure nanite falls back to mesh shaders on large triangles.

Indeed it does, it's triangles larger than 6 pixels iirc.

I also kind of question why nanite would be slower in the case that there is a large amount of geometry.

Nanite has an overhead, and if your geometry isn't high enough to take full advantage of Nanite then it will be slower than other, more traditional methods.

Sebbi alluded to this in his replies to the video, where he said something that Nanite makes sense for assets that have millions of polygons, which we're not at that level (yet)

It's meant to optimize the case where triangles are small and pixel coverage is poor. Basically optimizing towards one triangle per pixel with continuous LOD.

But that still comes with an overhead, Mesh Shaders can have just as good LOD as Nanite.

As I previously said, if you were to convert Alan Wake 2's geometry to Nanaite, would it run faster than the Mesh Shaders the game currently uses?

Or is Alan Wake 2's geometry at such a level that it won't benefit from Nantie and the overheads associated with Nanite would actually make it perform slower than the Mesh Shades it's currently using.

This is what was suggested in that guys YouTube video, that in current games, the geometry isn't high enough for Nanite and that well designed traditional systems can actually be faster.

I posted some comparisons a while back, but in a game like Fortnite you see a large performance hit with nanite on but there is no way to make equivalent non-nanite rendering.

Do you feel that Mesh Shaders would not be able to handle the geometry level in Fortnite?
 
Sebbi alluded to this in his replies to the video, where he said something that Nanite makes sense for assets that have millions of polygons, which we're not at that level (yet)
I am going to post his comment here to continue the conversation.

Nanite’s software raster solves quad overdraw. The problem is that software raster doesn’t have HiZ culling.

Nanite must lean purely on cluster culling, and their clusters are over 100 triangles each. This results in significant overdraw to the V-buffer with kitbashed content (such as their own demos). But V-buffer is just a 64 bit triangle+instance ID. Overdraw doesn’t mean shading the pixel many times. While V-buffer is fast to write, it’s slow to resolve. Each pixel shader invocation needs to load the triangle and runs equivalent code to full vertex shader 3 times.

The material resolve pass also needs to calculate analytic derivatives and and material binning has complexities (which manifest in potential performance cliffs). It’s definitely possible to beat Nanite with traditional pipeline if your content doesn’t suffer much from overdraw or quad efficiency issues. And your have good batching techniques for everything you render.

However it’s worth noting that GPU-driven rendering doesn’t mandate V-buffer, SW rasterizer or deferred material system like Nanite does. Those techniques have advantages but they have big performance implications too. When I was working at Ubisoft (almost 10 years ago) we shipped several games with GPU-driven rendering (and virtual shadow mapping). Assassin’s Creed Unity with massive crowds in big city streets, Rainbox Six Siege with fully destructive environment, etc. These techniques were already usable on last gen consoles (1.8TFLOP/s GPU).

Nanite is quite heavy in comparison. But they are targeting single pixel triangles. We werent. I am glad that we are having this conversation. Also mesh shaders are a perfect fit for GPU-driven render pipeline. AFAIK Nanite is using mesh shaders (primitive shaders) on consoles at least. Unless they use SW raster today for big triangles too. It’s been long time since I analyzed Nanite for the last time (UE5 preview). Back then their PC version was using non-indexed geometry for big triangles, which is slow.

-Sebbi
 
Indeed it does, it's triangles larger than 6 pixels iirc.



Nanite has an overhead, and if your geometry isn't high enough to take full advantage of Nanite then it will be slower than other, more traditional methods.

Sebbi alluded to this in his replies to the video, where he said something that Nanite makes sense for assets that have millions of polygons, which we're not at that level (yet)



But that still comes with an overhead, Mesh Shaders can have just as good LOD as Nanite.

As I previously said, if you were to convert Alan Wake 2's geometry to Nanaite, would it run faster than the Mesh Shaders the game currently uses?

Or is Alan Wake 2's geometry at such a level that it won't benefit from Nantie and the overheads associated with Nanite would actually make it perform slower than the Mesh Shades it's currently using.

This is what was suggested in that guys YouTube video, that in current games, the geometry isn't high enough for Nanite and that well designed traditional systems can actually be faster.



Do you feel that Mesh Shaders would not be able to handle the geometry level in Fortnite?
Is this a certainty? Mesh shaders still hook into to the fixed function hardware for all the geometry, no? Curious to see if @Andrew Lauritzen provides his insight into this controversy.
 
This is a quote from Sebbi...

It’s definitely possible to beat Nanite with traditional pipeline if your content doesn’t suffer much from overdraw or quad efficiency issues. And your have good batching techniques for everything you render.

This is exactly what the guy in the video is trying to say. That with current geometry levels in modem games, Nanite is/might be slower than a well designed and implemented traditional method because the geometry levels in each asset simply isn't high enough to make Nanite and it's associated performance overhead worth it (yet)

So, did Nanite arrive a generation too early?
 
Indeed it does, it's triangles larger than 6 pixels iirc.



Nanite has an overhead, and if your geometry isn't high enough to take full advantage of Nanite then it will be slower than other, more traditional methods.

Sebbi alluded to this in his replies to the video, where he said something that Nanite makes sense for assets that have millions of polygons, which we're not at that level (yet)



But that still comes with an overhead, Mesh Shaders can have just as good LOD as Nanite.

As I previously said, if you were to convert Alan Wake 2's geometry to Nanaite, would it run faster than the Mesh Shaders the game currently uses?

Or is Alan Wake 2's geometry at such a level that it won't benefit from Nantie and the overheads associated with Nanite would actually make it perform slower than the Mesh Shades it's currently using.

This is what was suggested in that guys YouTube video, that in current games, the geometry isn't high enough for Nanite and that well designed traditional systems can actually be faster.



Do you feel that Mesh Shaders would not be able to handle the geometry level in Fortnite?

I don't really know how I can answer this. Can mesh shaders handle the geometry level in Fortnite ... I guess someone would have to make Fortnite with the equivalent of the Nanite meshes as LOD0 and then we could compare. I don't know why the LOD0 in Fortnite with nanite off is much lower quality. I don't know that it wouldn't be better in some scenes and worse in others. There isn't a full mesh shader based fallback if you turn Nanite off, because they've gone the route of nanite.

In terms of mesh shaders, they still output vertices for primitive assembly with fixed-function units, which means you'll have performance pitfalls based on pixel coverage, which is one issue Nanite tries to solve (beating the fixed function units in those cases). And if they can bypass the fixed-function units, then you're basically writing a software rasterizer, which means they'll have to think of all of the same cases that nanite is trying to deal with.

The guys youtube video he uses a snapshot of a scene from a game made in the mid 2010s or something. It's not even current-gen geometry. I don't know how anyone is making the determination that current games do not have the geometry detail to justify nanite. Our current geometry is partially defined by the fact that games have to work around performance pitfalls with the fixed-function units if pixel coverage is low. Is this a "if you build they will come" proposition for nanite? Nanite justifies itself because it allows for more geometry than current gen games? I don't really know, because apples to apples comparisons are incredibly hard. That's some developers need to do carefully. It's not easy to compare after the fact, because games are not likely to have equivalent. If you could make Alan Wake 2 just switch over to Nanite (impossible), would it be faster or slower ... who knows?
 
Absolutely not.

I don't think it's that simple, when you look at the levels of geometry games are currently pushing, and the performance cost of Nanite, it could be argued that Nanite has come a generation too early.

You need the tech first before artists dare to build assets that the tech can handle. There’s no such thing as too early in hardware and software capabilities.

This is the double edged sword to my comment above.
 
This is a quote from Sebbi...



This is exactly what the guy in the video is trying to say. That with current geometry levels in modem games, Nanite is/might be slower than a well designed and implemented traditional method because the geometry levels in each asset simply isn't high enough to make Nanite and it's associated performance overhead worth it (yet)

So, did Nanite arrive a generation too early?

It's more like he's saying if you design your game around the limitations of the fixed-function units in hardware, you can get really good performance and nanite may be slower in a game designed around those limitations. That seems a bit odd, because nanite is designed to have different tradeoffs.
 
I don't think it's that simple, when you look at the levels of geometry games are currently pushing, and the performance cost of Nanite, it could be argued that Nanite has come a generation too early.

I think the verdict’s still out. We haven’t seen a AAA game built with UE5 from the ground up. If Gears doesn’t impress then I’ll agree that UE5 didn’t deliver on its promise this generation.
 
Yes, continuous LOD is possible with Mesh Shaders.

This can be seen in Alan Wake 2.
But would mesh shaders perform as well as nanite with the level of geometry seen in something like Lumen in the land of nanite? That extreme level of detail when close up is the most visually impressive aspect of nanite. The continuous LOD is a much smaller benefit.
 
I don't know why the LOD0 in Fortnite with nanite off is much lower quality.

To sell Nanite? 👀

I don't know how anyone is making the determination that current games do not have the geometry detail to justify nanite.

Sebbi is certainly thinking along that lines.

Using Nanite has to make sense, and the performance cost of using Nanite has to be justified by beating a well set-up traditional system.

Which this video is arguing (and something Sebbi has backed up) is that currently, a well set up, traditional pipeline could actually perform better than Nanite on current geometry levels.

Here's a screenshot Remedy shared of Alan Wake 2's meshlets. Pretty dense in the old geometry department!

IMG_20240830_214239.jpg
 
Last edited:
But would mesh shaders perform as well as nanite with the level of geometry seen in something like Lumen in the land of nanite?

No, but that's a pretty irrelevant point as games aren't pushing anywhere close to that level of geometry and likely won't be until next gen arrives.

That extreme level of detail when close up is the most visually impressive aspect of nanite.

But I would argue that's more to do with the asset development side, rather than Nanite.

We've got games that don't use Nanite presenting extreme close up detail, arguably more detailed up close than games using Nanite.

Such as Horizon Forbidden West in places.

IMG_20240830_214941.jpg

The continuous LOD is a much smaller benefit.

I'm particularly sensitive to LOD transitions so to me, this is one of the biggest selling points of Nanite/Mesh Shaders.
 
Back
Top