Hello everyone,
I tried to use the LodGenerator to reduce the vertices of meshes
but it was not successfull . Here is my code :
Geometry geometry = (Geometry) node;
Mesh mesh = geometry.getMesh();
System.out.println("mesh.getVertexCount()=" + mesh.getVertexCount());
System.out.println("mesh.getIndexBuffer().size()="
+ mesh.getIndexBuffer().size());
System.out.println("mesh.indexbuffer.getNumElements()="
+ mesh.getBuffer(VertexBuffer.Type.Index).getNumElements());
System.out.println("mesh.indexbuffer.getNumComponents())="
+ mesh.getBuffer(VertexBuffer.Type.Index).getNumComponents());
LodGenerator lodGenerator = new LodGenerator(geometry);
VertexBuffer[] reducedMesh = lodGenerator.computeLods(
LodGenerator.TriangleReductionMethod.PROPORTIONAL, 0.5f);
System.out.println("reducedMesh.length=" + reducedMesh.length);
VertexBuffer newIndexBuffer = reducedMesh[0];
Buffer b = newIndexBuffer.getData();
mesh.clearBuffer(newIndexBuffer.getBufferType());
mesh.setBuffer(newIndexBuffer);
System.out.println("NEU:");
System.out.println("mesh.getIndexBuffer().size()="
+ mesh.getIndexBuffer().size());
System.out.println("new mesh.getVertexCount()="
+ mesh.getVertexCount());
System.out.println("newIndexBuffer.getNumElements()="
+ newIndexBuffer.getNumElements());
System.out.println("mesh.indexbuffer.getNumElements()="
+ mesh.getBuffer(VertexBuffer.Type.Index).getNumElements());
System.out.println("mesh.indexbuffer.getNumComponents()="
+ mesh.getBuffer(VertexBuffer.Type.Index).getNumComponents());
And this is what i get as system output :
mesh.getVertexCount()=17768
mesh.getIndexBuffer().size()=39888
mesh.indexbuffer.getNumElements()=13296
mesh.indexbuffer.getNumComponents())=3
reducedMesh.length=2
NEU:
mesh.getIndexBuffer().size()=39888
new mesh.getVertexCount()=17768
newIndexBuffer.getNumElements()=13296
mesh.indexbuffer.getNumElements()=13296
mesh.indexbuffer.getNumComponents()=3
it looks as if the old and new index buffers are the same.
What i am doing wrong?