10/include/Lights.h

30 lines
1.2 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); // Конструктор с координатами, цветом и радиусом
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