0

我完全害怕它在java中有多难......

我正在使用 OpenGL ES 2.0,它需要我在这里和那里传递一个缓冲区。

想象一下,我存储了一个对象向量。每个对象存储许多东西,以及它存储的顶点。它看起来像这样:

class MyObject {
    Vector<Float> vertices;
}
Vector<MyObject> objects;

现在,我需要将它们转换为缓冲区(我猜是 FloatBuffer)。我尝试了很多方法,但似乎没有任何方法接近快速/它们很愚蠢并且可能不起作用。

有人可以告诉我正确的方法吗?

@编辑

只是为了澄清-我需要一个缓冲区来保存来自所有对象的所有顶点。

伪代码

float[] allvertices;
for(i = 0; i<objects.length; i++)
   for(n = 0; n<objects[i].vertices.length; n++)
       allvertices.add(objects[i].vertices[n]);
// Now convert allvertices to buffer
4

1 回答 1

0

使用 wrap 方法怎么样?

float[] values = new float[vertices.size()];
int index = 0;
for (Float f : vertices) {
    values[index++] = f;
}
FloatBuffer b = FloatBuffer.wrap(values);
于 2013-09-15T21:14:33.597 回答