Определение угла и рисование части отладочной сферы
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
|
||||
// Максимальное число источников света
|
||||
#define MAX_LIGHTS 300
|
||||
// Стандартное направление источника без поворота
|
||||
#define DEFAULT_LIGHT_DIRECTION glm::vec4(0.0f, 0.0f, 1.0f, 0.0f)
|
||||
|
||||
// Точечный источник света
|
||||
struct LightData
|
||||
@@ -14,6 +16,7 @@ struct LightData
|
||||
alignas(16) glm::vec3 position; // Позиция
|
||||
alignas(16) glm::vec3 color; // Цвет
|
||||
alignas(16) glm::vec3 attenuation; // Радиус действия источника, линейный и квадратичный коэф. угасания
|
||||
alignas(16) glm::vec4 direction_angle; // Направление и половинный угол освещенности
|
||||
};
|
||||
|
||||
// Источник света
|
||||
@@ -32,6 +35,9 @@ class Light : public Node
|
||||
const float& c_radius() const; // Константный доступ к радиусу
|
||||
float& e_radius(); // Неконстантная ссылка для изменений радиуса
|
||||
|
||||
const float& c_angle() const; // Константный доступ к углу освещенности
|
||||
float& e_angle(); // Неконстантная ссылка для изменений угла освещенности
|
||||
|
||||
static void render(ShaderProgram &shaderProgram, UBO &material_buffer); // Рисование отладочных лампочек
|
||||
private:
|
||||
Light(); // Конструктор без параметров
|
||||
@@ -41,6 +47,7 @@ class Light : public Node
|
||||
|
||||
glm::vec3 color; // Цвет
|
||||
float radius; // Радиус действия источника
|
||||
float angle; // Угол полный освещенности
|
||||
|
||||
int index; // Индекс в массиве отправки (может не совпадать с lights) для дефрагментированного доступа
|
||||
static Light& findByIndex(GLuint index); // Возвращает ссылку на источник с нужным индексом
|
||||
|
||||
Reference in New Issue
Block a user