JBullet BvhTriangleMeshShape

Hiah!

I’ve been trying to experiment with JBullet in my engine. I was able to create a sphere, and have it bounce on a flat plane. However when I tried to use a static collision model instead of a plane, I ran into issues. I cannot figure out the BvhTriangleMeshShape.

The problem is the BvhTriangleMesh doesn’t like my index/vertex buffers. I think I’m missing something here…

int totalVerts = source.getSize();
gVertices = ByteBuffer.allocateDirect(totalVerts * 3 * 4).order(ByteOrder.nativeOrder());
gIndices = ByteBuffer.allocateDirect(totalVerts * 4).order(ByteOrder.nativeOrder());

// FILL VERTEX AND INDEX DATA
Vertex[] vertices = source.getVertices();
for (int i = 0; i < vertices.length; i++) {
	Vertex vertex = vertices[i];
	float[] pos = vertex.getXYZ();
	gVertices.putFloat(pos[0]);
	gVertices.putFloat(pos[1]);
	gVertices.putFloat(pos[2]);
}
for (int i = 0; i < vertices.length; i += 3) {
	gIndices.putInt(i + 0);
	gIndices.putInt(i + 1);
	gIndices.putInt(i + 2);
}
gVertices.flip();
gIndices.flip();

// Create mesh
IndexedMesh indexedMesh = new IndexedMesh();
indexedMesh.numVertices = totalVerts;
indexedMesh.vertexBase = gVertices;
indexedMesh.vertexStride = 3 * 4;
indexedMesh.numTriangles = totalVerts / 3;
indexedMesh.triangleIndexBase = gIndices;
indexedMesh.triangleIndexStride = 3 * 4;

TriangleIndexVertexArray vertArray = new TriangleIndexVertexArray();
vertArray.addIndexedMesh(indexedMesh);

The last line throws a NPE.

Am I setting up my buffers properly?

Please disregard. I had a dumb error where I wasn’t collapsing my game-map down to a single buffered model properly.

My mistake :slight_smile: