[osg-users] Some yes/no questions about VBOs

Robert Osfield robert.osfield at gmail.com
Wed Jul 2 06:17:01 PDT 2008

On Wed, Jul 2, 2008 at 1:43 PM, David Spilling <david.spilling at gmail.com> wrote:
> 1) I can't quite understand all of the BufferObject code, but just to check,
> it looks like all three arrays are dumped into one large contiguous buffer
> (i.e. one single bufferID). Is that correct?
> If(1) is true, and it's just one large buffer:

osg::Geometry uses one VBO for all vertex arrays associated with it,
and one VBO for the primitive data associated with it.

> 2) Am I right in thinking that limiting the upload to one of the arrays
> would involve extending BufferObject to use glBufferSubData, as it isn't
> currently supported?

I should already work in 2.4 onwards.

> 3) Can you set the stride of each buffer object (i.e. to support
> interleaving the arrays)? I can't see anything like glVertexPointer
> anywhere.

The OSG doesn't support interleaving of vertex arrays, it doesn't
offer much benefit these days - interleaving was useful in the days of
CPU vertex processing.

> 4) More generally, is there any (easy) way to attach several BufferObjects
> to a Drawable, such that you could separately dirty() vertex, texcoord or
> normal without having to upload the others?
> If (1) is false, and each array has a different buffer object/ID,

This should be a moot point now.

> 5) Is there an obvious way that I've missed for dirtying just one of the
> arrays in the VBO space?

Each Array now has its own dirty() method.


More information about the osg-users mailing list