Hi,
I want to set a VAO for multiple buffer as shown here:
for (size_t i = 0; i < myMeshes.size(); i++)
{
glGenVertexArrays(1, &VAOArray[i]);
glBindVertexArray(VAOArray[i]);
/* GENERATE THE BUFFERS */
glGenBuffers(1, &bufferArray[i]);
/* SELECT THAT BUFFER TO WORK WITH */
glBindBuffer(GL_ARRAY_BUFFER, bufferArray[i]);
glBufferData(GL_ARRAY_BUFFER, myMeshes.at(j).realPositions.size() * sizeof(float), (GLfloat*)RealPos, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(0);
glGenBuffers(1, &colArray[i]);
glBindBuffer(GL_ARRAY_BUFFER, colArray[colorIndex]);
glBufferData(GL_ARRAY_BUFFER, myMeshes.at(j).realTextures.size() * sizeof(float), (GLfloat*)vertex_color, GL_STATIC_DRAW);
glEnableVertexAttribArray(1);
glGenTextures(1, &textureArray[i]);
glBindTexture(GL_TEXTURE_2D, textureArray[textureIndex]);
glBufferData(GL_ARRAY_BUFFER, myMeshes.at(j).realTextures.size() * sizeof(float), (GLfloat*)vertex_textcoord, GL_STATIC_DRAW);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(2);
glGenBuffers(1, &normalArray[i]);
glBindBuffer(GL_ARRAY_BUFFER, normalArray[i]);
glBufferData(GL_ARRAY_BUFFER, myMeshes.at(j).realNormals.size()*sizeof(float), (GLfloat*)RealNor, GL_STATIC_DRAW);
glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(3);
glBindVertexArray(0);
}
is it corret? or I have to set a VAO per buffer, I mean a VAO for the position, a VAO for the color, a VAO for the texture and a VAO for the normal?
Thanks