When I see the only fee fps i’m loosing with a lot of my foliage everywhere (removed here), i’m not really accepting to loose so many fps for just a color at the landscape ?
Would anyone have a clue on what happening here ?
Note : I’m not using nanite on the landscape. Made a few test : not better, with strange shadows
You’re losing FPS because when looking at the ground, the engine is actually having to calculate things like lighting and shadowing; even if you just have a basic color material like that. It’s completely normal and to be expected.
Try setting the viewport to unlit and you’ll likely see next to no difference in fps when looking at the sky vs ground.
@Ivan3z My screenshots are from packaged game, so there is no details windows or other.
I’ll try to desactivate ambiant occlusion as you suggested, i’m sure there are some tricks like that because I feel like 50 fps just to look down a plane surface with basic texture is huge.
It’s really not. As soon as some sliver of of the floor comes into view, all of the lighting and shadowing has to start spinning up, like lumen and VSMs(which is why I said try the experiment in unlit mode and you’ll see almost zero change in fps). When looking at the sky, the renderer basically skips the bulk of lighting/shadowing calculations(aside from some basic atmospherics like fog, visible volumetrics, etc etc, but the bulk of the heavy calculations are skipped).
So that -50fps you’re seeing might only become something like -55fps once you throw in a reasonable amount of scene props with similar simple materials(basic albedo+ORD+normal setup). It may look dire, seeing some big 150->100fps change in a situation like this, but it’s completely normal.
But as Ivan3z said, you’ll need to do some profiling. Also, FPS changes aren’t the greatest metric to go by. Get in the habit of looking at frame times instead.
What would you consider a acceptable “normal” drop of FPS for foliage . I’ve optimized it with lod, culling, disable wind effect, compressed the textures to a low size, etc but it still heavy and I would like to know what kind of performance do you get, like how much fps does it cost in your projects ?
That’s because it’s rendering both the sky and the ground. The default built in sky material isn’t super expensive, but it does have a cost.
That’s an extremely debatable topic that depends on a million different variables and opinions. The main killer of FPS with grass is overdraw. So make sure to use the shader complexity viewing mode to debug.
Other than that, view distance will obliterate performance, which is why people use tricks like billboard clusters(along with LODs in general) for when they still want some grass in the distance, but not at the same cost.
Sometimes, depending on the asset, you can also get away with using dithertemporalAA masked materials, but at the tradeoff of having some grainy outlines if you don’t do it correctly.
Performance also depends on the hardware…
So if you have the best computer in the world, maybe the game runs great. But someone else with a mid-range or low-end PC is going to have a lot of trouble running the game… So I think you should optimize it as much as possible if you want your game to be used by as many people as possible.
One last question, I also have a drop of fps when looking far, at the horizon.
Each landscape component is a separate draw call. With the settings you have used there are 3000 components, if you do not stream them by distance then looking at the horizon would be hundreds of them that need to be drawn, whereas if you just look at the ground there is only a single component that needs to be drawn. If you would remove the landscape and just use a single plane (scaled to the landscape size) then I would expect nearly no difference in performance whether you look at the ground or at the horizon.
For the grass, consider disabling shadows (you could use contact shadows instead if you don’t want unshadowed grass, but I wouldn’t use any ‘regular’ shadows, imo the cost vs visual impact is way too large for small foliage like grass). Also the cull distance used in the image is very large.