glBegin/glVertex/glNormal: - very slow because each call jumps to the driver to send a command to the card Display Lists: - all commands are saved in a "compiled" form in the video memory of the card and then executed with one call - still slow for large polygon/triangle data because the compiled "program" will be very long Draw arrays: - fast for a huge dataset of identical opengl primitives - all data is transfered with only a few calls to the card but then the card only executes only a "draw everything in the array" - The slowest part is to transmit the whole array for each frame to the card Draw arrays in a display list (I'm not sure that it works): - should remove the slow transmit of vertex data for each frame VBO: - very fast - not every card supports it - something like draw arrays located directly on the card