-1

複数のメッシュを含む単一の VBO を表すために単一の VAO を使用しようとしています。今私は持っています:

    glVertexArrayElementBuffer ( vertexArray, buffer );
    glVertexArrayVertexBuffer ( vertexArray, positionLocation, buffer, 0, 3 * sizeof ( float ) );
    glVertexArrayVertexBuffer ( vertexArray, normalLocation, buffer, (objectVertexBytes + objectIndexBytes), 3 * sizeof ( float ) ); // Issue 2

ソースの詳細はこちら: http://pastebin.com/PDuk3fDu

私の問題は主にスニペットの最後の行にあると思います。

同じ VBO に 2 つの異なるメッシュを詰め込むことができると思いましたか? バッファ ソースを設定するときに、一見 1 つの状態しか設定できない場合、どのようにそれが可能でしょうか?

バインディングは比較的高価な作業であるため、VBOごとに1つのVAOを持つことは非常に非効率的であると読んだため、私はこの問題を経験しています。また、同様のニーズを持つメッシュを同じ VBO に保存することをお勧めします。

4

1 に答える 1

0

インデックス バッファーと頂点データ (読み取り: 属性) バッファー VBO を混在させないでください。

要約すれば:

VBO 1
Mesh 1 indices + Mesh 2 indices

(Of course you could separate out Mesh 1 and Mesh 2 here if you'd like)

VBO 2
Mesh 1 Attributes (Vertex, Normal, etc.)
Mesh 2 Attributes (Vertex, Normal, etc.)
于 2015-07-13T20:32:54.553 に答える