diff --git a/src/main.cpp b/src/main.cpp index 9839425..6380e4b 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -156,9 +156,10 @@ int main(void) glUseProgram(shaderProgram); // Вершины треугольника - glm::vec3 verticies[] = { {-1.0f, -1.0f, 0.0f} - , { 1.0f, -1.0f, 0.0f} - , { 0.0f, 1.0f, 0.0f} + glm::vec3 verticies[] = { {-0.5f, -0.5f, 0.0f} + , { 0.5f, -0.5f, 0.0f} + , { 0.5f, 0.5f, 0.0f} + , {-0.5f, 0.5f, 0.0f} }; // VAO @@ -166,7 +167,7 @@ int main(void) glGenVertexArrays(1, &VertexArrayID); // Генерация одного объекта массива вершин glBindVertexArray(VertexArrayID); // Привязка для использования - // VBO + // VBO вершинный GLuint vertexbuffer; glGenBuffers(1, &vertexbuffer); // Генерация одного объекта буфера вершин glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); // Привязка буфера вершин к используемому VAO @@ -184,6 +185,18 @@ int main(void) ); // Включаем необходимый атрибут у выбранного VAO 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); @@ -196,7 +209,7 @@ int main(void) // Тут производится рендер 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 // Представление содержимого буфера цепочки показа на окно