Jump to content
  • Advertisement
Sign in to follow this  
soconne

HALLELUJIA !!!!!!!

This topic is 5123 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

OMG, I just switched from using glDrawElements in my geomipmapping terrain engine to using glDrawRangeElements, and I got an 80FPS INCREASE !!!!!!!!! Anybody writing a terrain engine should definitely switch to it if you already didn't know this !

Share this post


Link to post
Share on other sites
Advertisement
Well before the switch, I was using glDrawElements and VBO.
And with a 1024x1024 heightmap and a 2048x2048 texture and a 512x512 detail map I was getting about 220fps on a

P4 2.8Ghz HT
1GB PC3200
Radeon 9800 Pro 128MB



And now I'm getting between 300-320fps and a lot more when the LOD is low. I can get up to 550fps if I fly above the terrain.

Share this post


Link to post
Share on other sites
Just thought I'd slip a quick question in here. I've been trying to write algorithms to generate indices for triangle strips for the connecting strips between patches of differing levels of detail. All attempts seem to work sometimes, but not be able to cope with all valid cases. How are you connecting between patches of differing levels of details? Were you up against this problem, and (just to reassure me that it can be done) did you succeed in getting rid of the gaps without resorting to skirting?

By the way, well done on the speedy implementation, I'll have to switch to VBO's soon. Currently just using standard indexed buffer, not even CVA... shameful :-).

Share this post


Link to post
Share on other sites
funny you should say that, im implementing VBOs right this second :-D, but anyways, am i missing something or is glDrawRangeElements() an extension or something? (or what header is it in?) because its not in my gl.h (or at least msvc's auto type isnt recognizing it)
-Dan

Share this post


Link to post
Share on other sites
Quote:
Original post by Ademan555
funny you should say that, im implementing VBOs right this second :-D, but anyways, am i missing something or is glDrawRangeElements() an extension or something? (or what header is it in?) because its not in my gl.h (or at least msvc's auto type isnt recognizing it)
-Dan


It's in GL 1.2, so you either need a header which gives you 1.2 or the extension. Can't remember the extension's name right now.

Share this post


Link to post
Share on other sites
Quote:
Original post by bytecoder
Just so you know, an 80 fps increase in speed isn't that much of a difference when a game already has high fps, due to the fact that measurements in frames per second are highly non-linear.


OT: I agree with the author's point, but it's interesting that he chooses this an example of misuse of fps:

Quote:
"My application was running at 900FPS, then I added rendering of .... and my frame rate dropped to 450FPS. Why is this feature so slow?? Why is it cutting my performance in half?!??"


Looks correct to me anyway [smile].

Share this post


Link to post
Share on other sites
Quote:
Original post by Hamster
Just thought I'd slip a quick question in here. I've been trying to write algorithms to generate indices for triangle strips for the connecting strips between patches of differing levels of detail. All attempts seem to work sometimes, but not be able to cope with all valid cases. How are you connecting between patches of differing levels of details? Were you up against this problem, and (just to reassure me that it can be done) did you succeed in getting rid of the gaps without resorting to skirting?

By the way, well done on the speedy implementation, I'll have to switch to VBO's soon. Currently just using standard indexed buffer, not even CVA... shameful :-).


This might help you

fixing geomip, no skirts

scroll down there is code for generating the indicies and for fixing the cracks, pretty self explanatory.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!