Источник как часть сцены
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <GLM/glm.hpp>
|
||||
|
||||
#include "Buffers.h"
|
||||
#include "Model.h"
|
||||
|
||||
// Максимальное число источников света
|
||||
#define MAX_LIGHTS 300
|
||||
@@ -16,12 +16,25 @@ struct LightData
|
||||
};
|
||||
|
||||
// Источник света
|
||||
class Light
|
||||
class Light : public Node
|
||||
{
|
||||
public:
|
||||
static int getUBOsize(); // Возвращает размер буфера в байтах
|
||||
static void upload(UBO& lights_data); // Загрузка данных в буфер
|
||||
|
||||
const glm::vec3& c_color() const; // Константный доступ к цвету
|
||||
glm::vec3& e_color(); // Неконстантная ссылка для изменений цвета
|
||||
private:
|
||||
glm::vec3 color; // Цвет
|
||||
|
||||
int index; // Индекс в массиве отправки (может не совпадать с lights) для дефрагментированного доступа
|
||||
|
||||
bool uploadReq; // Необходимость загрузки в следствии изменений
|
||||
void check_id(); // Проверка что не взаимодествуем с пустым источником
|
||||
void toData(); // Преобразует информацию об источнике в структуру LightData
|
||||
|
||||
virtual void recalcMatrices(); // Метод пересчета матрицы трансформации по необходимости, должен сбрасывать флаг changed
|
||||
|
||||
static GLuint count; // количество используемых источников (должно быть <= MAX_LIGHTS)
|
||||
static LightData data[MAX_LIGHTS]; // Массив данных по источникам света
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user