grass killing my fps. gtx 970, 3700x - empty map fps 120

I assume you’re talking about using the project nature grass library:

https://www.unrealengine.com/marketp…-grass-library

Dark green mesh is in the example content:

](filedata/fetch?id=1867802&d=1614773331)

In any event, when you have small meshes grass_01_mesh, half the problem is you’re just placing too may meshes. You can make a new mesh out of 10 or 20 of them, and it cuts your render cost massively.

Just drag them in and arrange them randomly, then select them all, right click, and choose ‘merge actors’:

](filedata/fetch?id=1867803&d=1614773584)

You can use the LOD system to make a couple of extra LODs and BOOM, much quicker render… It’s one thing:

](filedata/fetch?id=1867804&d=1614773732)
This is 1.7K, still getting 120fps in editor:

](filedata/fetch?id=1867809&d=1614775513)
This is the mesh ( it’s a bit shoddy, but you get the idea ). You need to use grass 74 mat with it.

https://drive.google.com/file/d/15JwnVVPqH-0JGiTRr61s-ujNhG3aMomw/view?usp=sharing

Note of caution.
Even with a 1m mesh (you can see the size in world because of the grid in the screenshot) you can get areas of a landscape where the grass is floating.
to fix that you remove the default grass/replace it with smaller meshes in the area.

I use 3 variations. Single bush instance, .5m^2, and 1m^2.

I really wanted to publish some benchmarks but I caught more than 1 job, so it’ll be a while before I can do that.

I did see a benefit (for the first time) by turning on early z pass in someone elses scene.

As far as the testing I have done so far. A fade distance of 50000 and a distribution on grid of 110 meshes with 15k tris each runs around 20fps consistently on a 1080ti.
obviously 15k tris for a single grass mesh is insane - kind of the point of the test. How much geo can you get away with.

Currently running a mesh with 3.5k tris at 65fps 4k. Shadows disabled. No lods.
​Using that as as my “maximum” acceptable, it’s all about creating proper LODs to reduce the geometry count at a distance where it isn’t noticeable.
Baking impostors, basically. It just takes some time/dedication.

Agreed, it’s an art form.

@ClockworkOcean can you make one with dynamic shadow and ssgi on quality 2. plus the ground should be fully covered in grass. distance 3000

This is dynamic shadow at 3000 ( 95 fps ).

SSGI doesn’t make any difference to how it looks, it just makes the frame rate significantly more crap ( 64 fps @ 2 )

You can’t fully cover the terrain, that’s probably part of your problem. There’s no point in going past the point where the meshes are overlapping.


You might be able to get away with a trick where the player spawns mesh directly beside themselves. That way, you can thin it out significantly, because it always looks like a lot in the distance.

ya but in the full game ssgi is important. ssgi quality 1 is rarely enough.

It’s up to you of course…

The more I play with SSGI, the more I think it’s just a frame eater. The difference in quality between 0 and 4 is not worth the frame suck…

ssgi 1 makes ugly shadows if i remember correctly from last time :smiley:
btw if you can help with a desert landscape that would be even more superior of you How do i optimize the landscape topology dynamically in ue4? - Content Creation - Unreal Engine Forums

Sorry, don’t know much about that, but Mosthost definitely does. Maybe re-read the reply…


Original screenshot is 2k
Grass distance is 8000, per instance fade starts kicking in at 500
Density is 55. But I need to get performance on 4k So I won’t me changing that.

The mesh itself still needs a little work for the LOD not to pop too much, it’s mostly the color’s fault. I think I might have added to it when I merged the diffuse.

In case compression made the variable sillegible.
Tris count is 2,468,738.50
Draw-calls is 719 (about 500 too many if you ask me :P)

The landscape is 2 components being displayed of the max size (the one you use to build 8km. Without balancing, so LOD0.

current LOD distribution, could be bettered.
https://gyazo.com/7594f86b3eaa0dfb0c76a34ff4d8bf19|
The black stop is actually a vectorfield displacement. not sure why it shows up like that in LOD collision view. kinda cool.

This is a manually painted grass patch with around 2x the density. Clip plane set to 0.


LOD0 is 3060 tris.
LOD1 is 660 tris (cards)
LOD2 is 330 tris, etc.

To make the mesh is a process. I’ll make a tutorial at some point when I eventually release the trail system.

PS:
In either screenshot meshes are NOT casting shadows.

And since I want my stuff to actually work SSGI is off. until performance doesn’t just sink from 9ms to 30 without a gain in quality…