Hi, I'm trying to share a VBO and an EBO between multiple primitivesets of different geodes. My structure is the following (I always have only one primitiveset per geode, hence my question)
+ Geode --+ PrimitiveSet + Geode --+ PrimitiveSet + Geode --+ PrimitiveSet and so on I've tried to do it in 2 different ways: 1) By first creating one unique ElementBufferObject and one unique VertexBufferObject for the whole scene graph, but then creating individual, distinct vertex arrays for each primitivesets, eg: Code: int numberOfVertexArrays = 0; Geometry *geom = new Geometry(); // create my geometry Vec3Array *arr = new Vec3Array(); // 1 distinct vertex array for each geometry geom->setVertexArray(arr); numberOfVertexArrays++; arr->setVertexBufferObject(uniqueVbo); // use the unique VBO For the EBO, I use DrawElements::setBufferIndex(), my index being the index of the vertex array I'm adding to the EBO. Code: DrawElements *drawElements = [...]; geom->addPrimitiveSet(drawElements); drawElements->setBufferIndex(numberOfVertexArrays); 2) By creating one unique EBO and one unique VBO, and having only one unique vertex array, too. Everything's pretty much unique. In both cases, OSG keeps binding/unbinding Array and Element buffers inbetween glDrawElements calls. I mean, OSG even does this when VBO and EBO buffer ids don't change across glDrawElements calls. Isn't there a way to bind the VBO and EBO once for all at the beginning and then render everything? Or do I *have* to have everything declared in the same geometry? Cheers, Fred ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=38251#38251 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org