How To Increase Performance - Frame Rate

No matter how many terrains I create of whatever size I cant get the Frames Per Second (FPS) to even warrant adding a game to the terrain.

I have tried a 10k, 8k, and 4k terrain with much the same unusable results. By unusable I mean that I was stopped from adding any more objects in order to build a game around due to the severe lack of FPS.

Here is my best so far and the steps I ised to produce this environment.

I am using Gais, Complete Terrain Shader (CTS), enviro, Aquas Water, Speed Trees, 5 Textures. Target system set at PC.

Resolutions are as image below.

The profiler displays rendering as the main culprit as below.

Of which drawing and culling seem to be taking most CPU…

Rendering stats are as follows

And Textures seem to be taking up most of the memory:

As a complete beginner to Unity in general I am not sure how to go about solving the issues so would appreciate any assistance.

Below are the actions I took in creating the Gaia environment and the drops in FPS as I developed the space.

ACTION DROP IN FRAME RATE


Turned vSync OFF - 1700-2000
Added Gaia - 1700-2000
Added Terrain - 900-1100
Played Gaia Session - 500-700

Create Spawners - 5 - 6 - 700 (means 500, 600 and 700 but mostly 700)
Spawn Textures - 4 - 5 - 600

Set Lighting to Linear/Deffered - 4 - 500 - 6
Add CTS (terrain Shader) - 4 - 500 - 6
Setup Shader - 5 - 600 - 7

Spawned Objects 300 - 4
(78 mixed rocks farms & villages)

Spawned Clustered Trees (914 total) 220 - 250
Spawned Coverage Trees (290 total) 113 - 210

Added Aquas Water 98 - 101

Import Character 77 - 83
Add Windzone 64 - 68
Add Underwater Effects 54 - 68

Allow HDR - YES
Allow MSAA NO

Occlusion Culling 57 - 64

Add Enviro 49 -51

Add light probe to speedtrees
(lod 0, 1, 2)

Made Houses, rocks and farms STATIC

FGinal Result is 35 - 80 FPS

So basically I dare not add anything else until I have fine tunned the terrain to actually home a game. And all that will entail…

Many thanks for any tips to solve some or all of these massive drops in FPS.

Have a good one.

The FPS you get is highly dependent on your video hardware. What video card are you using?

I am using an AMD Radeon 7800 Series.
Its by no means the best but thought it would be reasonable.

I was under the impression that the FPS needed to be as high as possible and that it reflected the ACTUAL FPS in order to target a specific device with the appropriate FPS.

Xbox One for instance seems to run at 60 FPS. So believed I had to get the FPS up to 60 FPS?

Eh, you’re using a 6 year old video card, and not even a high end 6 year old card, just a budget buy middle of the road card even at the time it came out. You’re going to need to keep your video quality settings fairly low and your scenes on the simple side to get reasonable performance with that card.

Xbox One is newer than what you’re running. And I don’t know what quality settings you’re trying to use.

The info in my post shows that my system is capable of handling 2000FPS so where are they going? That is my point. Maybe I am missing a chunk of knowledge but isn’t 60fps 60fps on any machine or console or card? Why should the loaded objects reduce my system to nothing? OK I dont get it at all.

If I have to keep my video settings very low then what is/where is the ratio from one machine to another, thats what I dont get here.

What I am trying to say is: I can put an xbox/pc game in my system and play it no problem at 60fps so my question remains. Why wont the scene I created run at 60fps (minimum)? what is wrong with the scene?

No. A game’s frame rate is entirely dependent on the hardware, any software you have running, and the game itself. For an example of this look at the benchmarks of any video game. Fallout 4, for example, runs considerably different on a high end graphics card than it does on a low end graphics card.

According to Kotaku it achieves an average of 113 FPS on a 980 Ti but on a 750 Ti it only gets 38!

https://kotaku.com/fallout-4-pc-benchmarks-post-apocalyptic-performance-1742582894

Loaded objects take memory to store them, processing power to prepare them for rendering, and graphical power to do the actual render. Additionally any scripts attached to them take processing power to run. Furthermore most of this processing will take place every single frame.

Your scene is simply too demanding for the hardware you possess. You mentioned starting a game in your console or running on your PC and achieving correct performance but that’s only possible because the game developer made it so the game could run on your hardware at that performance level. We call this “optimizing”.

Additionally just because the games you’re trying run at 60 FPS doesn’t mean every game will and definitely not at maximum settings depending on the age of the game. Go pick up a copy of Fallout 4 if you want to see what I mean.

1 Like

Thank you Ryiah, I appreciate the indepth advice and points you make I will dig a little deeper into the whole subject of graphics and optimization etc… and most likely upgrade my system.

Thanks, I really appreciate it. Cheers.

1 Like

Just an idea:
Tried change values in the TimeManager (Unity > Edit > Project Settings > Time)?

Thanks josiperez, nothing I changed in Time Manager made any difference. I will have another go though. Thanks.

Also take a look at the quality settings you’re running, as they greatly impact performance.

Thanks. The only setting that makes a real difference is turning vSync off. I am not willing to go low quality which actually makes little difference to the FPS anyway.

I just spent ÂŁ3000 on a new system with a GTX 1080TI graphics card and that made very little difference. It just looked better. FPA no better

Just one thing to keep in mind when you’re performance testing, you are running both your game and Unity engine at the same time. Try building your game in its current state to see how it runs as a standalone application.

Exactly.

Editor performance means absolutely nothing.

My game runs at 30-50 fps in editor but 160 in builds.

Thanks NOoMKRAD, much appreciated. I will give that a go

Thanks Cucci_A, I will bare that in mind but unity seems to use about 7GB memory and upto 30% processor so there should theortically be plenty left for the actual game?

7 GB??

Holy f*ckin shit

Why do you say that? Surely this is a general resource usage. I actually have two of the same projects open at present, both are idle, one is using 8.1 GB and the other is using 1.8 GB. WTF is going on there I dont know.

I just never had a project taking more than 1.5 GB RAM…

OK, so your more thank likely creating a small terrain/scenes.

To be honest though I believe I am trying to do something that unity just cant handle. I am thinking of looking elsewhere