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.