Элементный буфер

This commit is contained in:
parent ab9ca847f7
commit 0a2b7623fb
1 changed files with 18 additions and 5 deletions

View File

@ -156,9 +156,10 @@ int main(void)
glUseProgram(shaderProgram); glUseProgram(shaderProgram);
// Вершины треугольника // Вершины треугольника
glm::vec3 verticies[] = { {-1.0f, -1.0f, 0.0f} glm::vec3 verticies[] = { {-0.5f, -0.5f, 0.0f}
, { 1.0f, -1.0f, 0.0f} , { 0.5f, -0.5f, 0.0f}
, { 0.0f, 1.0f, 0.0f} , { 0.5f, 0.5f, 0.0f}
, {-0.5f, 0.5f, 0.0f}
}; };
// VAO // VAO
@ -166,7 +167,7 @@ int main(void)
glGenVertexArrays(1, &VertexArrayID); // Генерация одного объекта массива вершин glGenVertexArrays(1, &VertexArrayID); // Генерация одного объекта массива вершин
glBindVertexArray(VertexArrayID); // Привязка для использования glBindVertexArray(VertexArrayID); // Привязка для использования
// VBO // VBO вершинный
GLuint vertexbuffer; GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer); // Генерация одного объекта буфера вершин glGenBuffers(1, &vertexbuffer); // Генерация одного объекта буфера вершин
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); // Привязка буфера вершин к используемому VAO glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); // Привязка буфера вершин к используемому VAO
@ -185,6 +186,18 @@ int main(void)
// Включаем необходимый атрибут у выбранного VAO // Включаем необходимый атрибут у выбранного VAO
glEnableVertexAttribArray(0); glEnableVertexAttribArray(0);
// индексы вершин
GLuint indices[] = {0, 1, 2, 2, 3, 0};
// VBO элементный (индексы вершин)
GLuint elementbuffer;
glGenBuffers(1, &elementbuffer); // Генерация одного объекта буфера вершин
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementbuffer); // Привязка элементного буфера
// Загрузка индексов в используемый элементныйбуфер
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
// Установка цвета очистки буфера цвета // Установка цвета очистки буфера цвета
glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
@ -196,7 +209,7 @@ int main(void)
// Тут производится рендер // Тут производится рендер
glBindVertexArray(VertexArrayID); // Привязка VAO для использования glBindVertexArray(VertexArrayID); // Привязка VAO для использования
glDrawArrays(GL_TRIANGLES, 0, 3); // Обработка вершин начиная с 0 в колличестве 3 glDrawElements(GL_TRIANGLES, sizeof(indices)/sizeof(GLuint), GL_UNSIGNED_INT, (void*)0);
glBindVertexArray(0); // Отключение VAO glBindVertexArray(0); // Отключение VAO
// Представление содержимого буфера цепочки показа на окно // Представление содержимого буфера цепочки показа на окно