Загрузка вершин и рисование треугольника

This commit is contained in:
Ковалев Роман Евгеньевич 2022-07-18 15:27:09 +03:00 committed by R.E. Kovalev
parent 280a0b9f08
commit 3b46864cb3

View File

@ -154,6 +154,36 @@ 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}
};
// VAO
GLuint VertexArrayID;
glGenVertexArrays(1, &VertexArrayID); // Генерация одного объекта массива вершин
glBindVertexArray(VertexArrayID); // Привязка для использования
// VBO
GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer); // Генерация одного объекта буфера вершин
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); // Привязка буфера вершин к используемому VAO
// Загрузка вершин в используемый буфер вершин
glBufferData(GL_ARRAY_BUFFER, sizeof(verticies), verticies, GL_STATIC_DRAW);
// Включаем необходимый атрибут у выбранного VAO
glEnableVertexAttribArray(0);
// Устанавливаем связь между VAO и привязанным VBO
glVertexAttribPointer( 0 // индекс атрибута, должен совпадать с Layout шейдера
, 3 // количество компонент одного элемента
, GL_FLOAT // тип
, GL_FALSE // нормализованность значений
, 0 // шаг
, (void *)0 // отступ с начала массива
);
// Установка цвета очистки буфера цвета
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
@ -164,7 +194,9 @@ int main(void)
glClear(GL_COLOR_BUFFER_BIT);
// Тут производится рендер
// ...
glBindVertexArray(VertexArrayID); // Привязка VAO для использования
glDrawArrays(GL_TRIANGLES, 0, 3); // Обработка вершин начиная с 0 в колличестве 3
glBindVertexArray(0); // Отключение VAO
// Представление содержимого буфера цепочки показа на окно
glfwSwapBuffers(window);