HomeHome  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  

Share | 
 

 editeur de système de particule de SPARK (topic de dev)

View previous topic View next topic Go down 
Go to page : Previous  1, 2, 3
AuthorMessage
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: 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.
Back to top Go down
View user profile
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: 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.
Back to top Go down
View user profile
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: 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!
Back to top Go down
View user profile
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: 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)
Back to top Go down
View user profile
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: 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...)

_________________
Back to top Go down
View user profile
Juff
Developer


Messages : 539
Date d'inscription : 2009-07-14
Age : 34

PostSubject: 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.
Back to top Go down
View user profile http://spark.developpez.com
Darktib
Committer


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

PostSubject: 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 Wink

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!

_________________
Back to top Go down
View user profile
Sponsored content




PostSubject: Re: editeur de système de particule de SPARK (topic de dev)   Today at 9:26 am

Back to top Go down
 
editeur de système de particule de SPARK (topic de dev)
View previous topic View next topic Back to top 
Page 3 of 3Go to page : Previous  1, 2, 3
 Similar topics
-
» can i make the poster details in the topic above the topic
» Latest Topic System v5
» [Solved] how to change text colour of my Latest Topic System v5
» [Hỏi đáp] Cách trang trí topic bằng bbcode như chèn background, border,...
» Topic and post are overlapping last post

Permissions in this forum:You cannot reply to topics in this forum
 :: Forum Francais :: Evolution (fr)-
Jump to: