I obviously see the advantage of using VBO’s for my terrain, which is a static mesh and the geometry will never change.
But I was wondering if they would still give a speed increase over standard vertex arrays for animated mesh? I still have to resend the geometry every frame because I need to interpolate between the current frame and the next frame to get an “up-to-date” mesh.
Im doing the interpolation on the cpu, not using any vertex programs.
Would switching to vbo’s still give a speed increase? I’m hoping so because my most serious problem right now is with triangle count.
when you are using more than one rendering pass, then it is faster to submit the vertices once and to reuse them in following rendering passes. even if the geometry changes in every frame.
the performace increase depends on how many rendering passes are you doing.(for ppl. ie.: one rendering pass for depth/alpha and one per lightsource)
Even if your geometry is one shot, VBOs can be beneficial, if only for not polluting CPU caches.
You will likely get uncached AGP memory, or card memory for your dynamic VBOs. Both will eliminate an extra geometry copy.
VBO’s will, at the very least, be no worse than regular vertex arrays. So, you may as well use them.
I recommend the use of VBO for everything that uses vertex arrays. As Korval says, it should never be worse than regular vertex arrays. Its use is very simple. It is an ARB extension we have been asking and waiting for, at least, three years (in my case since the GeForce was released in 1999). Inminent and future OpenGL games (and I suppose that other kind of applications) will use them so it will be the optimized path.