[EDIT 30 décembre 2008]
Le site web de SPARK est ici
[/EDIT]
Bonjour,
Je vous présente SPARK, un moteur de particule CPU orienté facilité d'utilisation, fonctionalités et modularité.
J'ai fait cette librairie d'abord pour me remettre au C++ après près de 3 ans de java et puis pour pouvoir le réutiliser dans d'autres projets. Je sais que la pertinance d'un tel projet peut être remise en cause dans la mesure ou la tendance est aux moteurs "tout en un". La c'est une approche différente. Comme il est modulaire il peut s'interfacer avec n'importe quel système.
J'ai essayé d'acces le moteur au maximum sur la facilité d'utilisation tout en étant le plus complet possible pour pouvoir mettre en place toutes sorte de système de particules (voir les démos plus bas). Bien sur tout ca a sans doute un petit coup sur les performances bien que celles ci restent très acceptables (plusieurs millions de particules/s sur une plateforme récente) même si pas au niveau d'un moteur de particules full GPU.
Les calculs sont du coté CPU et non GPU car son but n'est pas uniquement le rendu mais il peut servir également par exemple pour de la simulation (light tout de meme). Bref le choix du CPU est dans un soucis de versatilité.
En gros le moteur est basé sur un noyau de classes dont certaine abstraites peuvent être dérivé pour accroitre ses fonctionalités. C'est le cas par exemple des renderers (pour l'instant seuls des renderers openGL sont inclus), des modifiers (point de masse, obstacles...), des zones (sphere, aabox, plan...), et des emetteurs. De plus un système de call back sur les evenement (naissance, mort, update...) permet de gérer précisément ses particules si les fonctionalités de base sont absentes.
Pour l'instant je n'ai que des démos windows a vous montrer mais je mettrai la librairie et les sources à disposition quand j'aurai fait la doc d'ici quelques jours.
Les démos sont au nombre de 8 :
Pour toutes les démos, les touches sont :
- F1 : change l'affichage du texte
- F2 : affiche les boites englobantes des groupes de particules
- F3 : change le système de rendu (pour l'instant seulement mode immediat ou vertex arrays)
- Supp : reinitialise le systeme
- Esc : quitte l'application
on peut se déplacer a la souris et la molette sert a zoomer
Description des démos (réalisée en SDL et utilisant FTGL pour le texte) :
- basic demo : une simple fontaine de particule qui change de couleur
- collision demo : des particules rebondissent dans une piece contenant des caisses
- fire demo : un feu réaliste (espace permet d'activer ou non la fumée)
- fireworks demo : des feux d'artifice
- fountain demo : uen fontaine un peu plus réaliste que la précédente. (ne regarder pas les modele autour je ne suis pas graphiste
) (espace permet de passer a des graphisme low : le blending des particules met a mal la carte graphique lorsque l'on zoome)
- gravitation demo : un flux de particules est attirer par 2 autres particules de masse. Ca donne des mouvements assez jolis
- rain demo : de la pluie avec projection au sol. + et - permette de changer l'intensité de la pluie
- writing demo : permet d'écrire/dessiner a l'écran avec des particules de lumiere. pour dessiner il suffit de garder le bouton gauche enfoncé
Pour télécharger les démos c'est ici
Voila, j'espere que ca pourra interesser quelqu un et si vous avez des remarques / suggestions, n'hésitez pas.
Quelques screens (ca rend bien mieux en mouvement) :
![]()
Partager