1

基本的に配列(私のVBO)を取り、Z軸に沿ってすべての頂点を反転させるこのメソッド(InvertPolygonMesh)があります。このメソッドは、ボタン (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 に答える