Вспомогательный метод render
This commit is contained in:
parent
679074b4c0
commit
881e70a91c
@ -41,6 +41,7 @@ class Model : public Movable
|
|||||||
Model(); // Конструктор без параметров
|
Model(); // Конструктор без параметров
|
||||||
Model(const Model& copy); // Конструктор копирования
|
Model(const Model& copy); // Конструктор копирования
|
||||||
~Model();
|
~Model();
|
||||||
|
void render(); // Вызов отрисовки без uniform-даных
|
||||||
void render(const GLuint &model_uniform, UBO &material_buffer); // Вызов отрисовки
|
void render(const GLuint &model_uniform, UBO &material_buffer); // Вызов отрисовки
|
||||||
void load_verteces(glm::vec3* verteces, GLuint count); // Загрузка вершин в буфер
|
void load_verteces(glm::vec3* verteces, GLuint count); // Загрузка вершин в буфер
|
||||||
void load_indices(GLuint* indices, GLuint count); // Загрузка индексов в буфер
|
void load_indices(GLuint* indices, GLuint count); // Загрузка индексов в буфер
|
||||||
|
@ -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)
|
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));
|
material_buffer.load(&material, sizeof(material));
|
||||||
|
|
||||||
// Подключаем VAO
|
render();
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Функция для конфигурации атрибута вершинного буфера
|
// Функция для конфигурации атрибута вершинного буфера
|
||||||
|
Loading…
x
Reference in New Issue
Block a user