10/include/Lights.h

32 lines
1.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef LIGHTS_H
#define LIGHTS_H
#include <GLM/glm.hpp>
#include <vector>
#include "Model.h"
// Максимальное число источников света
#define MAX_LIGHTS 300
// Класс лампочки (точечный источник с возможностью отладочного вывода)
class Bulb
{
public:
Bulb(const glm::vec3 &pos = glm::vec3(0.0f, 0.0f, 0.0f), const glm::vec3 &color = glm::vec3(0.0f, 0.0f, 0.0f), float radius = 10.0f, float angle = 180, const glm::vec3 &direction = glm::vec3(0,0,1)); // Конструктор с координатами, цветом, радиусом и направлением
void render(ShaderProgram &shaderProgram, UBO &material_buffer); // Отрисовка отладочной лампы и сферы
alignas(16) glm::vec3 position; // Позиция
alignas(16) glm::vec3 color; // Цвет
void setRadius(float radius); // Задание радиуса и расчет коэф. угасания
float angle; // Угол освещенности
alignas(16) glm::vec3 direction; // Направление для прожектора
private:
float radius; // Радиус действия источника
glm::vec2 K; // линейный и квадратичный компоненты затухания
static GrouptedModel bulb_model;
};
#endif // LIGHTS_H