新しい (OpenGL 4.3 以降) glBindVertexBuffer メカニズムを使用して、2 つの VAO を設定するとします。
glGenVertexArrays(1, &vaoIndex0);
glGenVertexArrays(1, &vaoIndex1);
...
glBindVertexArray(vaoIndex0)
glBindVertexBuffer(bindingIndex0, ...)
glEnableVertexAttribArray(0)
glVertexAttribFormat(0, ...)
glVertexAttribBinding(0, bindingIndex0)
...
glBindVertexArray(0)
...
glBindVertexArray(vaoIndex1)
glBindVertexBuffer(bindingIndex1, ...)
glEnableVertexAttribArray(0)
glVertexAttribFormat(0, ...)
glVertexAttribBinding(0, bindingIndex1)
...
glBindVertexArray(0)
そして、同じ OpenGL コンテキストに存在する場合を除いて、2 つが独立しているとします。それらは異なるバッファーをバインドし、異なるものを描画するために使用されます。
bindingIndex0 は bindingIndex1 と異なる必要がありますか? 2 つの指標が等しい (または等しくない) ことには、まったく意味がありますか?
...
編集:
回答を受け取った後、「頂点バッファー バインディング ポイント」とは何か、特にその範囲を実際に知っている人にとって、私の質問は私が意図したものとは異なることを尋ねているように見えるかもしれないことを理解し始めました。おそらく、より適切な言い回しは、「競合を防ぐために、複数の VAO 間であっても、OpenGL 頂点バッファー バインディング ポイントインデックスが再利用されるのを防ぐために、自分のやり方を変える必要がありますか?」でした。しかし、とにかく、両方の質問に答えたようです: いいえ、「バインディング ポイント」を再利用することはできません。また、インデックスの競合をそのように回避する必要はありません。