Inconsistent LOD behavior on Foliage and Grass

Hello, guys.

I’ve already reported this as a bug on answerhub (https://answers.unrealengine.com/questions/658509/inconsistent-lod-behavior-on-foliage-and-grass.html) but got no answer or explanation… I’m still using 4.14 for my external archviz since all the newer versions have this strange LOD behavior on foliage and grass systems. I’m copying the answerhub content here hoping any of you guys are aware of this and hopefully have found a workaround.

[FONT=&amp]---- answerhub content:

On 4.14, **screen size **parameter on static mesh LOD settings has the same behavior both for single static mesh actors or foliage painted instances.
[FONT=&amp]Now on 4.16 (and 4.15), that same parameter with same values causes the LOD transitions to behave differently (at different distances) when the meshes are single static mesh actors or foliage instances. Plus when it’s a foliage instance, I can’t control LOD 0 distance within a given distance from camera. No matter what screen size value higher than 0,5 I set for LOD 1, it won’t change to LOD 0 closer than ~15m from camera (while the single static mesh actors keep working just fine).
[FONT=&amp]I created all my foliage during the last years with LOD 0 optimized for close range (nothing more than a couple of meters) because I need high fidelity foliage and also reasonable performance. Now all my high dense foliage projects are taking a huge performance hit on 4.15 and 4.16 compared to older UE4 versions because of that strange LOD behavior on foliage and grass instances.
[FONT=&amp]Ps. I’ve also tried that on a clean project from scratch to make sure it wasn’t a content migration bug. And the issue persists like shown on the screenshots bellow (the static mesh used is a default “desktop backyard grass” SpeedTree asset).

4.14 - static mesh actors on the left - painted foliage instances on the right

4.16 - static mesh actors on the left - painted foliage instances on the right

Notice how LOD 0 instances keep the same on the right even with LOD 1 screen size changing from 0,5 to 0,9

I’m pretty sure the instances are LOD’ed in a grid, so it has less to do with screensize/you have less control.

It could be the case indeed… The problem is that in 4.14 (and older) the screensize had a consistent behavior on foliage instances. Now it’s different and I can’t find any information about that anywhere. I’d like to understand how it’s actually working so I could predict LOD behavior and optimize my scenes.

I presume the engine is now automatically clustering more instances together so screensize will hardly affect instances at close range (because they’ll always be in the same cluster). If that is the cause, it would be nice to have some level of control on cluster size… I’ll probably need two versions of all my foliage assets to optimize a scene with both static meshes and foliage instances combined… In the end if I migrate any of my projects from 4.14 to 4.15 or newer (with the proper screensize adjustments to match the older as close as possible) I get a 10~20fps hit.