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

This commit is contained in:
parent eb898b21ad
commit ab9ca847f7
1 changed files with 33 additions and 1 deletions

View File

@ -155,6 +155,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);
// Определим спецификацию атрибута
glVertexAttribPointer( 0 // индекс атрибута, должен совпадать с Layout шейдера
, 3 // количество компонент одного элемента
, GL_FLOAT // тип
, GL_FALSE // необходимость нормировать значения
, 0 // шаг
, (void *)0 // отступ с начала массива
);
// Включаем необходимый атрибут у выбранного VAO
glEnableVertexAttribArray(0);
// Установка цвета очистки буфера цвета
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
@ -165,7 +195,9 @@ int main(void)
glClear(GL_COLOR_BUFFER_BIT);
// Тут производится рендер
// ...
glBindVertexArray(VertexArrayID); // Привязка VAO для использования
glDrawArrays(GL_TRIANGLES, 0, 3); // Обработка вершин начиная с 0 в колличестве 3
glBindVertexArray(0); // Отключение VAO
// Представление содержимого буфера цепочки показа на окно
glfwSwapBuffers(window);