   glCallList glDrawArrays and Multitexturing
  Hello,I've some question about speeding up my Opengl Applications:- What is the faster way to draw a static map (heighmap) (size = 512x512) ? glCallList or glDrawArrays or .. ? (actually i'm using glCallList, the map is divided in 8x8 blocks).- Is it slower to use Multitexturing (GlMultiTexCoord2fARB, with two textures, ground & detail texture) or to use glColor3f() to color the ground and apply without Multitexturing the detail texture ? Is there a big difference ?- Is is better/faster to draw QUADS or TRIANGLES when using glCallList() ?- Is it faster to use INT or FLOAT or DOUBLE ? (i've tested with FLOAT and INT, but i get the exact same result (same FPS))- Is there any software to emulate graphic card ? (for exemple emulate a very old one to see how many FPS someone using it could have)- Is Vertex Buffer (glGenBuffersARB) faster that glDrawArrays & glCallList ? Is it supported by a majority of graphic cards now ?- anything else to speed up my game that i should know ?Thanks a lot everybody :-)   
  Hey there, I can't help you with all your questions, but here's a few things I do know:- glCallList & glDrawArrays are doing very different things. One is invoking a Display List, the other is actually drawing some sort of primitive depending on how you've set up your arrays. Generally, for a set of predetermined OpenGL function calls, creating a Display List and using glCallList to call it will give you performance increases. You could even call glDrawArrays from inside a display list, although I'm not sure the performance benefits that you would get.- Generally speaking, float is the idea type for OpenGL work. Graphics hardware generally doesn't support double and int usually isn't accurate enough. Unless you  need more accuracy, stick with float.Good luck :)   ;  Concerning the vertex shader.When you want to draw sth with a shader, I think (but I am not sure), that you still have to use glDrawArray, or glDrawElements (if you use an array to pass your vertices).   ;  OK, to cover the OP's questions in order;- The fastest way would be to break your map up into logical blocks and then use glDrawRangeElements with the correct index list. And its no small speed difference, on my hardware the difference between a glDrawArrays call and a glDrawRangeElements call is 14.62fps and 43.87fps and thats before you start optimising the mesh data and everything was on screen with a heavy vertex load- multi-texturing is very fast on a modern card, infact they are practically built assuiming you'll be doing it- doesn't matter, driver will convert internall when you build the list- see above- not as far as ik know- using a VBO can help speed up drawing yes, but you still have to call a drawing function (see first answer)- avoid display lists. You should be using VBOs with indexed triangle list when submitting data   