I’m wondering if I should use vertex arrays or display lists in my application to have best performances. I must mostly display models I load from .obj files. It’s working already with display lists, but I’m wondering if vertex arrays could make it faster?
Main problem I have is the triangles are all messed up in my .obj file, so I’d have to build triangles strip which could be tricky. Also, I’m pretty sure each model can’t be represented with just a triangle strip so I’d have to make several smaller triangle strips.
I believe that if I don’t care about memory at all, display list is never slower as everything is stored on the graphic card, is it right? And since my models are static, I only send them once at the beginning.
But I keep hearing about vertex arrays everywhere, and I’v never seen a real comparaison with display lists.
Any hint is welcome
With static geometry you can expect display list’s to be fast, I do not think you would find much improvement with vertex buffers, maybe if you can cut down on the number of triangles with strips as you say, but I do not think it would be worth the trouble.
why not use both? you could advance to vertex buffer objects and then compile these commands in a display list. although some people said it wouldn’t improve performance, it did.
These display lists vs vertex arrays vs vertex buffer object performance questions can’t be answeared in general. It depends on your OpenGL implementation. While it is said that with curretn Nvidia OpenGL drivers vertex buffer objects will be fastest, vertex arrays second and display lists slowest other cards and rivers will give different results. This can even depend on the size of your vertex array / display list / vertex buffer object. I once did a comparison with an application I wrote using the free DRI Linux drivers with a Radeon 9000 Pro. Vertex arrays were about the same speed as vertex buffer objects. Display lists were a lot faster.
Since it’s working already with display lists, I’ll just stick to that. Thank for your help everyone.