Well even with no LOD or occlusion whatsoever a 7800 could easily render that entire level at over 20 FPS I think; it looks like to me that you may simply have a bottleneck somewhere which is slowing down my 7800 - my guess would be a batch count or vertex upload bottleneck.
I've tried your earlier demos, and they are very well done, and run quite fast (even on old video cards). It seems since the addition of your vegetation system, everything has slowed down a lot more than it should. Now on a old video card like a GeForce 2, the slowdown is probably normal, but when the same demo runs on a video card with extremely fast vertex/pixel processing capabilities, the same slowdown occurs (and of course is not good for someone who is used to their video card's high speed).
Since Blitz3D doesn't support vertex shaders (of course), grass animation means that every vertex of the grass has to be re-uploaded to the video card each frame, and I'm guessing that this may be the main cause of the poor performance. Newer video cards are so fast that this creates a bottleneck and slows everything else down, meaning 99% of the time you're uploading vertex data to the video card, and 1% of the time you're video card is actually rendering something.
So I would try disabling grass animations (just to see if it helps), and if you're not already, grouping grass into batches of several thousand polygons - drawing each grass quad as a single entity (even if you use CopyEntity) will absolutely slow down everything no matter how fast your computer is.
Developing a fast vegetation rendering system takes a lot of time and effort, so I guess it really depends how much time you want to spend on it. In your case, like you said it's not really an outdoor engine, so it's not that important.
P.S. But if you ever want to use C++ to develop a game with advanced vegetation rendering, I would recommend Ogre (free) + my vegetation system add-on (free) [image | video]. :D
I've tried your earlier demos, and they are very well done, and run quite fast (even on old video cards). It seems since the addition of your vegetation system, everything has slowed down a lot more than it should. Now on a old video card like a GeForce 2, the slowdown is probably normal, but when the same demo runs on a video card with extremely fast vertex/pixel processing capabilities, the same slowdown occurs (and of course is not good for someone who is used to their video card's high speed).
Since Blitz3D doesn't support vertex shaders (of course), grass animation means that every vertex of the grass has to be re-uploaded to the video card each frame, and I'm guessing that this may be the main cause of the poor performance. Newer video cards are so fast that this creates a bottleneck and slows everything else down, meaning 99% of the time you're uploading vertex data to the video card, and 1% of the time you're video card is actually rendering something.
So I would try disabling grass animations (just to see if it helps), and if you're not already, grouping grass into batches of several thousand polygons - drawing each grass quad as a single entity (even if you use CopyEntity) will absolutely slow down everything no matter how fast your computer is.
Developing a fast vegetation rendering system takes a lot of time and effort, so I guess it really depends how much time you want to spend on it. In your case, like you said it's not really an outdoor engine, so it's not that important.
P.S. But if you ever want to use C++ to develop a game with advanced vegetation rendering, I would recommend Ogre (free) + my vegetation system add-on (free) [image | video]. :D