Загрузка вершин и рисование треугольника
This commit is contained in:
parent
280a0b9f08
commit
3b46864cb3
34
src/main.cpp
34
src/main.cpp
@ -154,6 +154,36 @@ int main(void)
|
|||||||
// Активация шейдера
|
// Активация шейдера
|
||||||
glUseProgram(shaderProgram);
|
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);
|
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
@ -164,7 +194,9 @@ int main(void)
|
|||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
// Тут производится рендер
|
// Тут производится рендер
|
||||||
// ...
|
glBindVertexArray(VertexArrayID); // Привязка VAO для использования
|
||||||
|
glDrawArrays(GL_TRIANGLES, 0, 3); // Обработка вершин начиная с 0 в колличестве 3
|
||||||
|
glBindVertexArray(0); // Отключение VAO
|
||||||
|
|
||||||
// Представление содержимого буфера цепочки показа на окно
|
// Представление содержимого буфера цепочки показа на окно
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user