Can't thank you enough for putting this together. I've spent hours and hours trying to figure out why my performance on even the simplest of scenes is so bad. It's crazy that Epic basically gives you the worst possible performance settings as the default and then buries all of the important features under mountains of config.
Thank you! I was trying figure out why I was going from 100 to 30fps. My landscape auto material brings to 72. Then the tessellation would bring me to the 40s add in trees and grass... Im sitting in the 30s or even as low as 28 in dense forests. This is am excellent video to pop up the next day to follow up and help with with figuring out my performance.
Great video and really nice looking forest! Just a tip regarding shadows on grass and other small foliage/assets for those who are not aware of it. Try using contact shadows instead of dynamic shadows. It is enabled per default on meshes, but the contact shadow length on directional lights are set to 0.0 per default. (I usually set it to 0.1 or 0.2)
Great job! Scalability High targets 60FPS, Epic 30FPS on consoles. So using High as a basis is the best choice for hitting 60FPS, regardless of platform. Lumen Global Tracing uses the Global Mesh Distance Field, while the Detail Tracing also traces against per-mesh Distance Fields. For more complex mesh shapes, it can make a big difference. The Nanite landscape splitting you were seeing was a bug in 5.4. It is fixed in UE5-main, no idea if it made it into 5.4.4 as well.
Oh! Now I get it which graphic type I had to choose (whether be Epic or High); so I'll choose High graphic instead of Epic since my future UE5.5 indie game's art direction will be inspired by Smash Ultimate's cinematics instead of photorealistic
I think this video covers everything really well. I did some tests with Nanite Foliage with modelled leaves, and performance is gained when you have 300-400 trees on screen. These modelled leaves are using unmasked materials, each tree was about 200K triangles. This optimization is quite a small gain though, a non masked nanite forest would perhaps net you something in the +5fps range for that number of trees.
Thank you for sharing! I played around recently with modelling grass with no opacity mask (the exact same shape) and didn’t see much improvement (although the overdraw was significantly better). One thing I noticed is that it looked different - it’s as if the grass at a distance wasn’t as dense. I would have never noticed it if I didn’t see how the old grass looked. It’s very minor and I guess shows what Nanite does to small objects behind the scenes
this video is amazing. thank you so much for this. i went from 18fps to 70 lmao.. its amazing. sidenote: i started converting textures. texture by texture. after some time i replayed your video to see that you can select multiple textures :D fml
Hi, very nice video, thank you really for those amazing tips, i wanted to know , how do we do the that: 3) Don't update the lighting every frame if you have a day and night cycle ?
thanks, since my 32GB RAM wasn't enough, I used a 500GB SSD empty hard drive for virtual memory so that I can activate Nanite, that's how it worked for me 😁
Thanks for sharing! I see you are using oceanology as well. Why not Sky Creator instead of UDS? I have both and I was wondering if SC is more optimized than UDS and results to better better fps.
This is what turns me of making big amazing looking projects. Is that I'm working with heater for the day, and I feel like it's not doing good for my pc for the long run. Do you think the water body plugin has much of an impact on fps? I notice that it gets my gpu fan running when I drop one in. Thank you for the video.
Water plug-in is super expensive in-editor because it creates a whole bunch of rendertargets that it's writing to, but once packaged those textures get saved out and the performance hit isn't as large.
@@GreenleafVision FOUND IT! It is r.Shadow.Virtual.Clipmap.LastLevel It goes up to 22, so try setting it to 17-20 depending on your project. Let me know if it improves the performance) The documentation for VSM also mentions this command in case you need more info.
Hmm, i have a couple of issue since following this video and changing the project settings. My fps has gone down from 40fps on cinematic settings to 14fps on high settings and i now have a constant message popping up telling me the change the virtual texture pool from transient pools to fixed pools. and no matter what i do the trees in the distance loose all their leaves even though i set it to preserve area. im using world partition by the way
May i know why you are specifically using Cinematic settings mode? It is not intended for games. Even 4090/4080 will struggle when using cinematic settings.Try using Epic settings.
Hey buddy, I think I've noticed a problem here. It should be the same for you, I think I could see it at some parts of your video. The problem is that the shadows do funky stuff when you get up close to them, this is especially notable when you walk through the scene with a character. Only the very closest shadows are displayed properly, those that are like 5 meters away from you look much different than those that are right below you. When walking through the shadows you can kinda see the zones around you and the shadow updating in a very unclean way, also you can very clearly see the tiles in which the shadow map is generated (I think that is what you see? I'm not sure), resulting in some sort of different, sharp "loading zones" around the player. You can see those "loading zones" when you turn on the view "virtual shadowmaps -> cached page" in the editor (instead of lit/unlit or whatever) very clearly. The problem doesn't occur when you disable the World Position Offset of the master material of those trees or whatever is causing the issue. So the movement of the leaves and stuff seems to play a role in this? I've followed tons of ChatGPTs suggestions and tried many other things to fix this, but nothing seems to work. Do you have a fix for this? Help would be greatly appreciated! Edit: I've uploaded a video of this problem here: imgur.com/a/PlJuPZv Edit2: The issue also doesn't appear when you select "Auto" or "Always" for the "Shadow Cache invalidation Behavior". "Always" seems to be slightly more performance friendly than "Auto", but I guess the idea here was to avoid both of those options.
Hey! Thats a weird issue. I think mine is not as obvious as yours and when the trees are moving - pages update correctly. Not sure what this is caused by but try looking into increasing VSM pages pool size and texture pool size. If that doesn't help try disabling nanite, lumen and virtual shadow maps to see which one breaks it. Also try different trees from quixel in a new project.
Can't thank you enough for putting this together. I've spent hours and hours trying to figure out why my performance on even the simplest of scenes is so bad. It's crazy that Epic basically gives you the worst possible performance settings as the default and then buries all of the important features under mountains of config.
Great video with a lot of useful tips.
Crossing my fingers that Epic finds a way to limit overdraw on Nanite foliage...
That would be great
Thank you! I was trying figure out why I was going from 100 to 30fps. My landscape auto material brings to 72. Then the tessellation would bring me to the 40s add in trees and grass... Im sitting in the 30s or even as low as 28 in dense forests. This is am excellent video to pop up the next day to follow up and help with with figuring out my performance.
I like how you explain things, you introduce change and problems that come along with their solution
Great video and really nice looking forest!
Just a tip regarding shadows on grass and other small foliage/assets for those who are not aware of it.
Try using contact shadows instead of dynamic shadows. It is enabled per default on meshes, but the contact shadow length on directional lights are set to 0.0 per default. (I usually set it to 0.1 or 0.2)
Holy moley, I’ve been trying to make distant foliage not drop its shadows for months. Thanks dude
Great job!
Scalability High targets 60FPS, Epic 30FPS on consoles.
So using High as a basis is the best choice for hitting 60FPS, regardless of platform.
Lumen Global Tracing uses the Global Mesh Distance Field, while the Detail Tracing also traces against per-mesh Distance Fields.
For more complex mesh shapes, it can make a big difference.
The Nanite landscape splitting you were seeing was a bug in 5.4. It is fixed in UE5-main, no idea if it made it into 5.4.4 as well.
Oh! Now I get it which graphic type I had to choose (whether be Epic or High); so I'll choose High graphic instead of Epic since my future UE5.5 indie game's art direction will be inspired by Smash Ultimate's cinematics instead of photorealistic
I think this video covers everything really well. I did some tests with Nanite Foliage with modelled leaves, and performance is gained when you have 300-400 trees on screen. These modelled leaves are using unmasked materials, each tree was about 200K triangles. This optimization is quite a small gain though, a non masked nanite forest would perhaps net you something in the +5fps range for that number of trees.
Thank you for sharing! I played around recently with modelling grass with no opacity mask (the exact same shape) and didn’t see much improvement (although the overdraw was significantly better). One thing I noticed is that it looked different - it’s as if the grass at a distance wasn’t as dense. I would have never noticed it if I didn’t see how the old grass looked. It’s very minor and I guess shows what Nanite does to small objects behind the scenes
Great way of explaining! Good stuff!
this video is amazing. thank you so much for this. i went from 18fps to 70 lmao.. its amazing. sidenote: i started converting textures. texture by texture. after some time i replayed your video to see that you can select multiple textures :D fml
Nooooooo fml haha
Hi, very nice video, thank you really for those amazing tips, i wanted to know , how do we do the that: 3) Don't update the lighting every frame if you have a day and night cycle ?
Thank you for this video, Ive learned few things! Whats the command to increase raytraced shadow distance ?
Thank you so much, the video is great, just what I needed. You saved me, new subscriber, keep it up.
thanks, since my 32GB RAM wasn't enough, I used a 500GB SSD empty hard drive for virtual memory so that I can activate Nanite, that's how it worked for me 😁
Отличный гайд, давно искал эту информацию. Большое спасибо
Excellent video man. Thank you!
insanely helpful!
thank you, very informative, learned a lot!
Thanks for sharing! I see you are using oceanology as well. Why not Sky Creator instead of UDS? I have both and I was wondering if SC is more optimized than UDS and results to better better fps.
wow, I'm glad I've found your channel! Please do more videos!
Amazing thank you for that!!
Thank you so much, very interesting video!!!
Thanks a lot for sharing!
You can turn off nanites and manually set LOD in a few minutes.
this, overdraw is an issue with nanite
Can you explain the new pool size system also?
I would only set the shadow cache invalidation behaviour to rigid for small foliage
Would you please consider making a tutorial on weather changes, specially snow?
awesome video
This is what turns me of making big amazing looking projects. Is that I'm working with heater for the day, and I feel like it's not doing good for my pc for the long run. Do you think the water body plugin has much of an impact on fps? I notice that it gets my gpu fan running when I drop one in. Thank you for the video.
Water plug-in is super expensive in-editor because it creates a whole bunch of rendertargets that it's writing to, but once packaged those textures get saved out and the performance hit isn't as large.
When u enable tessellation you need to make sure its properly set up in shader.
I know you mentioned you saw no perf gain from the virtual shadow map distance command, but I'm curious what the command was?
I'm also interested in this command?! Thx
Maybe it's 'r.RayTracing.Culling 0' but I'm not sure...
@@GreenleafVision FOUND IT! It is r.Shadow.Virtual.Clipmap.LastLevel It goes up to 22, so try setting it to 17-20 depending on your project. Let me know if it improves the performance) The documentation for VSM also mentions this command in case you need more info.
Great! Thanks :)
Are those speedtree trees?
Awesome! Any chance we could get a tutorial on the forest?
Thank you! I posted a follow up video showing how I made my forest
Sweet! Thanks bro! Rare to see all the optimization tips in one video. Very useful
Great video tho
Is that weather blueprint related to ultra dynamic sky?
Hey! It's my own blueprint that I use to control UDS/UDW, material parameters (for snow) and wind strength.
Hi! How did you do the ocean?
Hmm, i have a couple of issue since following this video and changing the project settings. My fps has gone down from 40fps on cinematic settings to 14fps on high settings and i now have a constant message popping up telling me the change the virtual texture pool from transient pools to fixed pools. and no matter what i do the trees in the distance loose all their leaves even though i set it to preserve area. im using world partition by the way
May i know why you are specifically using Cinematic settings mode? It is not intended for games. Even 4090/4080 will struggle when using cinematic settings.Try using Epic settings.
@@adarshwhynot epic settings was about the same. But I had to revert the changes I made from this video as it made my performance worse
How to add is disabling cast shadows on your landscape?
the weather BluePrint!! nice work!
Hey buddy, I think I've noticed a problem here. It should be the same for you, I think I could see it at some parts of your video. The problem is that the shadows do funky stuff when you get up close to them, this is especially notable when you walk through the scene with a character. Only the very closest shadows are displayed properly, those that are like 5 meters away from you look much different than those that are right below you. When walking through the shadows you can kinda see the zones around you and the shadow updating in a very unclean way, also you can very clearly see the tiles in which the shadow map is generated (I think that is what you see? I'm not sure), resulting in some sort of different, sharp "loading zones" around the player. You can see those "loading zones" when you turn on the view "virtual shadowmaps -> cached page" in the editor (instead of lit/unlit or whatever) very clearly.
The problem doesn't occur when you disable the World Position Offset of the master material of those trees or whatever is causing the issue. So the movement of the leaves and stuff seems to play a role in this?
I've followed tons of ChatGPTs suggestions and tried many other things to fix this, but nothing seems to work. Do you have a fix for this? Help would be greatly appreciated!
Edit: I've uploaded a video of this problem here: imgur.com/a/PlJuPZv
Edit2: The issue also doesn't appear when you select "Auto" or "Always" for the "Shadow Cache invalidation Behavior". "Always" seems to be slightly more performance friendly than "Auto", but I guess the idea here was to avoid both of those options.
Hey! Thats a weird issue. I think mine is not as obvious as yours and when the trees are moving - pages update correctly. Not sure what this is caused by but try looking into increasing VSM pages pool size and texture pool size. If that doesn't help try disabling nanite, lumen and virtual shadow maps to see which one breaks it. Also try different trees from quixel in a new project.
ty
LOL meanwhile without the crappy nanite technology, the same forest with LOD meshes would perform at 200fps! HAHAHA
Nanite landscape performs worse for most landscape. Don’t use it unless you want tesselation.
turn on hardware ray tracing lower my fps a lot ..
I'd bet a lot that the scene would run much much better with LODs/impostors/instancing...
Just disable Nanite and use LODs, then you have the best performance.
''Ran into problems with optimization''
Yeah using Nanite thinking its any good for video games. That's the trap...