Hi Werner, On Wed, Nov 24, 2010 at 3:02 PM, Werner Modenbach <[email protected]> wrote: > I was told using indexes is leaving fast path rendering. Isn't that the case? > I would be very, very lucky!!!
Use vertex/colour/normal/etc index arrays in osg::Geometry will force the OSG to dispatch data to OpenGL using OpenGL slow paths, as OpenGL does not support independent index arrays for vertex data. So avoid using osg::Geometry::setVertexIndices(..), setNormalIndex(..), setColorIndices(..). These *Indices() methods are deprecated and only currently kept around for backwards compatibility. However, using DrawElementUShort primitive sets (a wrapper around glDrawElements) to pass in indexed primitive data is directly supported by OpenGL and is the generally the best way to pass primitive data as you can share vertex data, reducing the amount of vertex data you need and enables efficient use of the vertex cache down on the GPU. For you case you should look at trying to minimize both the number of vertices you have by sharing as much as possible, and reducing the amount of data per vertex. As Tim suggested you don't need to pass normal, binormal and tangent vectors as you can compute the third vector very easily and quickly down on the GPU. You may even be able to compute the surface orientation data down on the GPU if you start using deferred rendering techniques. Robert. Robert. _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

