Added support for the ARB_vertex_buffer_object into osg::Geometry.
This commit is contained in:
@@ -1163,6 +1163,9 @@ bool Optimizer::MergeGeometryVisitor::mergeGeode(osg::Geode& geode)
|
||||
}
|
||||
}
|
||||
|
||||
// don't merge geometry if its above a maximum number of vertices.
|
||||
unsigned int _maximumNumber = 10000;
|
||||
|
||||
for(GeometryDuplicateMap::iterator itr=geometryDuplicateMap.begin();
|
||||
itr!=geometryDuplicateMap.end();
|
||||
++itr)
|
||||
@@ -1175,7 +1178,26 @@ bool Optimizer::MergeGeometryVisitor::mergeGeode(osg::Geode& geode)
|
||||
dupItr!=itr->second.end();
|
||||
++dupItr)
|
||||
{
|
||||
|
||||
osg::Geometry* rhs = *dupItr;
|
||||
|
||||
if (lhs->getVertexArray() && lhs->getVertexArray()->getNumElements()>=_maximumNumber)
|
||||
{
|
||||
lhs = rhs;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (rhs->getVertexArray() && rhs->getVertexArray()->getNumElements()>=_maximumNumber)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (lhs->getVertexArray() && rhs->getVertexArray() &&
|
||||
(lhs->getVertexArray()->getNumElements()+rhs->getVertexArray()->getNumElements())>=_maximumNumber)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mergeGeometry(*lhs,*rhs))
|
||||
{
|
||||
geode.removeDrawable(rhs);
|
||||
|
||||
Reference in New Issue
Block a user