PDA

View Full Version : VBO Usage



Silence
08-08-2012, 12:41 AM
Hi,

From what I know, the VBO usage parameter we set when we call to glBufferData (http://www.opengl.org/sdk/docs/man/xhtml/glBufferData.xml) has no effects.
From my experiments (with some years old CG both ATI and nVidia), there's no difference in timings whether I use STATIC_DRAW, DYNAMIC_DRAW or STREAM_DRAW, and whether I keep the same data in the VBO or I change the data of the VBO every frame.

Is this (still) true ?

Alfonse Reinheart
08-08-2012, 01:06 AM
It depends on what implementation you're running and, most importantly, what you're actually doing with it.

Silence
08-08-2012, 01:44 AM
Well, the last made test is about drawing ellipses. Each ellipse is calculated each frame regarding factors like distance of the camera, and is clipped regarding the frustum.

So each ellipse could be rendered once (one DrawArray call if it is fully visible) or n times (threw n DrawArray calls if the ellipse is clipped). Each ellipse data is set inside a VBO (one VBO for each ellipse). The arrays consist of the vertices (4 values, double) and an attribute (1 value, double).

Each VBO has been set to STATIC_DRAW, DYNAMIC_DRAW or STREAM_DRAW for testing purposes. None of them had any impact on the time it takes to render the ellipse.
Ellipses are rendered with LINE_STRIP, LINES, POINTS or line-dots depending on the user behavior.

The last tests where made on Windows 7 64 bits, geforce 280, nvidia 285.62 and on Linux OpenSuze 64 bits, geforce 680, nvidia 301.x.

We don't use OpenGL >= 3.0.

Alfonse Reinheart
08-08-2012, 02:51 AM
You didn't explain the most important part: how you did your buffer streaming.