From 0a2b7623fbd03b32c56e7481d9083f75b55bcca1 Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Mon, 18 Jul 2022 15:45:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D0=B1=D1=83=D1=84=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) 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 // Представление содержимого буфера цепочки показа на окно