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

Reply via email to