2013-05-21 52 views
1

我有这种方法(InvertPolygonMesh),它基本上需要一个数组(我的VBO)并沿Z轴反转所有顶点。这个方法直接通过点击一个按钮(IBAction)来调用。现在由于某种奇怪的原因,VBO在第一次点击时没有改变,但是在第一次点击之后的每一次点击都会颠倒过来。为什么我的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

已解决。见下面的答案。 – AlvinfromDiaspar

+0

你为什么发布一个问题,然后立即删除它? – Doorknob

回答

2

通过调用glBindBuffer和glBufferData功能AFTER网格顶点已被更新固定这一点。解决 !!!

相关问题