Vao służy do przechowywania wierzchołków, a vbo do buforów.
Tutaj część mojego api. (Komentarze po angielsku były już wcześniej, to tylko kopiuj wklej)
glGenBuffers(1, &vbo); //zapisuje ile jest wolnych buforów, podajemy ile chcemy buforów //note how many is free buffers, we write how many do we want buffers
glBindBuffer(GL_ARRAY_BUFFER, vbo); //podajemy cel, czyli co chcemy z tą zmienną zrobić //we write objectiwe, or what do we want to do with it
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * board.size(), board.data(), GL_STATIC_DRAW); //podajemy rozmiar, ttablicę, i co chcemy z tymi wierzchołkami zrobić //we write: size, board with vertices, and what do we want to do
glGenVertexArrays(1, &vao); //działa jak glGenBuffers, ale na wierzchołki //work like glGenBuffers, but on vertices
glBindVertexArray(vao); //uaktywanie wierzchołki //enable vertices
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL); //po kolei: indeks, ile wymiarów, typ danych, normalizacja //index, how many dimensions, data type, normalization
glEnableVertexAttribArray(0); //uaktywniamy index //we enabled index
Tutaj masz link do książki z openglem w pdf: http://www.speedyshare.com/bdu8d/Kurs-OpenGL.pdf