Hi Paul, osg::Array doesn't have any mechanism for tracking ranges of modified vertices, only the dirty count is availble and that works for the whole array. Adding such support is possible, but would be quite complicated to implement/use unless you refactored osg::Array so that rather than being based on std::vector<> it instead forced users to use its own set/get/push_back methods for array access. This is all possible, perhaps even desirable.
Robert. On Fri, Jun 13, 2008 at 5:09 PM, Paul Martz <[EMAIL PROTECTED]> wrote: > Hi -- a question came up in the Denver class regarding dynamic data in VBOs, > and I had to admit I encountered this as well, and needed a solution. Here's > the issue... > > If I enable VBOs in a Geometry, and dynamically modify the data each frame, > the buffer object doesn't update unless I explicitly call dirty() on the > modified Vec3Array. When I do this, the scene updates dynamically, yes, but: > in a debugger, I see that the _entire_ block of array data is copied into > the buffer object, not just the modified portion. > > Is there something I'm missing in the interface that would a) make it so the > VBO will update without requiring an explicit dirty() call, and b) would > allow just the modified portion to be copied (using, say, glMapBuffer, for > example)? > > Thanks, > > Paul Martz > Skew Matrix Software LLC > http://www.skew-matrix.com > +1 303 859 9466 > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

