OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
particlesystem.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include <glm/glm.hpp>
8
9#include "../ecs/system.hpp"
10#include "../ecs/component.hpp"
11#include "material.hpp"
12
13namespace Engine::Graphics {
19 struct Particle : public ECS::Component {
21 float lifetime = 0.0f;
23 float maxLifetime = 2.0f;
25 glm::vec3 velocity = {0.0f, 0.0f, 0.0f};
26
28 float size = 1.0f;
30 float initialOpacity = 1.0f;
31
33 bool fadeOut = true;
34 };
35
36
43 float emissionRate = 10.0f;
47 size_t maxParticles = 100;
49 bool active = true;
50
52 float particleMinLifetime = 2.0f;
54 float particleMaxLifetime = 2.0f;
55
60
65
70
72 float fadeOut = true;
75 };
76
81 class ParticleSystem : public ECS::System {
82 public:
94 void OnUpdate(float deltaTime) override;
95 };
96}
Classe Component à dériver pour pouvoir être utilisée dans les systèmes ECS.
Definition component.hpp:18
La classe System implémente une logique spécifique à des composants.
Definition system.hpp:24
La classe Material définit un "material" graphique utilisé pour le rendu de meshes texturés.
Definition material.hpp:38
La classe ParticleSystem gère le cycle de vie de tous les components de type "ParticleEmitter".
Definition particlesystem.hpp:81
void OnUpdate(float deltaTime) override
Callback d'upadte du système de particules.
Definition particlesystem.cpp:10
Définit un component de base dans le cadre d'un ECS.
Définit l'implémentation d'un Material.
Definition material.cpp:3
L'emetteur est en quelques sortes le "moteur" qui génère et gère les particules à l'écran Peut être c...
Definition particlesystem.hpp:41
float particleMaxInitialSize
La taille initiale maximale des particules de cet emetteur.
Definition particlesystem.hpp:64
float particleMinInitialOpacity
L'opacité minmale de la particule générée.
Definition particlesystem.hpp:67
float particleMaxInitialOpacity
L'opacité maximale de la particule générée.
Definition particlesystem.hpp:69
float particleMaxLifetime
La durée de vie maximale d'une particule de cet emetteur.
Definition particlesystem.hpp:54
size_t maxParticles
Le nombre maximal de particules que cet émetteur peut gérer simultanément.
Definition particlesystem.hpp:47
float particleMinInitialSpeed
La vitesse initiale minimale des particules de cet emetteur.
Definition particlesystem.hpp:57
bool active
Si faux, l'émetteur est inactif (et doit être ignoré par les systèmes de particules)
Definition particlesystem.hpp:49
float particleMinLifetime
La durée de vie minimale d'une particule de cet emetteur.
Definition particlesystem.hpp:52
float timeSinceLastEmission
Le temps (en secondes) depuis la dernière fois que l'émetteur à généré des particules.
Definition particlesystem.hpp:45
float particleMaxInitialSpeed
La vitesse initiale maximale des particules de cet emetteur.
Definition particlesystem.hpp:59
Material sourceMaterial
Le material à utiliser pour le rendu des particules de l'émetteur.
Definition particlesystem.hpp:74
float emissionRate
Le nombre de particules que l'émetteur génère à chaque seconde.
Definition particlesystem.hpp:43
float fadeOut
Fait disparaître la particule en fondu via l'opacité au cours du temps.
Definition particlesystem.hpp:72
float particleMinInitialSize
La taille initiale minimale des particules de cet emetteur.
Definition particlesystem.hpp:62
La particule est l'élément atomique du système de particules du moteur. Les émetteurs de particules i...
Definition particlesystem.hpp:19
float lifetime
La durée de vie ACTUELLE de la particule.
Definition particlesystem.hpp:21
float size
La taille de la particule (peut varier pour créer des effets visuels)
Definition particlesystem.hpp:28
glm::vec3 velocity
La vélocité de la particule (utilisée pour définir son comportement)
Definition particlesystem.hpp:25
float initialOpacity
L'opacité de la particule (peut varier pour créer des effets visuels)
Definition particlesystem.hpp:30
bool fadeOut
Active le fade out de la particule au cours de sa durée de vie.
Definition particlesystem.hpp:33
float maxLifetime
La durée de vie MAXIMALE de la particule (la particule est détruite quand lifetime >= maxLifetime)
Definition particlesystem.hpp:23
Définit la manière dont le Système se comporte dans l'architecture ECS.