VAO - это объект Vertex Array, а VBO - объект Vertex Buffer. Призывы к созданию и привязке / отмене привязки 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);
Я следовал некоторым учебникам по inte rnet, и они говорят, что VBO привязан к VAO, но в приведенном выше коде я не понимаю, как устанавливается "соединение" или "привязка" между VBO и VAO? Я имею в виду, как мы узнаем, какой VBO связан с каким VAO и что, если VBO должен быть связан с несколькими VAO?
Итак, основной вопрос c заключается в следующем: что означает, что VBO связан с VAO, как мы узнаем, какой VBO связан с каким VAO и как устанавливается это связывание?