From 881e70a91c94b2bb09d41ffc50af641e71e09558 Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Wed, 23 Nov 2022 14:25:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=81=D0=BF=D0=BE=D0=BC=D0=BE=D0=B3?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=20render?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/Model.h | 1 + src/Model.cpp | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/include/Model.h b/include/Model.h index d5529e5..d5ad488 100644 --- a/include/Model.h +++ b/include/Model.h @@ -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); // Загрузка индексов в буфер diff --git a/src/Model.cpp b/src/Model.cpp index 0de8d32..beb5d5f 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -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(); } // Функция для конфигурации атрибута вершинного буфера