在我的应用程序中,我必须使用 OpenGL 绘制多个元素,有些是三角形,有些是线条。每当我要绘制新形状时,我都会将我的顶点放入多个float[]
,并将我的索引放入多个。short[]
我还必须为每个新数组创建一个新的FloatBuffer
,以使其工作。我怎样才能更有效地绘制多个元素?我正在考虑将所有顶点放入一个单一的并为每个元素创建一个新的以删除多余的数组,但是是否可以使用一个,并将所有数组放入一个单一的,例如:ShortBuffer
ByteBuffer
float[]
short[]
FloatBuffer
ShortBuffer
ByteBuffer
float[] vertices = { -3, -3, -3, 2, 3, 0, 2, -1, 0, 0, 5, 2, 3, 1 };
short[] indItemA = { 0, 1, 2, 0, 2, 3 };
short[] indItemB = { 4, 5, 6 };
FloatBuffer fBuff;
ShortBuffer sBuff;
ByteBuffer bBuff = ByteBuffer.allocateDirect(vertices.length * 4);
fbBuff.order(ByteOrder.nativeOrder());
fBuff = bBuff.asFloatBuffer();
fBuff.put(vertices);
fBuff.position(0);
sBuff = bBuff.asShortBuffer();
sBuff.put(indItemA);
sBuff.position(0);
sBuff.put(indItemB);
sBuff.position(0);