No change in efficiency?

Started by
8 comments, last by Pirosan 18 years ago
Hey, I am using LWJGL in java, implementing opengl, and I have been trying to get better framerate results, because I know that the rts game I am working on is going to include a lot of objects on the scene. Currently, if i only clear the buffers and render some text, i get 230 frames easily, but as soon as i start rendering the terrain i see a large drop of performance. after drawing a 10x10 terrain it drops to 87 frames per second. I thought it would be good to draw terrain strips, rather than drawing each polygon, so i tried that and there is virtually no change. Is there something that i could be calling or doing over and over to cause this problem? I am running on a 3gHZ p4 laptop with a radion mobile 9200, so obviously my desktop will get better results, i just want to know if there is something i may be able to try.
Bow before me... for i am l33t!
Advertisement
Are you using VBOs? If not, that's a good start.
VBOs? What are those? I googled that and looked around in gamedev and found references to them but I don't know exactly what they are or what their purpose is.
Bow before me... for i am l33t!
Vertex buffer objects. This article should help.
I'll start looking into that.

Of course, as soon as i try my much larger heightmap (64 by 64) it has almost no drop in quality (though i did make the texture a bit more stretched). in fact, it was about 89 fps, and when i switched to my strip rendering technique, the fps ROSE 10+, maxing out at around 101 fps.

May it be the texture? perhaps this graphics card can't handle it or something?
Bow before me... for i am l33t!
If you want to draw static objects , the good choice is Display Lists ( but little more memory overhead ), if the object is dynamic ( the verteces change position in mesh) the VBO or VertexArray is another good solution. I think by combining both you can achieve good effect and good fps numbers.

P.S. There are plenty of other techniques, that can be used to speed up. Just check Red Book there is a section that is covering this. But make sure that:

The texture is power of 2, ie (32x32 , 32x64 , 64x64, 128x128 ... ) - this should help on some older cards.
first, you should look at this:
http://www.mvps.org/directx/articles/fps_versus_frame_time.htm
and then to see real performance improvments, I think you will need a LOT more datas to be rendered...
Odd that i can have a 128x128 fully lit terrain object running at a respectable speed as long as the texture is relatively spread across the whole terrain, rather than repeating multiple times.

Could this be due to an odd texture setting, or something?
Bow before me... for i am l33t!
it depends on the texture size, the filtering...
try using mipmapping if it can help...
Yes, Mip mapping not only made it look better but i believe it helped increase the framerate noticably.

[EDIT] Noticably was an understatement, it drastically changed my framerate, especially when repeating a texture many times over an object like the terrain!

[Edited by - Pirosan on April 19, 2006 11:14:24 AM]
Bow before me... for i am l33t!

This topic is closed to new replies.

Advertisement