我完全害怕java中有多难......
我正在使用OpenGL ES 2.0,它要求我在这里和那里传递缓冲区。
想象一下,我存储了一个对象矢量。每个对象存储许多东西,以及它存储的顶点。它看起来像这样:
class MyObject {
Vector<Float> vertices;
}
Vector<MyObject> objects;
现在,我需要将它们转换为Buffer(FloatBuffer,我猜)。我试图做很多事情,但似乎没有一个接近快/他们是愚蠢的,可能无法正常工作。
有人能告诉我正确的方法吗?
@EDIT
只是为了澄清 - 我需要一个缓冲区来保存来自所有对象的所有顶点。
伪代码:
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
答案 0 :(得分:0)
如何使用wrap方法?
float[] values = new float[vertices.size()];
int index = 0;
for (Float f : vertices) {
values[index++] = f;
}
FloatBuffer b = FloatBuffer.wrap(values);