From 5cf5986169f16120f8eed9d9c5ed406ebe7e3f11 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 | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/Model.h b/include/Model.h index 32d6ff7..c2ca0b1 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, const glm::mat4& global_tranform = glm::mat4(1)); // Вызов отрисовки 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 7e25599..d942775 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -52,6 +52,19 @@ Model::~Model() } } +// Вызов отрисовки без uniform-даных +void Model::render() +{ + // Подключаем VAO + vao->use(); + // Если есть индексы - рисуем с их использованием + if (indices_count) + 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, const glm::mat4& global_tranform) { @@ -68,14 +81,7 @@ void Model::render(const GLuint &model_uniform, UBO &material_buffer, const glm: // Загружаем данные о материале material_buffer.load(&material, sizeof(material)); - // Подключаем VAO - vao->use(); - // Если есть индексы - рисуем с их использованием - if (indices_count) - glDrawElements(GL_TRIANGLES, indices_count, GL_UNSIGNED_INT, (void*)(first_index*sizeof(GLuint))); - // Если есть вершины - рисуем на основании массива вершин - else if (verteces_count) - glDrawArrays(GL_TRIANGLES, 0, verteces_count); + render(); } // Функция для конфигурации атрибута вершинного буфера