Download

LOD2 with half triangle counts causing performance drop vs both LOD1 and LOD0 in foliage system

So I imported one of Grass 3D assets from Quixel, build a very small very simple landscape and simple landscape material, just 3 layers and grass type node.

there’s 3 separate meshes in this asset and I show only one of those here, but I think all 3 causing this problem.

Culling set from 200 to 1000 unreal units on all foliage meshes, density 300 on all 3, decals, dynamic shadows, CPUcopy are off. Enable Density Scaling is on.

If I set up very aggressive LOD transition where LOD2 will occupy most of the screen and it renders 1ms slower on my machine(7700k+2060) than rendering twice triangles showing mostly LOD1 instead.

I see triangles drawn at 1 200 000 with LOD1 and 900 000 with LOD 2 and LOD2 despite 300 000 less triangles drawn runs slower - about 2ms slower.

Draw calls are at just 400 or so.

Why this is happening?

This seems like normal behaviour, and if it is, it is due to the transparency / overdraw cost.
Try ebabling/forcing an early z pass in project settings.

But overall you are still way better off with more tris VS using masked or transparent materials.

It could be multiple LODs in a scene. Use only each LOD level to test the performance.

Thank you guys, problem basically disappeared once I checked “use as occluder” checkmark (MostHost LA comment led me to it, thanks a ton!), and setting up custom LOD’s within ue4 helped a lot. It looks like performance doesn’t go down at all even if using more than 4 LOD’s, which is great for my scene.