Well, 80k polygons is 240k vertices that need processing. Many of these are vertices that are shared between triangles of course - if those triangles are processed close to each other (in time), then the GPU can re-use the results. So in reality, you'll be pushing somewhere between 150K and 240K. Hopefully closer to the former, if the code that generated the mesh ordered the triangles efficiently.
Ok I was wrong about one thing. The tree model has 80K polygons and 150K vertices Now your saying that I shouldn't go above one million vertices per frame. well I only have 150K vertices. so I must be doing something wrong?
80k polygons is a huge amount for a tree. If you plan to be rendering more than a handful, you'll definitely want to make this a lot lower.
But anyway, like I think you've discovered, it's most likely the number of batches you're rendering that's the problem. 5901 batches! That's really only necessary if you're using 5901 different materials. Presumably your trees uses a maximum of two (one for the leaves, one for the trunk)... hopefully the program you used to generate it can combine the meshes to reflect that.
Ok then thank you guys so much. that really helped.
I'm now looking at Hardware instancing. because I'm trying to draw around 10,000 cubes (24 vertices each cube) at the same time. and Hardware instancing really really helps.
before using Hardware instancing my FPS was around 15 FPS and I was able to render 10,000 cubes. After using Hardware instancing I can now render 100, 000 at 45 FPS. The only problem is that Hardware instancing is a bit complicated for me.
anyways thank you all