captain carot said:
megafenix said:
Their excuse is that while is possible to keep stable 30fps at 720p it will take a lot of effort from them to accomplish it(maybe by using wii u specific features like fixed functionality), if thats the case then there are easier ways to accomplish the goal without so much effort
Use SMAA isntead of MSAA or EQAA
1.-If THEY by chance are using MSAA or maybe EQAA like the ps4 and xbox one, they can replace it with SMAA which gives similar results to MSAA with less strain improving performance and doesnt blur as much as FXAA and can be used as a post-processing antialaising solutionhttp://www.tweakguid.../Crysis3_6.html
Try Occlussion Culling and maybe Frustrum too
2.-Occlusion Culling is a feature that disables rendering of objects when they are not currently seen by the camera because they are obscured by other objects. This does not happen automatically in 3D computer graphics since most of the time objects farthest away from the camera are drawn first and closer objects are drawn over the top of them (this is called “overdraw”). Occlusion Culling is different from Frustum Culling. Frustum Culling only disables the renderers for objects that are outside the camera’s viewing area but does not disable anything hidden from view by overdraw. Note that when you use Occlusion Culling you will still benefit from Frustum Culling.
http://docs.unity3d....ionCulling.html http://http.develope...ugems_ch29.html
3.-Some adjustments on the LOD(level of detail) for renders that are far away is also an option.
Try out a variable framebuffer so that resolution will change instead of the framerate (Wipe Out HD did this)
4.-Another approach is to use a variable resolution/framebuffer so that resolution will change isntead of the framerate during the gameplay, this way whenever there would be fps peaks the resolution will change isntead. This trick was used in Wipe Out HD for the ps3 tokeep the 60fps at variable 1080p(resolution could go as low as 1440×1080 certain times) and tricked many as is not very noticeable in race gameshttp://www.eurogamer...sleight-of-hand
|
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).
"