Castor3D
..
|
Implémentation d'un système de particules. Plus de détails...
Classes | |
class | TextWriter |
Loader de ParticleSystem. Plus de détails... | |
Fonctions membres publiques | |
C3D_API | ParticleSystem (Castor::String const &p_name, Scene &p_scene, SceneNodeSPtr p_parent, size_t p_count) |
Constructeur. Plus de détails... | |
C3D_API | ~ParticleSystem () |
Destructeur. Plus de détails... | |
C3D_API bool | Initialise () |
Initialise les elements GPU. Plus de détails... | |
C3D_API void | Cleanup () |
Nettoie les elements GPU. Plus de détails... | |
C3D_API void | Update () |
Met à jour les particules. Plus de détails... | |
C3D_API void | SetMaterial (MaterialSPtr p_value) |
Definit le materiau. Plus de détails... | |
C3D_API void | SetDimensions (Castor::Size const &p_value) |
Definit les dimensions des particules. Plus de détails... | |
C3D_API void | SetParticleType (Castor::String const &p_value) |
Definit le nom du type de particules. Plus de détails... | |
C3D_API MaterialSPtr | GetMaterial () const |
C3D_API Castor::Size const & | GetDimensions () const |
C3D_API void | AddParticleVariable (Castor::String const &p_name, ElementType p_type, Castor::String const &p_defaultValue) |
Ajoute une variable de particule. Plus de détails... | |
C3D_API void | SetTFUpdateProgram (ShaderProgramSPtr p_program) |
Définit le programme utilisé pour mettre à jour les particules via le transform feedback. Plus de détails... | |
C3D_API void | SetCSUpdateProgram (ShaderProgramSPtr p_program) |
Définit le programme utilisé pour mettre à jour les particules via un compute shader. Plus de détails... | |
C3D_API uint32_t | GetParticlesCount () const |
C3D_API size_t | GetMaxParticlesCount () const |
BillboardBaseSPtr | GetBillboards () const |
Castor::StrStrMap const & | GetDefaultValues () const |
Castor::String const & | GetParticleType () const |
BufferDeclaration const & | GetParticleVariables () const |
Fonctions membres publiques hérités de Castor3D::MovableObject | |
C3D_API | MovableObject (Castor::String const &p_name, Scene &p_scene, MovableType p_type, SceneNodeSPtr p_sn) |
Constructeur. Plus de détails... | |
virtual C3D_API | ~MovableObject () |
Destructeur. Plus de détails... | |
C3D_API void | Detach () |
Détache l'objet de son parent. Plus de détails... | |
virtual C3D_API void | AttachTo (SceneNodeSPtr p_node) |
Attache l'object à un noeud. Plus de détails... | |
SceneNodeSPtr | GetParent () const |
Récupère le noeud parent. Plus de détails... | |
MovableType | GetType () const |
Récupère le type d'objet. Plus de détails... | |
Fonctions membres publiques hérités de Castor3D::Animable | |
C3D_API void | CleanupAnimations () |
Vid ela map d'animations. Plus de détails... | |
C3D_API bool | HasAnimation (Castor::String const &p_name) const |
Récupère une animation. Plus de détails... | |
C3D_API Animation const & | GetAnimation (Castor::String const &p_name) const |
Récupère une animation. Plus de détails... | |
C3D_API Animation & | GetAnimation (Castor::String const &p_name) |
Récupère une animation. Plus de détails... | |
AnimationPtrStrMap const & | GetAnimations () const |
Attributs protégés | |
Castor::String | m_particleType |
Castor::StrStrMap | m_defaultValues |
BufferDeclaration | m_inputs |
BufferDeclaration | m_billboardInputs |
BillboardBaseSPtr | m_particlesBillboard |
Castor::Size | m_dimensions |
MaterialWPtr | m_material |
size_t | m_particlesCount { 0u } |
uint32_t | m_activeParticlesCount { 0u } |
uint32_t | m_centerOffset { 0u } |
Castor::PreciseTimer | m_timer |
bool | m_firstUpdate { true } |
std::chrono::milliseconds | m_totalTime { 0 } |
CpuParticleSystemUPtr | m_cpuImpl |
TransformFeedbackParticleSystemUPtr | m_tfImpl |
ComputeParticleSystemUPtr | m_csImpl |
ParticleSystemImpl * | m_impl { nullptr } |
Attributs protégés hérités de Castor3D::MovableObject | |
MovableType | m_type |
Castor::String | m_strNodeName |
SceneNodeWPtr | m_sceneNode |
SceneNode::OnChanged::connection | m_notifyIndex |
Attributs protégés hérités de Castor3D::Animable | |
AnimationPtrStrMap | m_animations |
Amis | |
class | TextWriter |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Castor3D::Animable | |
Animable (Scene &p_scene) | |
Constructeur. Plus de détails... | |
virtual | ~Animable () |
Destructeur. Plus de détails... | |
C3D_API | Animable (Animable &&p_rhs)=default |
Constructeur par déplacement. Plus de détails... | |
C3D_API Animable & | operator= (Animable &&p_rhs)=default |
Opérateur d'affectation par déplacement. Plus de détails... | |
C3D_API | Animable (Animable const &p_rhs)=delete |
Constructeur par copie. Plus de détails... | |
C3D_API Animable & | operator= (Animable const &p_rhs)=delete |
Opérateur d'affectation par copie. Plus de détails... | |
void | DoAddAnimation (AnimationSPtr &&p_animation) |
Ajoute une animation. Plus de détails... | |
template<typename Type > | |
Type & | DoGetAnimation (Castor::String const &p_name) |
Récupère une animation. Plus de détails... | |
Implémentation d'un système de particules.
C3D_API Castor3D::ParticleSystem::ParticleSystem | ( | Castor::String const & | p_name, |
Scene & | p_scene, | ||
SceneNodeSPtr | p_parent, | ||
size_t | p_count | ||
) |
Constructeur.
[in] | p_name | Le nom. |
[in] | p_scene | La scene parente. |
[in] | p_parent | Le noeud de scène parent. |
[in] | p_count | Le nombre de particules. |
C3D_API Castor3D::ParticleSystem::~ParticleSystem | ( | ) |
Destructeur.
C3D_API void Castor3D::ParticleSystem::AddParticleVariable | ( | Castor::String const & | p_name, |
ElementType | p_type, | ||
Castor::String const & | p_defaultValue | ||
) |
Ajoute une variable de particule.
[in] | p_name | Le nom de la variable. |
[in] | p_type | Le type de la variable. |
[in] | p_defaultValue | La valeur par défaut de la variable. |
C3D_API void Castor3D::ParticleSystem::Cleanup | ( | ) |
Nettoie les elements GPU.
|
inline |
Références m_particlesBillboard.
|
inline |
Références m_defaultValues.
C3D_API Castor::Size const& Castor3D::ParticleSystem::GetDimensions | ( | ) | const |
C3D_API MaterialSPtr Castor3D::ParticleSystem::GetMaterial | ( | ) | const |
|
inline |
Références m_particlesCount.
|
inline |
Références m_activeParticlesCount.
|
inline |
Références m_particleType.
|
inline |
Références m_inputs.
C3D_API bool Castor3D::ParticleSystem::Initialise | ( | ) |
Initialise les elements GPU.
true
si tout s'est bien passe C3D_API void Castor3D::ParticleSystem::SetCSUpdateProgram | ( | ShaderProgramSPtr | p_program | ) |
Définit le programme utilisé pour mettre à jour les particules via un compute shader.
[in] | p_program | Le programme. |
C3D_API void Castor3D::ParticleSystem::SetDimensions | ( | Castor::Size const & | p_value | ) |
Definit les dimensions des particules.
[in] | p_value | La nouvelle valeur. |
C3D_API void Castor3D::ParticleSystem::SetMaterial | ( | MaterialSPtr | p_value | ) |
Definit le materiau.
[in] | p_value | La nouvelle valeur |
C3D_API void Castor3D::ParticleSystem::SetParticleType | ( | Castor::String const & | p_value | ) |
Definit le nom du type de particules.
[in] | p_value | La nouvelle valeur. |
C3D_API void Castor3D::ParticleSystem::SetTFUpdateProgram | ( | ShaderProgramSPtr | p_program | ) |
Définit le programme utilisé pour mettre à jour les particules via le transform feedback.
[in] | p_program | Le programme. |
C3D_API void Castor3D::ParticleSystem::Update | ( | ) |
Met à jour les particules.
|
friend |
|
protected |
Le nombre de particules actives.
Référencé par GetParticlesCount().
|
protected |
La description des élément du tampon de sommets des billboards.
|
protected |
Le décalage de l'attribut du centre dans le tampon de sommets..
|
protected |
L'implémentation CPU.
|
protected |
L'implémentation utilisant un compute shader.
|
protected |
La map de valeur par défaut pour les variables.
Référencé par GetDefaultValues().
|
protected |
Les dimensions des billboards.
|
protected |
Dit que la prochaine mise à jour est la première.
|
protected |
L'implémentation choisie après initialisation.
|
protected |
La description des élément d'une particule.
Référencé par GetParticleVariables().
|
protected |
Le Material.
|
protected |
Les billboards contenant les particules.
Référencé par GetBillboards().
|
protected |
Le nombre de particules.
Référencé par GetMaxParticlesCount().
|
protected |
Le nom du type de particules.
Référencé par GetParticleType().
|
protected |
L'implémentation utilisant le transform feedback.
|
protected |
Le timer, pour la mise à jour des particules.
|
protected |
Le temps total écoulé.