Using libGDX, sprites or simply texture regions must be inserted into the batch for drawing:
void render()
{
batch.begin();
batch.draw(...);
batch.end();
}
Is the VBO being uploaded to the GPU in every frame? Is there a way to reuse the batch once any of the data changed?