Hi Christian,

The preference for using DisplayLists rather than VBO's on by default is
largely historic, but it's also model and driver specific so there isn't an
easy VBO's are always best for all cases.  In general VBO's are best these
days for models where there is modest number of separate Geometry but a
high number of vertices in each Geometry, while DisplayLists ,where
implemented efficiently in the driver, work best on models where there are
larege number of small Geometry.

I have considered changing the default across to using VBO's, and have
considered whether one should have hints on what would be best to provide
given on what hardware/driver/OS you have and the type of data being
handled, this rapidly gets into a bit of sticky area though as what is best
changes over time.  I would expect on some drivers always using VBO's would
be best, whilst others fine grained Geometry best done with DisplayLists
and large Geometry done with VBO's.

The OSG allows you to individually set the DisplayList/VBO settings for
each osg::Geoemtry so it is under the end users complete control what they
want to use for the current driver/model combination they have, there is
also nothing stopping then for tuning it for different drivers at runtime.
So all the power to set things optimally is in the users hands.

What osgUtil::Optimizer and osgconv do by default is a more awkward area to
decide a clear line.  Use of these utilities are purely optional - you
choose to use them if you wish and if you feel they provide what you want,
if don't feel they are appropriate then it's straight forward to set up
your own utilities to set the scene graph how you feel is appropriate.

Robert.





On 27 August 2014 10:45, Christian Buchner <[email protected]>
wrote:

> 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
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to