2022-12-20 11:44:38 +00:00
|
|
|
#ifndef LIGHTS_H
|
|
|
|
#define LIGHTS_H
|
|
|
|
|
|
|
|
#include <GLM/glm.hpp>
|
|
|
|
|
2023-10-19 13:15:03 +00:00
|
|
|
#include "Buffers.h"
|
|
|
|
|
|
|
|
// Максимальное число источников света
|
|
|
|
#define MAX_LIGHTS 300
|
|
|
|
|
2022-12-20 11:44:38 +00:00
|
|
|
// Точечный источник света
|
|
|
|
struct LightData
|
|
|
|
{
|
|
|
|
alignas(16) glm::vec3 position; // Позиция
|
|
|
|
alignas(16) glm::vec3 color; // Цвет
|
|
|
|
};
|
|
|
|
|
2023-10-19 13:15:03 +00:00
|
|
|
// Источник света
|
|
|
|
class Light
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static int getUBOsize(); // Возвращает размер буфера в байтах
|
|
|
|
static void upload(UBO& lights_data); // Загрузка данных в буфер
|
|
|
|
|
|
|
|
static GLuint count; // количество используемых источников (должно быть <= MAX_LIGHTS)
|
|
|
|
static LightData data[MAX_LIGHTS]; // Массив данных по источникам света
|
|
|
|
};
|
|
|
|
|
2022-12-20 11:44:38 +00:00
|
|
|
#endif // LIGHTS_H
|