Using more meshes with fewer polygons per mesh can improve performance when it allows the renderer to cull more objects. Culling refers to skipping objects during the render process, which improves performance. There are two main reasons why an object might get culled:
View-frustum culling: Objects that are entirely outside the field of view of the camera ...
Lets say initiating a draw call takes 1 millisecond.
Now lets say that it takes 10 milliseconds to draw 100 polygons.
A single call to draw 100 polygons costs 11 milliseconds
11ms * 1000 = 11 seconds.
For 100k polygons:
100,000 / 100 = 1000 * 10ms = 10 seconds.
Add on the 1ms for initiating the draw call = 10.001 seconds.
Drawing the 100k polygons once ...
There are two main components to the time it takes to process a draw call:
The time it takes to calculate all the results for every work item in the batch
The time it takes to upload info / switch states / ready the GPU to start working on it
As GPUs have gotten more powerful, most of the leaps and bounds have helped with point 1. They can now run hundreds ...
This is a shortest path problem, albeit of a strange sort.
Although usually we use pathfinding algorithms to find routes through space, where each node in the search space corresponds to a physical location, they actually work just fine on more general graphs too.
In this case, each node in the search space is one snapshot of state the game could be in on ...
in unity basically pooling means: instead of using Instatntiate() that makes new object in the scene that takes cpu performance to allocate, make all of needed object on the start of the scene and only enable and disable them and only make new object when all of you instantiated objects are active and are not ready to reuse.
you can use a foreach or for ...