Hi Robert,

These changes sound good. I'm all for cleaning up the Geometry class.

You mentioned implementing some sort of backwards compatibility for the
serialization plugins. Does that mean existing osg files (osg, ive, osgb,
etc...) that use indices will automatically fall back to the
GeometryDeprecated class? I know the 3ds max exporter plugin generates
vertex indices in some cases. Just curious how those existing files will be
handled now.

Cheers,
Farshid



On Tue, Jun 4, 2013 at 12:14 AM, Robert Osfield <robert.osfi...@gmail.com>wrote:

> Hi All,
>
> One of the changes I've discussed before, but as yet no made, is to
> simplify osg::Geometry so that it  drops the index arrays that you can
> currently associated for vertex, normal, colour, texcoord arrays.
> These index arrays aren't supported by OpenGL, instead have to be
> emulated by breaking the primitive data up into small chunks and
> sending the vertex data and primitive data in small batches.
>
> This is very inefficient, so what having separate vertex indicies
> might seem like a good way of reducing vertex data overhead by sharing
> more it causes a big CPU overhead and results in lower performance.
> While there are clear warnings in the osg::Geometry header that this
> feature is deprecated and forces and OpenGL slow path I know it still
> gets used on occasion - against best practice advice.
>
> What I'd like now to do is drop the index arrays from osg::Geometry,
> and provide a GeometryDeprecated class for the those who need
> backwards compatibility.  Potentially this GeometryDeprecated class
> could go in the core osg library, but I'm tempted to move it out into
> one of the optional NodeKits to reduce the size of the core osg
> library.
>
> To be clear OpenGL indexed primitives will still be fully support by
> osg::Geometry - DrawElement*  has always been available and will
> remain, it's the long been the preferred way to pass your primitive
> data to OpenGL.
>
> Another step in making these changes that I'm considering is moving
> the normalize parameter from Geometry::ArrayData into osg::Array, with
> this change ArrayData ceases to have a role and can be removed further
> simplifying osg::Geometry.
>
> Thoughts?
> Robert.
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to