Can it be faster?

Q #1: For what purposes is glCullFace? is the code faster when i disable backfaces or it is the same?
Q #2: For what purposes is the display list? Is it really faster than manually calling all the glVertex functions (and all the mess)? When it is better to use the display lists?
Q #3: Depends the speed of drawing on the near and far parameter in the glFrustum?

In my code i have set the far limit to 50 and then to 500 an there was no difference between the speed of drawing. (I have tried it with and without display list).
I believe that it an be faster but how?

  1. 1st fundemental law of real-time graphics: don’t draw what you can’t see. On closed polygonal meshes, faces whose normal points away from the camera (‘backfaces’) will be obscured by other faces in the same mesh. So we don’t need to draw them. Backface culling provides a speed up when fill rate is the bottleneck.

  2. Display lists allow OpenGL implementations to optimise known sequences of commands, and store them in fast memory for quick retrieval. They should provide a speed up, depending again on your bottleneck.

  3. The only reason changing the near and far planes will increase your performance is if geometry is subsequently clipped, and not drawn. Otherwise you won’t see a speed up, I think. I wouldn’t suggest relying on this as a speed-up technique, since having too close a far clipping plane can look pretty bad, with objects being visibly sliced along it.



A side note for Q#3:
With zbuffer the ratio between far and near plane directly influences precision: it’s more visible with a 16bit zbuffer.