HI Adam

Simply configurethe geometry to
    geom->setUseDisplayList(false);
    geom->setUseVertexBufferObjects(true);
in order to deactivate the display list generation

Also, I think you don't have to use setVertexArray, as long as you keep the array as a pointer. (@Robert, is the data actually copied?)

Cheers
Sebastian
I'm looking for ideas/the correct way to implement a vertex array or VBO in OSG 
that gets updated each frame.

I have a camera that renders to a FBO. It renders a bunch of rain drops to an 
alpha texture that is applied to a cars windshield. Each frame on the CPU I 
update the rain drops to move down, and I also spawn new ones and erase ones 
where the wipers wipe them away.

I created a callback class inherting from osg::Drawable::UpdateCallback, that 
gets called each frame, I perform my logic and then re-use the same 
osg::Vec3Array and just update it per frame and then reset the drawable with:

osg::Geometry* geometryNode = drawable->asGeometry();
geometryNode ->setVertexArray(rainState->vertices);

Unfortunately this setVertexArray is killing my framerate from 98 to 78. All 
this does is make the Drawable::draw() function make a new display list, do the 
draw functions and finish.

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=63294#63294





_______________________________________________
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

Reply via email to