Working version of mesh decimation code which acts directly on vertex/index buffers.
Also initial work on a 'dynamic' mesh for simplification... but this probably won't be needed now.
This commit is contained in:
@ -28,6 +28,9 @@ freely, subject to the following restrictions:
|
||||
#include "GradientEstimators.h"
|
||||
#include "SurfaceExtractor.h"
|
||||
|
||||
#include "RenderDynamicMesh.h"
|
||||
#include "Mesh.h"
|
||||
|
||||
//Some namespaces we need
|
||||
using namespace std;
|
||||
using namespace PolyVox;
|
||||
@ -97,7 +100,40 @@ void OpenGLWidget::setVolume(PolyVox::Volume<PolyVox::uint8_t>* volData)
|
||||
|
||||
if(isp->m_vecTriangleIndices.size() > 0)
|
||||
{
|
||||
isp->makeProgressiveMesh();
|
||||
//isp->makeProgressiveMesh();
|
||||
|
||||
/*RenderDynamicMesh rdm;
|
||||
rdm.buildFromIndexedSurfacePatch(*isp);*/
|
||||
|
||||
//computeNormalsForVertices(m_volData, *(isp.get()), SOBEL_SMOOTHED);
|
||||
|
||||
//isp->smoothPositions(0.3f);
|
||||
//isp->generateAveragedFaceNormals(true);
|
||||
|
||||
/*for(int ct = 0; ct < 20; ct ++)
|
||||
{
|
||||
//cout << "Before: " << isp->noOfDegenerateTris() << endl;
|
||||
isp->decimate();
|
||||
//cout << "After: " << isp->noOfDegenerateTris() << endl;
|
||||
isp->removeDegenerateTris();
|
||||
//cout << "After Remove: " << isp->noOfDegenerateTris() << endl << endl;
|
||||
}*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//For decimation built into ISP
|
||||
//isp->generateAveragedFaceNormals(true);
|
||||
|
||||
isp->decimate(0.999f);
|
||||
|
||||
//isp->generateAveragedFaceNormals(true);
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*isp->generateAveragedFaceNormals(true);
|
||||
Mesh mesh;
|
||||
mesh.buildFromISP(isp.get());
|
||||
//mesh.removeEdge(*(mesh.m_edges.begin()));
|
||||
mesh.decimateAll();
|
||||
mesh.fillISP(isp.get());*/
|
||||
|
||||
|
||||
Vector3DUint8 v3dRegPos(uRegionX,uRegionY,uRegionZ);
|
||||
|
Reference in New Issue
Block a user