Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Max size VBO-buffer?

763 views
Skip to first unread message

Pierre Alliez

unread,
Mar 18, 2013, 7:17:27 AM3/18/13
to Thijs van Lankveld
dear all,

we tried to visualize large colored point sets efficiently.

in a first approach we tried using display lists, but they behave very
unpredictively - sometimes nothing renders when the point set is too
large (above 3 millions), even when splitting the point set into several
lists of 100K points.

in a second approach we tried using VBOs, but there also seems to have a
limit in terms of size. We also split the VBOs into smaller runs but
ideally we would like to query the limit size of a VBO at run time
before deciding which solution to use (VBO vs immediate mode, showing a
subset of the points, etc).

finally, I was unable to render colored triangles using VBO (where the
colors are defined per vertex and must be linearly interpolated onto
each triangle). The colors are the same used for coloring the points.
I would be happy to read any example code on the web or excerpt.

any help would be much appreciated,


best regards,

Pierre Alliez

Nobody

unread,
Mar 18, 2013, 1:20:50 PM3/18/13
to
On Mon, 18 Mar 2013 12:17:27 +0100, Pierre Alliez wrote:

> in a second approach we tried using VBOs, but there also seems to have a
> limit in terms of size. We also split the VBOs into smaller runs but
> ideally we would like to query the limit size of a VBO at run time
> before deciding which solution to use (VBO vs immediate mode, showing a
> subset of the points, etc).

There is no limit on the size of a buffer object other than available
memory, or on the number of vertices or primitives in a glDrawArrays()
call. For glDrawElements() etc (the functions which take an index array),
there is a limit on the range of indices which can be handled efficiently.

Individual drivers may have bugs, but OpenGL doesn't have any mechanism to
query limits which aren't supposed to exist.

> finally, I was unable to render colored triangles using VBO (where the
> colors are defined per vertex and must be linearly interpolated onto
> each triangle). The colors are the same used for coloring the points.

Rendering using VBOs isn't significantly different to using client-side
vertex arrays. You just need to bind each buffer to the GL_ARRAY_BUFFER
target before calling glVertexPointer(), glColorPointer() etc then pass an
offset into the bound buffer instead of a pointer.

0 new messages