From Jason Beverage, added option to control whether simplification of

tiles is done during osgdem builds.
This commit is contained in:
Robert Osfield
2005-12-15 16:30:31 +00:00
parent 4b269ba9da
commit 72554ca27e
4 changed files with 24 additions and 6 deletions

View File

@@ -3023,14 +3023,15 @@ osg::Node* DataSet::DestinationTile::createPolygonal()
osgDB::writeNodeFile(*geode,"NodeBeforeSimplification.osg");
}
#if 1
unsigned int targetMaxNumVertices = 2048;
float sample_ratio = (numVertices <= targetMaxNumVertices) ? 1.0f : (float)targetMaxNumVertices/(float)numVertices;
if (_dataSet->getSimplifyTerrain())
{
unsigned int targetMaxNumVertices = 2048;
float sample_ratio = (numVertices <= targetMaxNumVertices) ? 1.0f : (float)targetMaxNumVertices/(float)numVertices;
osgUtil::Simplifier simplifier(sample_ratio,geometry->getBound().radius()/2000.0f);
osgUtil::Simplifier simplifier(sample_ratio,geometry->getBound().radius()/2000.0f);
simplifier.simplify(*geometry, pointsToProtectDuringSimplification); // this will replace the normal vector with a new one
#endif
simplifier.simplify(*geometry, pointsToProtectDuringSimplification); // this will replace the normal vector with a new one
}
osgUtil::TriStripVisitor tsv;
tsv.setMinStripSize(3);
@@ -3743,6 +3744,8 @@ DataSet::DataSet()
_writeNodeBeforeSimplification = false;
_simplifyTerrain = true;
setEllipsoidModel(new osg::EllipsoidModel());
}

View File

@@ -128,6 +128,8 @@ BEGIN_OBJECT_REFLECTOR(osgTerrain::DataSet)
I_Method0(osgTerrain::DataSet::MipMappingMode, getMipMappingMode);
I_Method1(void, setUseLocalTileTransform, IN, bool, flag);
I_Method0(bool, getUseLocalTileTransform);
I_Method1(void, setSimplifyTerrain, IN, bool, flag);
I_Method0(bool, getSimplifyTerrain);
I_Method1(void, setDecorateGeneratedSceneGraphWithCoordinateSystemNode, IN, bool, flag);
I_Method0(bool, getDecorateGeneratedSceneGraphWithCoordinateSystemNode);
I_Method1(void, setDecorateGeneratedSceneGraphWithMultiTextureControl, IN, bool, flag);
@@ -175,6 +177,7 @@ BEGIN_OBJECT_REFLECTOR(osgTerrain::DataSet)
I_Property(float, MaximumVisibleDistanceOfTopLevel);
I_Property(osgTerrain::DataSet::MipMappingMode, MipMappingMode);
I_Property(float, RadiusToMaxVisibleDistanceRatio);
I_Property(bool, SimplifyTerrain);
I_Property(float, SkirtRatio);
I_Property(osg::State *, State);
I_Property(osgTerrain::DataSet::TextureType, TextureType);