Bro, of all the people of the internet making videos about landscape in unreal 5, your the only guy I see that has performance stat enabled. special kudos for that!
I remember i was thrilled wen you had released the plugin for the shadows. Nice to see that this is fixed by epic now. Thanks for keeping us updated dude keep up the good work
@@SabreDartStudiosOne more thing: in UE 5.3, Nanite is now also implemented into the landscape too, giving better performance for this engine version's upcoming games. As the result, the future of 3D gaming will be more polished than before plus those AAA/high-quality games of UE5.3 runs even on low-end platforms/devices like Nintendo Switch, low-end phones/PCs, etc
Really amazing. I think this will make huge strides in the beauty and aesthetic of foliage int he distance in games. I hope to capitalize on this myself. I cannot wait until we have very very robust nanite terrain. The granularity is to die for.
still something wrong far away and very close is good performance, but middle camera fps drop by half, could you make some video how optimize this stupid nanite?
In 5.2 you could already avoid the shadow invalidation by tweaking the World Position Offset Distance in the details panel of the static meshes or the foliage types.
I thought that initially as well, but that wasn't true. That setting helped you tune at what distance World Position Offset would be disabled. Which isn't the solution we needed. If you set that value to 1 it would basically just disable World Position Offset which is NOT what we wanted. We wanted to be able to see the trees moving in the wind, but just not have the shadows move with them. If you set the World Position Offset to a larger value so that trees in the distance wouldn't move, but trees up close would, then you still got terrible performance in dense forests because the trees in the distance were not the ones causing the performance issues. The trees directly over top of you were the problem. This is why Epic had to add the new setting "Shadow Cache Invalidation Behavior".
Sadly the setting has a lot of visual artifacts, as the shadow is still using the world-position offset, but it just isn't recalculated every frame, but if one part of the shadow is updated without the rest of the tree the artifacts are clearly visible and the updating of the shadows is super visible
My team is in the process of researching substrate right now. If we find anything interesting I will do a video. Not familiar with texture bombing it, but will mention it to my team.
@@SabreDartStudios I also want to learn how to do run time virtual texture on static mesh, as I want to use static mesh as terrain that I scupted and modifyied in Blender and bring to Unreal to use with Nanite. Thanks a lot!
Constant engine crashes, GPU shutdowns on my 4080 and massive performance loss. Hopefully it is just a Preview 1 issue. I will do a video if I find anything interesting.
While you could enable Nanite Landscape in 5.1, it was missing a ton of features and had very limited support. As of 5.3 it is supposed to have parity with non-Nanite landscape. The initial testing hasn't been going well for me though :(
The issue with this though is setting it to static or rigid causes you to lose the dynamic shadow casting. So if you are using materials that have wind, the leaves and everything will move but the shadows will not. If you don't care about that or don't have wind, then this solution works. But for me, where the dynamic shadows are part of the reason to use the tree assets, this solution does not help.
With UE 5.3, we now have the tools to be able to manage our shadows and shadow budget. One of the things we noticed is that in a dense forest where shadow costs are the highest, there are so many overlapping shadows, that you can't even see when the shadows move with the wind. The only time you can tell if a show is moving is if there is some amount of light adjacent to the shadows. This usually happens on the edge of a dense forest not in the forest itself. So what you can do is set the trees on the perimeter of the forest to have moving shadows, but the trees on the interior of the forest to not have moving shadows. This gives you massive performance savings for almost no change in visual quality. And both the perimeter and interior trees move in the wind, which is what is most noticeable.
So in terms of this solution, basically the best you can get is either having all trees have static shadows but also have WPO (and subsequently increase performance), or you have to take the FPS hit from having animated shadows within X distance of the player (and not allowing the VSMs to cache) with the WPO culling distance setting, but basically having to remove WPO from all distant trees. Man, wish there was a solution that allowed both animated shadows, and WPO out to distances past like 10000 units without murdering performance. Oh well.
So they gave us the tools to have full control over each part separately, which allows us to dial in exactly what we want. In the end I think it will come down to your specific map. Our testing shows that allowing animated shadows in sparely populated forests doesn't have nearly the performance hit that a densely populated forest has. The cost appears to be relative to the screen space that is covered by shadows and the number of overlapping shadows. In our specific use case we are working on a densely populated forest where 80% of the screen will be covered in shadows and multiple overlapping shadows per pixel. In this case, animated shadows kills performance, but there is a plus. If overlapping shadows are covering 80% of the screen, then you can't really tell if shadows are animating or not. Animated shadows are most noticeable in sparsely populated areas where there is a mixture of light and shadows. And in this case, the performance hit is much lower. So the ultimate solution may be to tune the animated shadows per tree. Have trees in densely populated areas be set to not animated shadows and trees in sparsely populated areas set to animate shadows. This goes back to a technique I used in UE4 for tree billboards. I set the ring on the outside of the forest to billboard at a longer distance than trees on the inside of the forest. We can likely use the same trick here and set the outside ring of the forest to animate shadows and the trees inside that ring to not animate shadows. This will give us high performance with almost no noticeable impact.
You can already do this. I show it in the video, but I didn't mention it as it is a feature from 5.2. It is the part of the video where I adjust the "World Position Offset Disable Distance" setting on the Foliage Type and then only the trees near the camera have the blue VSM cache invalidation. Now keep in mind that the shadows close to you cost a lot more than the shadows in the distance, so setting "World Position Offset Disable Distance" usually doesn't give you much of a performance gain.
@@SabreDartStudios Does that outright disable WPO or just for the shadow cache? Cause ideally then you could just set the distance really low so you maintain high fidelity animated shadows but only where they really matter, right in front of you.
"World Position Offset Disable Distance" completely disables WPO. This is meant for foliage in the distance that wouldn't be noticeable if it moved in the wind. The problem is that WPO shadows in the distance don't cost much. The most expensive shadows are the ones right over top you (assuming a fairly dense forest). The good news is that dense forests don't have noticeable shadow movement anyways. Since you can't see shadows when there isn't any light. One of the things I may do a future video on is a technique I used in UE4, where the edge row of trees in a group of trees is higher quality than the trees inside the group as they are less noticeable. This technique might be useful here to turn on animated shadows on the edge row that borders the light, but not on the inner trees that don't border the light.
nanite is not optimized for game. You have 78 fps in editor mode and you dont use full screen mode. If you use full screen mode in editor, you will see maximum 50 fps in nanite mode. and the game is not just about characters. With the addition of characters, the addition of landscape textures, the addition of props and structures, the addition of vfxs and animations, the fps in the game will drop below 10. In summary, when you can get over 250 fps using nanite, only then nanite is suitable for games.
I understand what you are talking about with performance, but it is a bit more nuanced than that. Too complicated to go through in a RUclips comment, but I will start working on a video to go through it in more detail.
This is not true buddy. Nanite performs great, the problem is people are using it wrong and theres not much documentation on how to properly use it for foliage. I don't want to gatekeep but its hard to explain in a youtube comment like sabre already said. But in a nutshell you can have 1.3mln Poly trees all around the map and still 70 FPS in WQHD. Like really dense vegetation. But most studios are too dumb to do just the slightest research, thats why so many UE5 games run bad. All you have to do is model your fucking trees actually yourself instead of using Speedtree or using assets. The Concept of using Alpha Masks is the problem. Nanite gets rid of geometry bottlenecks but people are too stubborn to understand that alpha maps are not geometry and cause overdraw. Im talking about this since months in the UE community and people just don't want to listen... model trees or vegetation like a hard object. Like a gun, a house, props etc. Everyone is using Alpha Masks or Leafcards and then suddenly says the performance is bad with nanite. People are just either too stubborn or too lazy to understand a high performance nanite tree needs to be fully modeled out. EACH individual leaf needs to be geometry. No ALPHA like in Speedtree or how 99% of the 3D modeling tutorials show. If people don't believe me i tell them to use the Megascans European Bornholm Trees from June '23. Those are 1.6-4.8 mln. Poly trees, you can spam your map with it and still have fluid framerates because they are the only assets that use low amounts of alpha mask, if you would completely get rid of alpha the performance would be better. Those Bornholm trees have better performance than a 30k low poly tree with nanite off. Place 50 of those low polys and you have 40% less performance than with the proper nanite trees.
So basically in a current world of 60 fps minimum for a game to be viewed as not broken, all this new stuff they make is still unusable in game development on a serious matter
If you are targeting the majority of current devices, then yes. If you are only targeting high end devices, then Nanite+Lumen+VSM can work. I think UE5 is a forward looking game engine. If you start a game project now, by the time you release it in 2 or 3 years, then there will be a much larger pool of devices that can run it.
Nice to see that UE is making progress towards vast open worlds. Looking forward to the next HubWorld video.
Yeah, it is great to see the progress UE5 is making for large open worlds. It's a great time to be a game developer!
Bro, of all the people of the internet making videos about landscape in unreal 5, your the only guy I see that has performance stat enabled. special kudos for that!
Watched your video about this a few weeks ago. Great to see they have a solution for it now!
I remember i was thrilled wen you had released the plugin for the shadows. Nice to see that this is fixed by epic now. Thanks for keeping us updated dude keep up the good work
Thanks!
@@SabreDartStudiosOne more thing: in UE 5.3, Nanite is now also implemented into the landscape too, giving better performance for this engine version's upcoming games. As the result, the future of 3D gaming will be more polished than before plus those AAA/high-quality games of UE5.3 runs even on low-end platforms/devices like Nintendo Switch, low-end phones/PCs, etc
Really amazing. I think this will make huge strides in the beauty and aesthetic of foliage int he distance in games. I hope to capitalize on this myself.
I cannot wait until we have very very robust nanite terrain. The granularity is to die for.
Thank god they finally got around to making it usable with foliage. Thanks for the video dart!
"Usable"
Awesome, thanks! Got a bit frustrated with nanite foliage , but this tip saved my ass.
Exactly what i was looking for yesterday, all Day! I'll go check it out later today!
Yep. Works like a charme. Rigid Should be a standard setting
still something wrong far away and very close is good performance, but middle camera fps drop by half, could you make some video how optimize this stupid nanite?
Nice imposter fix. What about procedurally spawned without using the built-in foliage tool?
Awesome breakdown dude
Thanks!
LIFE SAVER INFORMATION!!!! EXTREME THANKS :D
Glad it was helpful!
Any news about Nanite Landscape will be amazing.
In 5.2 you could already avoid the shadow invalidation by tweaking the World Position Offset Distance in the details panel of the static meshes or the foliage types.
I thought that initially as well, but that wasn't true. That setting helped you tune at what distance World Position Offset would be disabled. Which isn't the solution we needed. If you set that value to 1 it would basically just disable World Position Offset which is NOT what we wanted. We wanted to be able to see the trees moving in the wind, but just not have the shadows move with them. If you set the World Position Offset to a larger value so that trees in the distance wouldn't move, but trees up close would, then you still got terrible performance in dense forests because the trees in the distance were not the ones causing the performance issues. The trees directly over top of you were the problem. This is why Epic had to add the new setting "Shadow Cache Invalidation Behavior".
Sadly the setting has a lot of visual artifacts, as the shadow is still using the world-position offset, but it just isn't recalculated every frame, but if one part of the shadow is updated without the rest of the tree the artifacts are clearly visible and the updating of the shadows is super visible
When paper figures out how sans burned the water.
great videos, great channel! +1 subs :)
Thanks!
can you share how to setup texture bombing in substrate?
My team is in the process of researching substrate right now. If we find anything interesting I will do a video. Not familiar with texture bombing it, but will mention it to my team.
@@SabreDartStudios I also want to learn how to do run time virtual texture on static mesh, as I want to use static mesh as terrain that I scupted and modifyied in Blender and bring to Unreal to use with Nanite. Thanks a lot!
I remember I just turned off world position offset or something like that and it boosted the FPS. (5.1)
Yeah, in 5.1 we did the same initially, but it was sad having trees that didn't move in the wind. It made our world seem lifeless.
damn this is the best possible news to wake up to, thanks for the video!
also, what's the current issue with nanite landscape?
Constant engine crashes, GPU shutdowns on my 4080 and massive performance loss. Hopefully it is just a Preview 1 issue. I will do a video if I find anything interesting.
@@SabreDartStudios thanks! thought i'm not sure if i understand what's new with landscape nanite, wasn't that something that shipped with 5.1?
While you could enable Nanite Landscape in 5.1, it was missing a ton of features and had very limited support. As of 5.3 it is supposed to have parity with non-Nanite landscape. The initial testing hasn't been going well for me though :(
@@SabreDartStudios I'm having none of those issues with Nanite landscapes! They work perfectly.
@@SabreDartStudiosSame here (5.3 release), sometimes it crashes sometimes it's working. hmm, not sure what to do...any update on your end?
The issue with this though is setting it to static or rigid causes you to lose the dynamic shadow casting. So if you are using materials that have wind, the leaves and everything will move but the shadows will not. If you don't care about that or don't have wind, then this solution works. But for me, where the dynamic shadows are part of the reason to use the tree assets, this solution does not help.
With UE 5.3, we now have the tools to be able to manage our shadows and shadow budget. One of the things we noticed is that in a dense forest where shadow costs are the highest, there are so many overlapping shadows, that you can't even see when the shadows move with the wind. The only time you can tell if a show is moving is if there is some amount of light adjacent to the shadows. This usually happens on the edge of a dense forest not in the forest itself. So what you can do is set the trees on the perimeter of the forest to have moving shadows, but the trees on the interior of the forest to not have moving shadows. This gives you massive performance savings for almost no change in visual quality. And both the perimeter and interior trees move in the wind, which is what is most noticeable.
So in terms of this solution, basically the best you can get is either having all trees have static shadows but also have WPO (and subsequently increase performance), or you have to take the FPS hit from having animated shadows within X distance of the player (and not allowing the VSMs to cache) with the WPO culling distance setting, but basically having to remove WPO from all distant trees.
Man, wish there was a solution that allowed both animated shadows, and WPO out to distances past like 10000 units without murdering performance. Oh well.
So they gave us the tools to have full control over each part separately, which allows us to dial in exactly what we want. In the end I think it will come down to your specific map. Our testing shows that allowing animated shadows in sparely populated forests doesn't have nearly the performance hit that a densely populated forest has. The cost appears to be relative to the screen space that is covered by shadows and the number of overlapping shadows. In our specific use case we are working on a densely populated forest where 80% of the screen will be covered in shadows and multiple overlapping shadows per pixel. In this case, animated shadows kills performance, but there is a plus. If overlapping shadows are covering 80% of the screen, then you can't really tell if shadows are animating or not. Animated shadows are most noticeable in sparsely populated areas where there is a mixture of light and shadows. And in this case, the performance hit is much lower. So the ultimate solution may be to tune the animated shadows per tree. Have trees in densely populated areas be set to not animated shadows and trees in sparsely populated areas set to animate shadows. This goes back to a technique I used in UE4 for tree billboards. I set the ring on the outside of the forest to billboard at a longer distance than trees on the inside of the forest. We can likely use the same trick here and set the outside ring of the forest to animate shadows and the trees inside that ring to not animate shadows. This will give us high performance with almost no noticeable impact.
@@SabreDartStudios This makes perfect sense. Epic Games simply made it 10X easier for devs to optimize with these new tools
Can wait for series about multi, you also show how use dedicate server?
Yes, I do persistent world multiplayer (MMO) tutorials. Here is the series we are working on right now: ruclips.net/video/fB_n3jJjF9A/видео.html
have you tested it with 5.4 yet?
I installed 5.4 Preview 1 the other day, but have not had a chance to test it.
Distance based implementation could be nice where nearby trees have dynamic shadows
Yes. I also would tell that this would be the best, only few trees around me would have animated shadow, all other will be static.
You can already do this. I show it in the video, but I didn't mention it as it is a feature from 5.2. It is the part of the video where I adjust the "World Position Offset Disable Distance" setting on the Foliage Type and then only the trees near the camera have the blue VSM cache invalidation. Now keep in mind that the shadows close to you cost a lot more than the shadows in the distance, so setting "World Position Offset Disable Distance" usually doesn't give you much of a performance gain.
@@SabreDartStudios Does that outright disable WPO or just for the shadow cache? Cause ideally then you could just set the distance really low so you maintain high fidelity animated shadows but only where they really matter, right in front of you.
"World Position Offset Disable Distance" completely disables WPO. This is meant for foliage in the distance that wouldn't be noticeable if it moved in the wind. The problem is that WPO shadows in the distance don't cost much. The most expensive shadows are the ones right over top you (assuming a fairly dense forest). The good news is that dense forests don't have noticeable shadow movement anyways. Since you can't see shadows when there isn't any light. One of the things I may do a future video on is a technique I used in UE4, where the edge row of trees in a group of trees is higher quality than the trees inside the group as they are less noticeable. This technique might be useful here to turn on animated shadows on the edge row that borders the light, but not on the inner trees that don't border the light.
@@SabreDartStudiosplease show this I’m trying to optimize a dense forest for my game any technique would be awesome!
nanite is not optimized for game. You have 78 fps in editor mode and you dont use full screen mode. If you use full screen mode in editor, you will see maximum 50 fps in nanite mode. and the game is not just about characters. With the addition of characters, the addition of landscape textures, the addition of props and structures, the addition of vfxs and animations, the fps in the game will drop below 10. In summary, when you can get over 250 fps using nanite, only then nanite is suitable for games.
I understand what you are talking about with performance, but it is a bit more nuanced than that. Too complicated to go through in a RUclips comment, but I will start working on a video to go through it in more detail.
This is not true buddy. Nanite performs great, the problem is people are using it wrong and theres not much documentation on how to properly use it for foliage. I don't want to gatekeep but its hard to explain in a youtube comment like sabre already said. But in a nutshell you can have 1.3mln Poly trees all around the map and still 70 FPS in WQHD. Like really dense vegetation. But most studios are too dumb to do just the slightest research, thats why so many UE5 games run bad. All you have to do is model your fucking trees actually yourself instead of using Speedtree or using assets. The Concept of using Alpha Masks is the problem. Nanite gets rid of geometry bottlenecks but people are too stubborn to understand that alpha maps are not geometry and cause overdraw. Im talking about this since months in the UE community and people just don't want to listen... model trees or vegetation like a hard object. Like a gun, a house, props etc. Everyone is using Alpha Masks or Leafcards and then suddenly says the performance is bad with nanite. People are just either too stubborn or too lazy to understand a high performance nanite tree needs to be fully modeled out. EACH individual leaf needs to be geometry. No ALPHA like in Speedtree or how 99% of the 3D modeling tutorials show. If people don't believe me i tell them to use the Megascans European Bornholm Trees from June '23. Those are 1.6-4.8 mln. Poly trees, you can spam your map with it and still have fluid framerates because they are the only assets that use low amounts of alpha mask, if you would completely get rid of alpha the performance would be better. Those Bornholm trees have better performance than a 30k low poly tree with nanite off. Place 50 of those low polys and you have 40% less performance than with the proper nanite trees.
So basically in a current world of 60 fps minimum for a game to be viewed as not broken, all this new stuff they make is still unusable in game development on a serious matter
If you are targeting the majority of current devices, then yes. If you are only targeting high end devices, then Nanite+Lumen+VSM can work. I think UE5 is a forward looking game engine. If you start a game project now, by the time you release it in 2 or 3 years, then there will be a much larger pool of devices that can run it.
If you have problems with Foliage and Nanite going “crazy in the Z axis” i explain how to fix it with ease.
ruclips.net/video/wVMImHI24QI/видео.html