Work on mesh decimation.

This commit is contained in:
David Williams 2007-09-18 16:05:24 +00:00
parent 336eba9680
commit 487962ad31
2 changed files with 13 additions and 5 deletions

View File

@ -1010,12 +1010,12 @@ namespace Ogre
iterPatch->second.computeNormalsFromVolume(volIter); iterPatch->second.computeNormalsFromVolume(volIter);
iterPatch->second.endDefinition(); iterPatch->second.endDefinition();
bool removedVertex = false; bool removedVertex = false;
for(uint ct = 0; ct < 10; ct++) //for(uint ct = 0; ct < 10; ct++)
//do do
{ {
removedVertex = iterPatch->second.decimate3(); removedVertex = iterPatch->second.decimate3();
} }
//while(removedVertex); while(removedVertex);
} }
//LogManager::getSingleton().logMessage("Finished Generating Mesh Data"); //LogManager::getSingleton().logMessage("Finished Generating Mesh Data");

View File

@ -47,7 +47,7 @@ namespace Ogre
void SurfacePatch::addTriangle(const SurfaceVertex& v0,const SurfaceVertex& v1,const SurfaceVertex& v2) void SurfacePatch::addTriangle(const SurfaceVertex& v0,const SurfaceVertex& v1,const SurfaceVertex& v2)
{ {
if(v0.position.x > 8) /*if(v0.position.x > 8)
return; return;
if(v0.position.y > 8) if(v0.position.y > 8)
return; return;
@ -58,7 +58,7 @@ namespace Ogre
if(v2.position.x > 8) if(v2.position.x > 8)
return; return;
if(v2.position.y > 8) if(v2.position.y > 8)
return; return;*/
//if(m_uTrianglesAdded > 1) return; //if(m_uTrianglesAdded > 1) return;
@ -501,6 +501,10 @@ namespace Ogre
(*secondEdgeIter)->triangle = iterTriangle; (*secondEdgeIter)->triangle = iterTriangle;
newEdgeIter->triangle = iterTriangle; newEdgeIter->triangle = iterTriangle;
lastAddedEdge->hasTriangle = true;
(*secondEdgeIter)->hasTriangle = true;
newEdgeIter->hasTriangle = true;
//++firstEdgeIter; //++firstEdgeIter;
++secondEdgeIter; ++secondEdgeIter;
lastAddedEdge = otherNewEdgeIter; lastAddedEdge = otherNewEdgeIter;
@ -524,6 +528,10 @@ namespace Ogre
lastAddedEdge->triangle = iterTriangle; lastAddedEdge->triangle = iterTriangle;
(*secondEdgeIter)->triangle = iterTriangle; (*secondEdgeIter)->triangle = iterTriangle;
(*endEdgeIter)->triangle = iterTriangle; (*endEdgeIter)->triangle = iterTriangle;
lastAddedEdge->hasTriangle = true;
(*secondEdgeIter)->hasTriangle = true;
(*endEdgeIter)->hasTriangle = true;
} }
didDecimation = true; didDecimation = true;
break; break;