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

Do you mind sharing the console commands you are using? :slight_smile: This will probably help a lot of people!
@kurylo3d

Personally i can recommend:

r.Shadow.Virtual.ResolutionLodBiasDirectional = -0.5
Every time you increase the number by 1.0 it will half the shadow resolution for VSM.
Default is -1.5, but that is a 16k shadow map. If you don’t need pixel perfect shadows, this is the best way to increase performance.
There are also variances for different light types:
r.Shadow.Virtual.ResolutionLodBiasDirectionalMoving
r.Shadow.Virtual.ResolutionLodBiasLocal
r.Shadow.Virtual.ResolutionLodBiasLocalMoving

Using WPO will lead to a lot of cache invalidations and therefore worse performance.
You can set the “Shadow Cache Invalidation Behavior” for each individual mesh under Lightning->Advances->Shadow Cache Invalidation Behavior set it to Rigid. This will disable invalidations from WPO.

In addition you can use r.Shadow.Virtual.Cache.MaxMaterialPositionInvalidationRange, which will set a max range in cm, after which the WPO will not affect VSM Invalidations.

Then i do recommend
r.Nanite.ViewMeshLODBias.Offset = 2
This might reintroduce mesh popping AND will lead to more overdraw, as the clusters will be bigger.
BUT as multiple people already pointed out, nanite is not perfect, and if you have a lot of sub pixel triangles, you can increase your performance quite a bit.
Ofc this depends on your project and mesh density, play around with the value and see if it has any effect.

Had a few more, that i used for my latest project but can’t remember. Will put them here when i get to it.

5 Likes