Overdraw happens when there are multiple models drawn behind each other. The pixels in the areas of each model that overlap with each other will get rendered multiple times, once for each model. This can drastically decrease performance.
In addition to that, transparent areas get rendered as well, even though the final color ends up as transparent and the rendered pixels are discarded.
For example, if you have a simple quad mesh with a grass texture then the red areas below are rendered multiple times:
Solution
The best way to solve this is to optimize the mesh to remove the transparent areas. Removing transparent areas can drastically reduce overdraw, while also saving additional performance by not having to render the transparent areas.
Adding additional vertices and triangles in order to reduce the transparent area is also ok. The performance hit of the additional triangles is usually smaller than the performance hit of having to render the transparent areas. When adding triangles it is best to simply test the result on your target device to find the best balance between triangle count and transparent area.
Comparison
If we render a small test scene with the meshes above to compare the performance then we get the following results:
Quad Mesh | 130 fps |
Optimized Mesh | 200 fps |
As you can see, the optimized mesh has much better performance, even though the result looks exactly the same. The further the drawing distance and the denser the grass, the bigger the performance difference is.
Density
An easy additional optimization is to reduce the density of the grass in the distance. Objects in the distance have a lot of overdraw and are usually not very visible for the player. Therefore, reducing the density has only minimal impact on the visual quality, and can result in a large performance boost.
In Nature Renderer you can reduce the density in the distance in the Instancing section:
Using these settings in the test scene will give the following result:
Left: Full density, Right: Reduced density in distance
And this produces the following performance results:
Full density | 200 fps |
Reduced density | 280 fps |