Hi, I notice that osg and osgconv by default prefers to create drawables that have useDisplayList set to TRUE and useVertexBufferObjects set to FALSE.
I have a model of Manhattan with 2 million vertices, 800k polygons consisting of about 800 drawables. As is, the model only renders at 10 FPS on Intel integrated graphics (the one in Ivy Bridge chips). After some experimentation I found out that this performance problem disappears when swtting useDisplayList to FALSE and useVertexBufferObjects to TRUE. A couple of questions: I would like to understand the reasons why osg keeps using default settings for drawables that can impact performance negatively on modern hardware and drivers. Is this purely for compatibility reasons with older OSG code or is there more to it? Why does OSG save these defaults to every drawable in every OSG file? Wouldn't it be more useful to inherit this setting through some osg::State at the very top of the scene graph node? Some ideas come into mind how OSG could improve on this: *we could add an option to osgUtil::Optimizer (or add an easy to use node visitors to the osgUtil namespace) that switches the use of DisplayLists and VBOs to a user-prefered setting. *we could try to make OSG determine automatically for a given scene graph (or branches of that graph) whether VBOs or DisplayLists might be more efficient (possibly taking into account the OpenGL driver vendor in the graphics context). Feel free to chime in with two or more cents. Christian
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

