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