Need some help with foliage optimization

So I’ve got this tropical island with about 2km[SUP]2[/SUP] covered in various foliage and I get pretty good looking results and terrible framerate - around 30fps at 1080p on GTX780.

Every mesh is instanced - grass done via landscape shader grass output, trees, bushes etc are painted. Everything has LODs - LOD0 is about 3K tris, LOD2 - no more than 300 tris.
In before:

  1. LOD distances are 0.01 and 0.001, changing those to closer thresholds doesn’t win more than 2-3fps.
  2. DFAO and raytraced DF shadowing - enabled, disabling those has no effect on fps.
  3. Setting low culling distance wins 8fps on average.
  4. Shader complexity on the grass from an average eyes height is ridiculous, have no idea what to do with it.

What I’m doing wrong and what can I do to increase fps?

Try and Cut tri-count where ever you can, 3k is allot for plain foliage (unless you are counting trees as well) and 300 for lod2 is overkill especially for the simpler grasses which should be 20-50 maximum.

Love the art style!

One thing to test is collision - I’ve found that even though instancing is very very performant the colliders are a big bottleneck still, and there is a bug that does not allow you to turn off colliders on LOD instances (According to epic this is being fixed but there is no timeline for integrating it into the engine yet). Try getting rid of colliders on your meshes just to see what that does to performance, and consider using simple capsules possibly.

I’ve tried killing shadows on the grass and even removing the grass completely - that won me, like, 5fps in dense grass locations, everywhere else fps stayed the same. Foliage stats say grass takes less than 1ms on average to render, seems like landscape grass is optimized pretty good so I suspect grass is not the culprit here. I’ve also made LOD distances closer - no effect again.

What’s the good polycount for “hero” trees? I’ve seen good trees in Witcher 3 and the like below 1K tris, but my problem here is I don’t have many broadleafs, most of my plants got fronds instead of simple leaves/cards.

How much overdraw have you got going on?

Run lit and then unlit. I don’t think this is a poly thing at all (make sure you have lod setup on landscape) it’s the shader/lighting that is killing your fps.

Could you give screenshot of “Shader complexity”