Code: Select all
TriangleIndexVertexArray trSh = new TriangleIndexVertexArray(mod.faces.size(), inBuf, 4 * 3, mod.vertices.size(), veBuf, 4 * 3);
Code: Select all
shape = new BvhTriangleMeshShape(trSh, true);
inBuf and veBuf are both just ByteBuffers of all the vertex and index data. I don't think there's anything wrong there.
Code: Select all
// There are 3 floats needed for each vertex (x,y,z)
int vbufferSize = sh.size() * 3 * Float.SIZE;
FloatBuffer verticesBuffer = ByteBuffer.allocateDirect( vbufferSize ).order( ByteOrder.nativeOrder() ).asFloatBuffer();
// Copy the values from the list to the direct float buffer
for ( Vector3f v : sh )
verticesBuffer.put( v.x ).put( v.y ).put( v.z );
// There are 3 floats needed for each vertex (x,y,z)
int fbufferSize = sh.size() * 3 * Float.SIZE;
FloatBuffer facesBuffer = ByteBuffer.allocateDirect( fbufferSize ).order( ByteOrder.nativeOrder() ).asFloatBuffer();
// Copy the values from the list to the direct float buffer
for ( Face v : mod.getFaces() ){
int[] ind = v.getVertexIndices();
facesBuffer.put( ind[0] ).put( ind[1] ).put( ind[2] );
}
ByteBuffer veBuf = (ByteBuffer) ((sun.nio.ch.DirectBuffer)verticesBuffer).attachment();
ByteBuffer inBuf = (ByteBuffer) ((sun.nio.ch.DirectBuffer)facesBuffer).attachment();
Code: Select all
//TriangleIndexVertexArray indexVertexArrays=new TriangleIndexVertexArray(Bunny.NUM_TRIANGLES,Bunny.getIndexBuffer(),4 * 3,Bunny.NUM_VERTICES,Bunny.getVertexBuffer(),4 * 3);
Code: Select all
mod.faces.size()
Code: Select all
mod.vertices.size()
I cannot find any proper documentation, so I am hoping someone can help me: What am I parsing wrongly to the TriangleIndexVertexArray?
Thanks!