我有这个方法(InvertPolygonMesh),它基本上采用一个数组(我的VBO)并反转沿Z轴的所有顶点。单击按钮(IBAction)直接调用此方法。现在由于一些奇怪的原因,VBO在第一次点击时不会改变,但在第一次点击之后每次后续点击都会反转。
为什么第一次点击没有更新?
方法如下:
-(void)InvertPolygonMesh
{
NSLog(@"Invert mesh data.");
glBindBuffer(GL_ARRAY_BUFFER, _vertexBufferPhoto);
glBufferData(GL_ARRAY_BUFFER, sizeof(g_meshVertexData), g_meshVertexData, GL_DYNAMIC_DRAW);
int index = 0;
bool edgeCase = false;
for (int row = 0; row < MAP_SIZE; row += STEP_SIZE)
{
for (int col = 0; col < MAP_SIZE; col += STEP_SIZE)
{
g_meshVertexData[index].vertex.z = 255 - g_meshVertexData[index].vertex.z;
++index;
}
}
}
答案 0 :(得分:2)
我通过在网格顶点更新后调用glBindBuffer和glBufferData函数来解决这个问题。已解决!!!