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

Reply via email to