1

我有这个方法(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;
        }
    }
}
4

1 回答 1

2

在网格顶点更新后,我通过调用 glBindBuffer 和 glBufferData 函数解决了这个问题。解决 !!!

于 2013-05-21T05:38:03.003 回答