如何在opengles中更改glDrawArrays方法中使用的vertexbuffer的内容

emr*_*mre 3 3d opengl-es

我有一些三角形多边形并以传统方式绘制它们:(android-java code)

gl.glDrawArrays(GL10.GL_TRIANGLES, i, j);
Run Code Online (Sandbox Code Playgroud)

我想更新三角形的顶点坐标.我发现的所有教程都使用初始顶点数据,然后只对它们应用变换.我需要独立改变每个顶点坐标.

我更改了用于创建相关顶点缓冲区的数组的内容,但它不会在屏幕上进行任何更改.我想,在每个帧上重建顶点缓冲似乎不正确.

如果你知道的话,至少可以指出任何示例源代码吗?

Jer*_*fin 6

你似乎在寻找glBufferSubData.基本上,您正如您所描述的那样更新数组的内容,然后调用glBufferSubData使用新值更新顶点缓冲区对象.

这假设您只修改了相对较小的数据子集.如果您要修改大部分数据,通常最好glBufferData再次调用.