captain carot said:
And that helps exactly what if the CPU is limiting? Right, absolutely nothing.
As for who is buying a racing sim for a console without analog triggers and steering wheel (accurate steering wheel not fumbling with the gamepad gyro)? Likely almost nobody. The lack of analog triggers was the main reason i never intended to buy the Wii U version in the first place. |
Since Occlussion Culling and Frutrum were made for saving draw calls its obvious that this will save CPU resources as well as GPU, and using compute shaders so that part of the physiscs will be handled on GPU instead of cpu can also help
https://software.intel.com/en-us/articles/how-to-plan-optimizations-with-unity
"
Occlusion Culling
Occlusion Culling disables object rendering not only outside of the camera’s clipping plane, but for objects hidden behind other objects as well. This is very beneficial for performance because it cuts back on the amount of information the computer needs to process, but setting up occlusion culling is not straightforward. Before you set up a scene for occlusion culling, you need to understand the terminology.
Occluder – An object marked as an occluder acts as a barrier that prevents objects marked as occludees from being rendered.
Occludee – Marking a game object as an occludee will tell Unity not to render the game object if blocked by an occluder.
For example, all of the objects inside a house could be tagged as occludees and the house could be tagged as an occluder. If a player stands outside of that house, all the objects inside marked as occludees will not be rendered. This saves CPU and GPU processing time.
Unity documents Occlusion Culling and its setup. You can find the link for setup information in the references section.
To show the performance gains from using Occlusion Culling, I set up a scene that had a single wall with highly complex meshed objects hidden behind. I took FPS captures of the scene while using Occlusion Culling and then without it. Figure 17 shows the scene with the different frame rates.
Figure 17. The image on the left has no Occlusion Culling so the scene takes extra time to render all the objects behind the wall resulting in an FPS of 31. The image on the right takes advantage of Occlusion Culling so the objects hidden behind the wall will be rendered resulting in an FPS of 126.
Occlusion culling requires developers to do a lot of manual setup. They need to also consider occlusion culling during game design as to make the game’s configuration easier and performance gains greater.
"
Here is another example using culling for objects taht are distant to us
http://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html
"
LOD and Per-Layer Cull Distances
In some games, it may be appropriate to cull small objects more aggressively than large ones, in order to reduce both the CPU and GPU load. For example, small rocks and debris could be made invisible at long distances while large buildings would still be visible.
This can be either achieved by Level Of Detail system, or by setting manual per-layer culling distances on the camera. You could put small objects into a separate layer and setup per-layer cull distances using the Camera.layerCullDistances script function.
"
You can find other solutions in this page that developers of Project cars can use, in fact i forgot to mention and even better solution if the game is cpu bound
"
Batching
Having numerous draws calls can cause overhead on the CPU and slow performance. The more objects on the screen, the more draw calls to be made. Unity has a feature called Batching that combines game objects in to a single draw call. Static Batching affects static objects, and Dynamic Batching is for those that move. Dynamic Batching happens automatically, if all requirements are met (see batching documentation), whereas Static Batching needs to be created.
There are some requirements for getting the objects to draw together for both Dynamic and Static Batching, all of which are covered in Unity’s Batching document listed in the references section.
To test the performance gains of Static Batching, I set up a scene with complex airplane game objects (Figure 21) and took FPS captures of the airplanes both with batching and without batching (Table 8).
"