I have a model of e.g. 200,000 triangles. Instead of using naive glNormal() and glVertex() call for each vertex, how much performance improvement can be expected if I use glVertexPoinetEXT() and glNormalPointerEXT() extensions? Or any other more performance-useful extensions/ideas?

Thank you.

why not test and share your results with us?

that would be greatly appreciated, especially for those of us who have yet to try but have also wondered.


You can expect huge performance gains. Why don’t you do it and see for yourself?

As a side note, vertex arrays have been core since OpenGL 1.1 which is fairly ancient. No need for the EXT unless you’re running on some old sgi box or something.

If you have a very big mesh, use Vertex Buffer Objects. You will gain a huge boost in speed.
You can find an example of how to use VBOs on

If you use VBO, the the Lock extension is of no use, right? Or does it still help speed things up?

Because from what I understand, the Lock extension keeps your vertices and triangle data in video memory until you unlock them which speeds all your glDrawElements calls up a lot. But using VBO, your data is already in video memory, so would using the Lock not really do anything?

Yes, compiled vertex arrays are pointless with VBOs. VBOs are tighter speced as well and should offer greater performance than CVAs.