Again, it is the alphablending. Your grass has an alphachannel and it does not write into the depthbuffer, which means that every pixel is rendered for every grass plane every frame. And those are blended together, which means that the previous colour has to be read and mixed with the new one for every grass plane. This causes your bad framerate if many pixels are covered by your grass. This is a general problem, which will be the same with any engine. You can improve the performance with alphatesting for the completely translucent parts, but I doubt that it will help that much. The only real solution will be not to use transparency and instead do alphatesting and depthwriting or less grass.