30 lines
1.2 KiB
C++
30 lines
1.2 KiB
C++
#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); // Конструктор с координатами, цветом и радиусом
|
||
|
||
void render(ShaderProgram &shaderProgram, UBO &material_buffer); // Отрисовка отладочной лампы и сферы
|
||
|
||
alignas(16) glm::vec3 position; // Позиция
|
||
alignas(16) glm::vec3 color; // Цвет
|
||
void setRadius(float radius); // Задание радиуса и расчет коэф. угасания
|
||
private:
|
||
float radius; // Радиус действия источника
|
||
glm::vec2 K; // линейный и квадратичный компоненты затухания
|
||
static GrouptedModel bulb_model;
|
||
};
|
||
|
||
#endif // LIGHTS_H
|