Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
lighting.h
1#ifndef OE_SCENE_LIGHTING_H
2#define OE_SCENE_LIGHTING_H
3
4#include <array>
5#include <vector>
6#include <glm/vec3.hpp>
7#include <glm/mat4x4.hpp>
8
9namespace oe::scene
10{
15 {
19 glm::vec3 position = glm::vec3(0.0);
20
24 glm::vec3 color = glm::vec3(1.0);
25
29 bool is_active = true;
30 };
31
35 struct AreaLight
36 {
40 glm::vec3 color = glm::vec3(1.0);
41
46
50 bool is_active = true;
51
57 std::array<glm::vec3, 4> points;
58 };
59
65 struct Lighting
66 {
67 std::vector<PointLight> point_lights;
68 std::vector<AreaLight> area_lights;
69 };
70}
71
72#endif
Scene related management (Render-agnostic Geometry, Manger, etc...)
Definition debug.h:19
Realistic light that emits from a rectangle shape (example: screens, neons)
Definition lighting.h:36
std::array< glm::vec3, 4 > points
Light quad bounds (in world space)
Definition lighting.h:57
bool double_sided
Does the light should be displayed on both sides.
Definition lighting.h:45
glm::vec3 color
Light color.
Definition lighting.h:40
bool is_active
Is the light on.
Definition lighting.h:50
Lighting manager (scene)
Definition lighting.h:66
Light that emits from a point in all directions.
Definition lighting.h:15
glm::vec3 color
Light color.
Definition lighting.h:24
glm::vec3 position
Light position.
Definition lighting.h:19
bool is_active
Is the light on.
Definition lighting.h:29