From 1c90e5ecd7026fbd7336e15d8cc0e7b173966c81 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 | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8f14e07..35dff72 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -155,9 +155,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 @@ -165,7 +166,7 @@ int main(void) glGenVertexArrays(1, &VertexArrayID); // Генерация одного объекта массива вершин glBindVertexArray(VertexArrayID); // Привязка для использования - // VBO + // VBO вершинный GLuint vertexbuffer; glGenBuffers(1, &vertexbuffer); // Генерация одного объекта буфера вершин glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); // Привязка буфера вершин к используемому VAO @@ -175,6 +176,7 @@ int main(void) // Включаем необходимый атрибут у выбранного VAO glEnableVertexAttribArray(0); + // Устанавливаем связь между VAO и привязанным VBO glVertexAttribPointer( 0 // индекс атрибута, должен совпадать с Layout шейдера , 3 // количество компонент одного элемента @@ -183,6 +185,18 @@ int main(void) , 0 // шаг , (void *)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); @@ -195,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 // Представление содержимого буфера цепочки показа на окно