Is it possible to force the GPU to increase FPS, is there a command for that?

There is no light in the world, it is totally dark and the light is only blueprint, in the world it only has a reflection capture with 0.5 brightness and an infinite post-processing volume that I have also tested without them.

Nothing in the level. The fps starts to drop only when I look at the blueprint, it is certainly the static meshes that are causing loss of FPS.

I guess, as phil_me_up suggested you’re most likely to have to reduce the triangle count of your meshes, as well as the amount of lights.
I guess you want to create some kind of LED spotlight effect, you could look into IES Light profiles ( IES Light Profiles | Unreal Engine Documentation ) and Light functions ( Light Functions | Unreal Engine Documentation ).
We can see in your screenshot above that most of your render time is taken up by the lighting pass. This pass get’s more computing intensive with the amount of light sources, light source radii, shadow casters, shadow caster complexity (tri count), those are not all but those are the most prominent one’s here, is my guess.

Yes this shows that the models are, at least a part of the problem 13.91 million triangles is quite high. This means the first point on improving this scene should be the meshes, make sure that you reduce the tri count on your meshes. In most cases, you can get away with lower poly models, if you bake your high poly data (which already exists in your case) onto them (mostly normals).
That should be step into the right direction, and depending on your frame budget you might need to tweak further and or more aspects of the scene.

Ok, I will do my best to reduce the triangles without reducing the quality of the object, but for now I am looking for alternative ways to save GPU, is it possible to stop everything behind the camera from being rendered as 2d games?

In your previous screenshots you can see, that your frame time is around 44.3 ms (~22 / 23 fps). Most of which is taken up by the Base ~4.6 ms (~10% of the frame time), RenderDefferredLighting ~14.1 ms (~32%), Post Processing ~6.5 ms (~15%), Shadow Depths ~5.7 ms (~13%) passes which take up around 31 ms and more than two thirds of your frame time. All those should be your first few starting points to save gpu time, because those are the most significant and probably have the biggest possible savings in terms of gpu time.
I’m sorry but I don’t quite understand what you mean by your last sentence.

If I use normal static mesh instead of hierarchical static mesh does this work?

It depends on what those meshes are… Things to remember:

Unreal has a lot of culling etc built in. Generally it’ll only render what it needs to render or what it’s been told to render however:

  • If you have a large, single mesh that covers a large area (which I think you do looking at this:296689-then seeing just one pixel of any part of this mesh will cause it all to draw. The engine will not only draw the bit you see, it’ll draw the whole thing, so you might want to break your bit mesh into smaller chuncks (one per room or something)
  • Hierarchial meshes are exactly the same as above, but it’ll attempt to draw many instances of that mesh in one go (i.e. 10 meshes can be drawn in one batch, which means 1 draw call rather than 10). This means that if you have a group of 10 instances and one pixel of any one of them is drawn, all 10 instances will then be fully drawn. That’s fine if your mesh is cheap, not so fine when it’s so high poly and complex so you need to decide what should and should not be instanced accordingly.
  • Also on Hierarchial meshes. If you have 10 instances of a mesh, and that mesh has 1 material it’ll take 1 draw call. If you have 2 materials on that mesh it’ll now take 102 drawcalls (20). Have 10 and it takes 1010 draw calls (100). So, Hierarchial meshes are best used when you have a single material in the mesh.
  • Use lodding where you can. Again, when you have a big, complex model like in the images you posted Lodding might not be possible unless you split your model up.
  • Hierarchial LODs (HLODS) are great. They can be used to simplify meshes and materials, but they come at a memory cost and again, can only really be used at distance.

Thank you all for helping :slight_smile:

For now I will be investigating, if I have an answer I will answer here.

What mesh options should I disable to further improve performance?

You need to cut your meshes into much smaller pieces. From your picture, you have the entire scene as one large high poly mesh. It each room needs to be made from, say, 20-30 meshes, each of which must be MUCH more low poly.

Then all you problems will dissapear…

That’s because the Static Mesh Editor uses a simple lighting and post processing setup, it’s just a directional and sky light. You have at least 15 lights in your scene (can be seen in one of previous your posts, inside the STAT_LightRendering overlay), only one does shadow casting but with this many triangles, lighting gets rather expensive.

I’m going to do this, but I forgot to mention that performance doesn’t drop in the viewport of the static mesh editor and blueprint, only when placed in the world. :frowning:

I divided my static meshes into several pieces and created a graph to destroy them and appear them dynamically during the game even so the fps drops to 30 and 20 again, I also found that placing only one piece in the world individually the FPS drops to 30 and 20 and if I put dozens of them, the FPS does not drop any more than that. It seems strange, what could it be?

( that’s what I mean by viewport, the game viewport… )

If you’re only putting one mesh in the world and getting ■■■■■ fps, it has to be:

  1. Too many polygons

  2. Too high texture resolution

There’s nothing else left ( apart from bad PC )

If you wanna know how to make a sci-fi environment run fast, take a look at this guys stuff:

It’s only 10 bucks…

So this means that by disabling a project’s rendering configuration I can recover performance, as I also tested without the post-processing volume and did not interfere with anything.