Параллельный источник

This commit is contained in:
2022-12-20 16:02:31 +03:00
parent 7793d7c05c
commit ac1d6be8c4
4 changed files with 103 additions and 0 deletions

View File

@@ -63,4 +63,27 @@ class Light : public Node
static Light lights[MAX_LIGHTS]; // Массив источников-узлов сцены
};
// Класс направленного источника освещения
class Sun
{
public:
static Sun& get(); // Доступ к синглтону
static void upload(UBO& sun_data); // Загрузка данных об источнике в буфер
const glm::vec3& c_direction() const; // Константный доступ к направлению лучей источника
glm::vec3& e_direction(); // Неконстантная ссылка для изменений направления лучей источника
const glm::vec3& c_color() const; // Константный доступ к цвету
glm::vec3& e_color(); // Неконстантная ссылка для изменений цвета
private:
Sun(const glm::vec3 &direction = glm::vec3(0.0f, -1.0f, 0.0f), const glm::vec3 &color = glm::vec3(0.4f, 0.4f, 0.4f));
alignas(16) glm::vec3 direction; // Направление лучей источника
alignas(16) glm::vec3 color; // Цвет
static Sun instance; // Экземпляр синглтона
static bool uploadReq; // Необходимость загрузки в следствии изменений
};
#endif // LIGHTS_H