4

VAO は Vertex Array Object で、VBO は Vertex Buffer Object です。VAO と VBO の作成とバインド/バインド解除の呼び出しには、以下に示す一般的な形式があります。

GLuint VAO, VBO;
glGenVertexArrays(1, &VAO);
    glBindVertexArray(VAO);

        glGenBuffers(1, &VBO);
        glBindBuffer(GL_ARRAY_BUFFER, VBO);
            glBufferData(GL_ARRAY_BUFFER, 
                            sizeof(GLfloat)* 9,
                            vertices,
                            GL_STATIC_DRAW);
            glVertexAttribPointer(0,
                    3, GL_FLOAT, GL_FALSE,
                    0, 0);
            glEnableVertexAttribArray(0);

        glBindBuffer(GL_ARRAY_BUFFER, 0);
    glBindVertexArray(0);    

私はインターネット上のいくつかのチュートリアルに従いました.VBOはVAOにバインドされていると言われていますが、上記のコードでは、VBOとVAOの間で「接続」または「バインディング」がどのように確立されるかわかりません? つまり、どの VBO がどの VAO にバインドされているか、また VBO が複数の VAO にバインドされている場合はどうすればよいのでしょうか?

したがって、基本的な質問は次のとおりです。VBO が VAO にバインドされているとはどういう意味ですか。どの VBO がどの VAO にバインドされているかをどのように知ることができ、このバインドがどのように確立されるのでしょうか。

4

1 に答える 1