Changeset 3327
- Timestamp:
- 08/27/04 10:03:26 (9 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/osgPlugins/obj/ReaderWriterOBJ.cpp
r3325 r3327 269 269 } 270 270 271 // #define USE_DRAWARRAYLENGTHS 272 271 273 if (numPolygonElements>0) 272 274 { 273 275 unsigned int startPos = vertices->size(); 274 osg::DrawArrayLengths* drawArrayLengths = new osg::DrawArrayLengths(GL_POLYGON,startPos); 276 277 #ifdef USE_DRAWARRAYLENGTHS 278 osg::DrawArrayLengths* drawArrayLengths = new osg::DrawArrayLengths(GL_POLYGON,startPos); 279 geometry->addPrimitiveSet(drawArrayLengths); 280 #endif 275 281 276 282 for(itr=elementList.begin(); … … 281 287 if (element.dataType==obj::Element::POLYGON) 282 288 { 283 drawArrayLengths->push_back(element.vertexIndices.size()); 289 290 #ifdef USE_DRAWARRAYLENGTHS 291 drawArrayLengths->push_back(element.vertexIndices.size()); 292 #else 293 if (element.vertexIndices.size()>4) 294 { 295 osg::DrawArrays* drawArrays = new osg::DrawArrays(GL_POLYGON,startPos,element.vertexIndices.size()); 296 startPos += element.vertexIndices.size(); 297 geometry->addPrimitiveSet(drawArrays); 298 } 299 else 300 { 301 osg::DrawArrays* drawArrays = new osg::DrawArrays(GL_TRIANGLE_FAN,startPos,element.vertexIndices.size()); 302 startPos += element.vertexIndices.size(); 303 geometry->addPrimitiveSet(drawArrays); 304 } 305 #endif 306 284 307 285 308 if (model.needReverse(element)) … … 342 365 } 343 366 344 geometry->addPrimitiveSet(drawArrayLengths);345 367 346 368 } … … 376 398 osg::StateSet* stateset = materialToSetSetMap[es.materialName].get(); 377 399 geometry->setStateSet(stateset); 378 379 // osgUtil::Tesselator tesselator; 380 // tesselator.retesselatePolygons(*geometry); 381 400 401 // tesseleate any large polygons 402 osgUtil::Tesselator tesselator; 403 tesselator.retesselatePolygons(*geometry); 404 405 // tri strip polygons to improve graphics peformance 382 406 osgUtil::TriStripVisitor tsv; 383 407 tsv.stripify(*geometry); 384 408 409 // if no normals present add them. 385 410 if (!geometry->getNormalArray() || geometry->getNormalArray()->getNumElements()==0) 386 411 {
