   Ways to draw a 3D model with OpenGL
  I remember I once saw a list with all different ways to draw 3D models with OpenGL, e.g. using vertices, using VBO's, and so on.Where can such a list be found, and which ways are in the main GL standard and which are in extensions?   
  Here are the four I know about:Immediate mode (glVertex3f, et. al.)Display listsVertex array (GL 1.1)VBO (GL 1.4, I think)I *think* that's pretty much it, but there could of course be one I don't know about.   ;  All of them are in the standard (since 1.5), but only VBO is really an option if you want to do anything serious.For all new projects, stay away from non-VBO vertex arrays, immediate mode, and display lists, even if you think that you don't need to care about the extra performace. Those old techniques are likely to be dropped in the future.   ;  How do the four methods cope with animation? Or are they only for static 3d models?   ;  I would not even consider immediate mode.Display lists are for static geometry.Vertex array can be used for static and dynamic.VBO : you can indicate usage flags. If you will use VA, there is no sense in not going over to VBO.   ;  Thanks.Is it possible to do some more complicated animation where the number of vertices changes? For things like LOD or some other weird animation techniques? This is just a hypothetical question, in case it's not a very efficient thing to do.I know this is possible in immediate mode (duh), not possible with display lists (since you said they are static), but what about the other two?   ;  Sure, just make your array the necessary length.VBOs are like arrays but kept in VRAM or AGP memory or some other location.For dynamic VBOs, I recommend have 2 instead of just 1.For frame 0, modify VBO 1 while you render from VBO 2frame 1, modify VBO 2 while you render from VBO 1You can have display lists for dynamic things but list compilation is too slow.   ;Quote:Original post by samothAll of them are in the standard (since 1.5), but only VBO is really an option if you want to do anything serious.For all new projects, stay away from non-VBO vertex arrays, immediate mode, and display lists, even if you think that you don't need to care about the extra performace. Those old techniques are likely to be dropped in the future.How can I find out the version of OpenGL on both Windows XP and on Linux? Is that what you link to  (e.g. -lGL in Linux) the same version as that what games use?   ;  I use GLEE for extension handling. I can also ask GLEE what version of GL I'm using.GLEE:  http://elf-stone.com/glee.php /Lizard   ;Quote:Original post by LodeHow can I find out the version of OpenGL on both Windows XP and on Linux?To query the version by hand, you would callglGetString(GL_VERSION).Quote:Is that what you link to  (e.g. -lGL in Linux) the same version as that what games use?Shouldn't matter (at least under Windows, never tried under Linux). The way it's supposed to work is that you link to "some" library for the basic 1.0 functionality (under Windows it's more like 1.3, not sure if that is standard, though) and then, at runtime, retrieve function pointers for everything more recent from the library present at the target computer (if available, and after checking the extension string).Libraries like Glee do all that for you in a really foolproof "don't worry, everything works" manner. I've used Glee in the past, and if you don't mind a little executable bloat, it is really really, really nice. In any case, using Glee is an awful lot less programming work than anything else.   