|
| editeur de système de particule de SPARK (topic de dev) | |
| | |
Author | Message |
---|
Darktib Committer
Messages : 389 Date d'inscription : 2009-07-20 Localisation : A coté de Paris
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Sun Aug 22, 2010 7:47 am | |
| Ok, je pense pouvoir laisser le choix entre 3 options: éditer les angles en brut ( comme maintenant ), éditer en fonction de pi ( genre x*pi dans le spinbox, on peut choisir x réel ), ou en degrés.
Pour le clamp step, je le mettrais aussi. | |
| | | Darktib Committer
Messages : 389 Date d'inscription : 2009-07-20 Localisation : A coté de Paris
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Sun Aug 22, 2010 2:30 pm | |
| 2 nouveaux screenshots pour bien montrer l'arrivée de l'éditeur de courbes: (dsl pour la taille) EDIT: Une nouvelle image, une nouvelle version va arriver très bientôt. | |
| | | Darktib Committer
Messages : 389 Date d'inscription : 2009-07-20 Localisation : A coté de Paris
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Thu Aug 26, 2010 6:12 am | |
| Nouvelle version: 0.5. Au menu: corrections de bugs, arrivée de l'éditeur de courbes, et quelques nouveaux plugins. Dans le pack est aussi fourni une sorte de sdk permettant de créer des plugins (ca n'est pas encore un 'vrai' SDK, la seule doc dispo étant les commentaires de code et les exemples). Ce 'sdk' ne contient pas encore les sources permettant d'intégrer des moteurs de rendu dans le logiciel. C'est ici: http://www.mediafire.com/?typtrc2wxtmhz0t (http://ww w.mediafire.com/?typtrc2wxtmhz0t) Il s'agit d'une version release, contrairement à toutes les autres versions qui étaient en débug. Enjoy! | |
| | | Darktib Committer
Messages : 389 Date d'inscription : 2009-07-20 Localisation : A coté de Paris
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Mon Feb 07, 2011 3:03 pm | |
| Des petites nouvelles - sans release... Au niveau des plus grands changements, le premier est que l'éditeur change de nom. Il s'appelle dorénavant Icewhirl. Ensuite la version de SPARK qui est utilisée est SPARK2. Au niveau de la GUI, il y a eu pas mal d'ajout, certains docks ont été revus de fond en comble, voire même refait de 0. Au niveau gestion des configurations, j'utilise maintenant CMAKE. Pas de caotures d'écran pour l'instant, vu que les plugins (dont l'interface à été simplifiée) n'ont pas tous été réecrits. Pour donner une idée de ce à quoi ressemble un plugin: - Code:
-
#include <IWPlugin.h> #include <Version.h>
IW_ENABLE_PLUGIN_COMMUNICATION
class EmitterRandom : public IWPlugin { public: virtual ~EmitterRandom() {}
/// DATABASE RELATED IW_PROPERTY_TABLE IW_PROPERTY( "active" , true , IWSP_ACTIVENESS ) IW_PROPERTY( "tankMin" , -1 , IWSP_TANKMIN ) IW_PROPERTY( "tankMax" , -1 , IWSP_TANKMAX ) IW_PROPERTY( "flow" , 1.0 , IWSP_FLOW ) IW_PROPERTY( "forceMin" , 1.0 , IWSP_FORCEMIN ) IW_PROPERTY( "forceMax" , 1.0 , IWSP_FORCEMAX ) IW_PROPERTY( "zone" , "" , IWSP_ELEMENTZONE ) IW_PROPERTY( "fullzone" , true , IWSP_FULLZONE ) IW_END_PROPERTY_TABLE
virtual void verifyAndCorrectProperties(DatabaseRow& row, const QString propchanged) { int tankMin=row.getProperty("tankMin").toInt(), tankMax=row.getProperty("tankMax").toInt(); double forceMin=row.getProperty("forceMin").toDouble(), forceMax=row.getProperty("forceMax").toDouble(), flow=row.getProperty("flow").toDouble();
if(propchanged == "flow") { if(tankMin < 0 && tankMax < 0 && flow < 0.0) flow = 0.0; } else { if(propchanged == "tankMin" && tankMin > tankMax) tankMax = tankMin; else if(propchanged == "tankMax" && tankMin > tankMax) tankMin = tankMax;
if((propchanged == "tankMin" && tankMin < 0) || (propchanged == "tankMax" && tankMax < 0)) { if(flow < 0.0) { tankMin = 0; tankMax = 0; } else { tankMin = -1; tankMax = -1; } } }
if(propchanged == "forceMin" && forceMin > forceMax) forceMax = forceMin; else if(propchanged == "forceMax" && forceMin > forceMax) forceMin = forceMax;
row.setProperty("tankMin",tankMin); row.setProperty("tankMax",tankMax); row.setProperty("forceMin",forceMin); row.setProperty("forceMax",forceMax); row.setProperty("flow",flow); } virtual QStringList getTargetedDataFromProperties(const DatabaseRow& row) { if(row.getProperty("zone").toString() != "") return QStringList() << row.getProperty("zone").toString(); return QStringList(); } virtual QStringList getPropertiesOfTarget(const DatabaseRow& row, const QString tgt) { if(tgt == row.getProperty("zone").toString()) return QStringList() << "zone"; return QStringList(); } virtual GUIViewStructure getGUIViewStructure() { GVS::Group p("Global",GVS::Static),e("Emission",GVS::Static);
p << GVS::Property("Active",GVS::Bool,"active") << GVS::setAttributeValue(GVS::Property("Zone",GVS::SpkElement,"zone"),"type",IWT_ZONE) << GVS::Property("Full zone",GVS::Bool,"fullzone");
e << GVS::setAttributeValue(GVS::setAttributeValue( GVS::Property("Tank min",GVS::Int,"tankMin"),"min",-1),"step",10) << GVS::setAttributeValue(GVS::setAttributeValue( GVS::Property("Tank max",GVS::Int,"tankMax"),"min",-1),"step",10) << GVS::setAttributeValue(GVS::Property("Force min",GVS::Double,"forceMin"),"min",0.0) << GVS::setAttributeValue(GVS::Property("Force max",GVS::Double,"forceMax"),"min",0.0) << GVS::setAttributeValue(GVS::setAttributeValue( GVS::Property("Flow",GVS::Double,"flow"),"min",-1.0),"step",10.0);
return GUIViewStructure() << p << e; }
/// SPARK RELATED virtual SPK::Ref<SPK::SPKObject> createSparkElement(const DatabaseRow& row) { SPK::Ref<SPK::RandomEmitter> v = SPK::RandomEmitter::create(); updateSparkElement(v,row); return v; } virtual void updateSparkElement(SPK::Ref<SPK::SPKObject> reg, const DatabaseRow& row) { if(!reg) return;
int tankMin=row.getProperty("tankMin").toInt(), tankMax=row.getProperty("tankMax").toInt(); double forceMin=row.getProperty("forceMin").toDouble(), forceMax=row.getProperty("forceMax").toDouble(), flow=row.getProperty("flow").toDouble(); bool active=row.getProperty("active").toBool(), fullzone=row.getProperty("fullzone").toBool(); QString zone=row.getProperty("zone").toString();
SPK::RandomEmitter* ne = dynamic_cast<SPK::RandomEmitter*>(reg.get()); if(!ne) return;
ne->setActive(active); ne->setFlow(flow); ne->setTank(tankMin,tankMax); ne->setForce(forceMin,forceMax); ne->setZone(IW_GET_SPARK_ELEMENT(zone,SPK::Zone),fullzone); }
/// PLUGIN RELATED IW_PLUGIN_NAME( "Random Emitter" ) IW_PLUGIN_TYPE( IWT_EMITTER ) IW_PLUGIN_ELEMENT( "SPK::RandomEmitter" ) IW_PLUGIN_AUTHOR( "Thibault 'Darktib' Lescoat" ) IW_PLUGIN_LEGALMENTIONS( "Copyright (C) 2011 Thibault Lescoat. " "Based on SPARK Particle Engine, Copyright (C) 2008-2011 Julien Fryer" ) IW_PLUGIN_VERSION( SPARK_VERSION ) IW_PLUGIN_ICON( ":/IW_Emitters_Plugin_Root/random" ) IW_PLUGIN_DESCRIPTION( "An emitter that emits in a random direction. " "This is the plugin of the SPARK built-in Random emitter." ) }; Les plugins se ressemblent beaucoup. A noter que l'include version.h n'est ici que parce que le plugin sera inclu dans l'éditeur (mais sous la forme d'une dll) | |
| | | Darktib Committer
Messages : 389 Date d'inscription : 2009-07-20 Localisation : A coté de Paris
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Sun Sep 11, 2011 4:09 pm | |
| | Icewhirl 1.0beta1 |
Nouvelle version: 1.0beta1! Capture d'écran: Changelog (en): - Code:
-
----- Changes in SPARK Particle Editor -----
Major changes:
- The official name for 'SPARK Particle Editor' is 'Icewhirl' - The underlying SPARK engine is now SPARK 2.0 - Overhaul of the Properties Dock (bugfixes, added 2 group types) - Total overhaul of the Scene Dock (performance improvements, bugfixes, new features, etc...) - Threaded save, extendible - New dock: Console, extendible with add-on commands - New dock: History, maintains undo/redo history, extendible - New dock: Media, manages textures/models. Database no longer manages media - New extension system
Minor changes:
- Software configuration is now stored in a xml file - New way to store global properties - Now database allow complex types (like QStringList) in row properties - Bugfixes...
Note: le chargement de fichiers n'est pas encore opérationnel. Téléchargement : http://www.mediafire.com/?984eggzqrz0yn1d@Juff: Avant, avec les liens, on était redirigé par un site bizarre. Maintenant c'est Adf.ly... si c'est pas toi qui est bénéficiaire du lien, quelqu'un se fait de l'argent sur ton dos (et celui des visiteurs...) | |
| | | Juff Developer
Messages : 539 Date d'inscription : 2009-07-14 Age : 42
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Sun Sep 25, 2011 7:33 am | |
| Hello, Désolé pour le retard dans la réponse, je rentre de vacances. En tout cas c'est bien cool, ca a vraiment de la gueule. Après au lancement j'ai des erreurs de chargement XML dans la console (5 fois) : - Code:
-
WARNING! QT XML VALIDATOR SCHEMA BROKEN, NO MANIFEST VALIDATION MADE. Je ne sais pas si c'est bloquant. Sinon j'ai un crash en fermant l'appli. (Icewhirl a cessé de fonctionner...) Après niveau fonctionalités, il n'y a pas encore grand chose de porter donc j'ai pas pu tester en profondeur. J'ai aussi remarqué un petit bug au niveau de la selection des emetteurs dans un group. Parfois, je n'arrive pas à cliquer sur les check box. Sinon est ce que tu as redirigé les logs de spark quelque part ? Pour le lien sur lequel on redirige ca a l'air de le faire que pour media fire. Ce n'est pas moi qui heberge le forum, c'est un hebergeur gratos donc ca doit être eux qui se font plaisir. Ca fait chier, je voudrais récupérer le forum chez moi mais faut que je trouve un moyen d'en aspirer le contenu. | |
| | | Darktib Committer
Messages : 389 Date d'inscription : 2009-07-20 Localisation : A coté de Paris
| Subject: Re: editeur de système de particule de SPARK (topic de dev) Sun Sep 25, 2011 5:29 pm | |
| Merci du test ! Pour les warning XML, c'est pas bloquant, c'est des sécurités liées au système d'extension qui sont désactivées (à cause d'un bug dans Qt), c'est surtout pour m'en souvenir Pour le bug des checkbox, je le connais, il est sur ma todo-list : en fait, le premier élèment est dur à selectionner, tu peux par exemple créer deux éléments, selectionner le premier, puis supprimer l'autre... Pour le crash, je vais voir de plus près. J'ai pas encore redirigé les logs, je le fais de suite! | |
| | | Sponsored content
| Subject: Re: editeur de système de particule de SPARK (topic de dev) | |
| |
| | | | editeur de système de particule de SPARK (topic de dev) | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |