- Timestamp:
- 10/26/10 16:59:12 (3 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osganalysis/osganalysis.cpp
r11853 r11854 29 29 #include <osgUtil/IncrementalCompileOperation> 30 30 #include <osgUtil/Simplifier> 31 #include <osgUtil/MeshOptimizers> 31 32 32 33 class StripStateVisitor : public osg::NodeVisitor … … 88 89 89 90 while (arguments.read("-s", simplificatioRatio)) {} 91 while (arguments.read("--tristripper")) { useTriStripVisitor=true; } 92 while (arguments.read("--no-tristripper")) { useTriStripVisitor=false; } 93 while (arguments.read("--smoother")) { useSmoothingVisitor=true; } 94 while (arguments.read("--no-smoother")) { useSmoothingVisitor=false; } 95 96 while (arguments.read("--remove-duplicate-vertices") || arguments.read("--rdv")) removeDuplicateVertices = true; 97 while (arguments.read("--optimize-vertex-cache") || arguments.read("--ovc")) optimizeVertexCache = true; 98 while (arguments.read("--optimize-vertex-order") || arguments.read("--ovo")) optimizeVertexOrder = true; 90 99 91 100 while (arguments.read("--build-mipmaps")) { modifyTextureSettings = true; buildImageMipmaps = true; } … … 111 120 float maxError = 4.0f; 112 121 osgUtil::Simplifier simplifier(simplificatioRatio, maxError); 113 //simplifier.setDoTriStrip(false);114 //simplifier.setSmoothing(false);122 simplifier.setDoTriStrip(useTriStripVisitor); 123 simplifier.setSmoothing(useSmoothingVisitor); 115 124 node->accept(simplifier); 125 } 126 127 if (removeDuplicateVertices) 128 { 129 OSG_NOTICE<<"Running osgUtil::IndexMeshVisitor"<<std::endl; 130 osgUtil::IndexMeshVisitor imv; 131 node->accept(imv); 132 imv.makeMesh(); 133 } 134 135 if (optimizeVertexCache) 136 { 137 OSG_NOTICE<<"Running osgUtil::VertexCacheVisitor"<<std::endl; 138 osgUtil::VertexCacheVisitor vcv; 139 node->accept(vcv); 140 vcv.optimizeVertices(); 141 } 142 143 if (optimizeVertexOrder) 144 { 145 OSG_NOTICE<<"Running osgUtil::VertexAccessOrderVisitor"<<std::endl; 146 osgUtil::VertexAccessOrderVisitor vaov; 147 node->accept(vaov); 148 vaov.optimizeOrder(); 116 149 } 117 150 … … 123 156 } 124 157 125 126 158 return node; 127 159 } … … 134 166 useVBO = false; 135 167 useDisplayLists = false; 168 136 169 simplificatioRatio = 1.0; 170 useTriStripVisitor = false; 171 useSmoothingVisitor = false; 172 173 removeDuplicateVertices = false; 174 optimizeVertexCache = false; 175 optimizeVertexOrder = false; 137 176 138 177 modifyTextureSettings = false; … … 145 184 bool useVBO; 146 185 bool useDisplayLists; 186 147 187 float simplificatioRatio; 188 bool useTriStripVisitor; 189 bool useSmoothingVisitor; 190 191 bool removeDuplicateVertices; 192 bool optimizeVertexCache; 193 bool optimizeVertexOrder; 148 194 149 195 bool modifyTextureSettings;
