0

私は GLKit (OpenGL ES 2) を使用して iOS 用のゲームを作成していますが、VBO と VAO を使用するとパフォーマンスが大幅に向上すると思われるため、VBO と VAO を使用したいと考えています (そして、Instruments はアプリをテストするときにそれを推奨しています)。

実際には位置、サイズ、テクスチャなどを変更しないテクスチャ オブジェクトがたくさんあるので、VBO が役立つと思います。

現時点では、GLKVector2 の配列を使用して頂点とテクスチャの座標データを格納していますが、ここから VBO に移動する方法がよくわかりません。

誰でもこれを手伝ってもらえますか?

乾杯、ニック。

4

1 に答える 1

0

glBufferData ()次のように、直接 に渡すことができます。

GLKVector2    objects[k];
// ... Fill out your objects vertices in objects
GLuint buffer = 0;
glGenBuffers (1, &buffer);
glBindBuffer (GL_ARRAY_BUFFER, buffer);
glBufferData (GL_ARRAY_BUFFER, sizeof (objects), objects, GL_STATIC_DRAW);
glEnableClientState (GL_VERTEX_ARRAY);
glVertexPointer (2, GL_FLOAT, sizeof (GLKVertex2), 0);

これにより、OpenGL にバッファーを生成してバインドするように指示されます。glBufferData()実際にカードにアップロードします。への呼び出しglVertexPointer ()は、配列内の頂点のプルを開始する場所を示します。VBO を使用している場合、最後のパラメーターのポインターはオフセットになります。

編集: 申し訳ありませんが、いくつかの詳細を記入してください。脳のおならがありました。詳しくはこちらをご覧ください。

于 2012-04-08T02:22:00.540 に答える