Вспомогательный метод render

This commit is contained in:
Ковалев Роман Евгеньевич 2022-11-23 14:25:36 +03:00 committed by R.E. Kovalev
parent 679074b4c0
commit 881e70a91c
2 changed files with 18 additions and 11 deletions

View File

@ -41,6 +41,7 @@ class Model : public Movable
Model(); // Конструктор без параметров
Model(const Model& copy); // Конструктор копирования
~Model();
void render(); // Вызов отрисовки без uniform-даных
void render(const GLuint &model_uniform, UBO &material_buffer); // Вызов отрисовки
void load_verteces(glm::vec3* verteces, GLuint count); // Загрузка вершин в буфер
void load_indices(GLuint* indices, GLuint count); // Загрузка индексов в буфер

View File

@ -28,6 +28,22 @@ Model::~Model()
}
// Вызов отрисовки без uniform-даных
void Model::render()
{
// Подключаем VAO
vao.use();
// Если есть индексы - рисуем с их использованием
if (indices_count)
{
index_vbo.use();
glDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, (void*)(first_index*sizeof(GLuint)));
}
// Если есть вершины - рисуем на основании массива вершин
else if (verteces_count)
glDrawArrays(GL_TRIANGLES, 0, verteces_count);
}
// Вызов отрисовки
void Model::render(const GLuint &model_uniform, UBO &material_buffer)
{
@ -44,17 +60,7 @@ void Model::render(const GLuint &model_uniform, UBO &material_buffer)
// Загружаем данные о материале
material_buffer.load(&material, sizeof(material));
// Подключаем VAO
vao.use();
// Если есть индексы - рисуем с их использованием
if (indices_count)
{
index_vbo.use();
glDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, (void*)(first_index*sizeof(GLuint)));
}
// Если есть вершины - рисуем на основании массива вершин
else if (verteces_count)
glDrawArrays(GL_TRIANGLES, 0, verteces_count);
render();
}
// Функция для конфигурации атрибута вершинного буфера