When developing an aplication using OpenGL, I start by looking at the extensions that the card supports. Some do not have VBO support, so I extended my library to use VAR (NVidia), VAO (ATI) and if none of those are available, my Render object uses display lists or simply an imediate glBegin()/glEnd() structure… I’m wondering if this is the correct way, as it seems that Display Lists still have good performance - and perhaps I should forget about VAR and VAO, which could be a waste of resources (and my time) ???
Display lists offers optimal performance as well as VBO. The difference is that display lists are fully static whereas VBO may be dynamic.
As far as i know nearly all cards back to the GeForce 2 do support VBO. Therefore, adding VBO support as an application requirement is not a biq requirement and won’t limit your user base much.
VAR and VAO are old extensions that were created before VBO. You should use only VBO as they are somewhat higher level and work accross all graphic cards (NVidia, ATI, Intel,…).
As for VBO support: some users just don’t have a clue about updating drivers…