I’m working on a side scrolling 2.5D game with lots of grass, so I figured I could turn off the renderer on the grass that’s farther away from the camera. This is what I used to do in Adobe Director and if the models have no visibility it’s as if they’re not even loaded, but you can still switch it on and off quickly.
I tried this in Unity, thinking my 2,000 grass planes would take me from 75 fps to a much higher frame rate, and when I turned all their rendering off I was pretty surprised that I achieved about 3 fps higher. I even tried rotating the camera around to where it’s not facing them and there was no difference.
How are you measuring the frame rate? Don’t use the editor stats window. The FPS shown in the stats window is useless.
Use the FPS counter in the standard assets
Assets\Standard Assets\Utility\FPSCounter
You might be surprised to find out you’re not getting 75 FPS, but rather 45 FPS.
Also, when dealing with transparency, the major hold-up for performance is based on how much of the screen the transparency needs to appear, not necessarily the # of grass planes you have.
In the profiler go to Camera.Render → Drawing ->Render.TransparentGeometry to see how much effort is being put into just rendering all the transparent items.
Also check the profiler to see where your CPU and GPU time is going - rather than guess at where the performance improvements are to be had, it’s always best to address the real issues as indicated by the profiler.