HALLELUJIA !!!!!!!

Started by
14 comments, last by _the_phantom_ 19 years, 9 months ago
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 !
Author Freeworld3Dhttp://www.freeworld3d.org
Advertisement
Good for you, man! How was it running before the switch?
----------------------------------------------------"Plant a tree. Remove a Bush" -A bumper sticker I saw.
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.
Author Freeworld3Dhttp://www.freeworld3d.org
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 :-).
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
When General Patton died after World War 2 he went to the gates of Heaven to talk to St. Peter. The first thing he asked is if there were any Marines in heaven. St. Peter told him no, Marines are too rowdy for heaven. He then asked why Patton wanted to know. Patton told him he was sick of the Marines overshadowing the Army because they did more with less and were all hard-core sons of bitches. St. Peter reassured him there were no Marines so Patton went into Heaven. As he was checking out his new home he rounded a corner and saw someone in Marine Dress Blues. He ran back to St. Peter and yelled "You lied to me! There are Marines in heaven!" St. Peter said "Who him? That's just God. He wishes he were a Marine."
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.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Promit
Can't remember the extension's name right now.
GL_EXT_draw_range_elements
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.
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].

____________________________________________________________www.elf-stone.com | Automated GL Extension Loading: GLee 5.00 for Win32 and Linux

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.

This topic is closed to new replies.

Advertisement