HomeHome  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  

Share | 
 

 Spark et SFML : Rotation et déplacement de la sf::View

View previous topic View next topic Go down 
AuthorMessage
4ian



Messages : 12
Date d'inscription : 2010-06-25

PostSubject: Spark et SFML : Rotation et déplacement de la sf::View   Mon Oct 11, 2010 4:02 pm

Bonjour,

j'essaye actuellement d'intégrer Spark en tant que moteur de particule à un rendu fait avec SFML.
Je souhaiterai quelque confirmations : J'ai cru voir que le renderer ne gérait pas la rotation ou le déplacement de la sf::View appliquée à la fenêtre ( J'ai déplacé et tourné la worldView du tuto2 et ait vu que les particules ne bougeait pas ).
Je suppose que je doit donc même modifier ça à coups de GlRotate et GlTranslate ? Dans ce cas, y aurait il une méthode préférable pour effectuer par exemples les calculs de translation (Pour obtenir par exemple le ratio entre un pixel de SFML et la valeur correspondante à passer à GlTranslate ) ou des précautions à prendre avant le rendu ?

Merci Smile
Back to top Go down
View user profile http://www.compilgames.net
Juff
Developer


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

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Tue Oct 12, 2010 5:22 pm

Salut,

en effet c'est un problème.

En fait il y a 2 modes de transformations pour les particules dans SPARK :

  • Dans le monde, ou les particules sont transformés dans le repère monde. C'est a dire qu'elles ne sont plus dépendante de la position de leur parent une fois émise (c'est le cas dans le tuto2)
  • en local, ou les particules sont transformées en fonction de la transformation de leur parent. (En fait le SFMLSystem).


Le problème étant qu'actuellement le repère monde n'est pas la view mais l'identité. Je réglerai çà dès que j'aurais le temps sur le SVN.
Si tu veux regarder dans SPARK, c'est dans le SFMLSystem que ca se passe. Au niveau de l'update. La transform du system est settée à la valeur des coefficient de la matrice locale du drawable SFML. Il faudrait que ce soit multiplié a gauche par la transformé de la vue pour que ca marche.

Par contre, si les particules sont émise dans le repère locales, la ca va suivre la transformation de la vue.
Back to top Go down
View user profile http://spark.developpez.com
Juff
Developer


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

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Wed Oct 13, 2010 2:12 pm

En fait j'ai reregarder les sources de SFML et la transformation de la vue est directement incluse dans la matrice de projection. Donc normalement çà devrait marcher. Ne tiens pas compte de ce que j'ai dis dans le post au dessus. Je vais faire quelques tests et te tiens au courant.

PS : Quelle version de SFML utilises tu ?
Back to top Go down
View user profile http://spark.developpez.com
Juff
Developer


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

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Wed Oct 13, 2010 2:48 pm

Bon j'ai fait des test et je peux translater la vue et les particules translatent sans problème. Mais tu parles de rotations de vue ? Il me semble que ce n'est pas possible dans SFML 1.6. Alors j'imagine que tu utilises SFML 2. Le module n'a pas été concu pour SFML 2 donc ce n'est pas un bug pour moi.

Maintenant si tu veux vraiment le faire, je viens de commitr quelques changement sur le svn. Récupère les et dans la méthode Render de SFMLSystem a la place de glLoadIdentity, il faut setté la transformée de la vue.
Back to top Go down
View user profile http://spark.developpez.com
4ian



Messages : 12
Date d'inscription : 2010-06-25

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Wed Oct 13, 2010 3:26 pm

J'utilise SFML2 en effet, je vais voir ce que ça donne avec tes changements, merci. Smile
Back to top Go down
View user profile http://www.compilgames.net
4ian



Messages : 12
Date d'inscription : 2010-06-25

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Wed Oct 13, 2010 4:33 pm

J'ai mis à jour ma version, mais je me suis retrouvé confronté aux même problème. En fait, plus que cette histoire de rotation et de translation, je me suis aperçu que le premier système de particule rendu juste après un Sprite SFML n'était pas affiché. J'avais déjà rajouté un couple de window.RestoreGLStates/window.SaveGLStates ( fonctions provenant de SFML ) entre les appels de rendu de Spark. En rajoutant un window.RestoreGLStates/window.SaveGLStates supplémentaire avant, sans rien au milieu, le rendu se fait correctement..

Bref, c'est le bazar, je vais donc essayer de rendre plus simplement les particules avec le renderer OpenGL. J'ai commencé à le faire, j'obtiens bien un rendu correct au centre de l'écran ( et qui suit la rotation de la vue avec un appel à glRotatef ). Par contre, je m'aperçois qu'il y a toujours un problème, qui apparaissait aussi avec le rendererSFML : Les objets 3D rendus avec OpenGL deviennent blancs, un problème de texture je suppose... J'utilise pourtant SFML pour obtenir la texture, et les Sprite SFML sont bien rendus eux.
Bon, à part ça, ça m'a l'air cependant mieux avec le renderer OpenGL dans le sens où tous les systèmes sont rendus, malgré qu'il faut que je trouve encore quel glTranslate je doit leur appliquer, et ne posent pas de soucis aux objets 3D rendus avec OpenGL sauf concernant leurs textures donc.
Back to top Go down
View user profile http://www.compilgames.net
Juff
Developer


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

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Sun Oct 17, 2010 4:47 pm

Pour que les particules suivent la vue, il suffit d'appliquer la transformation de la vue (qui dans SFML 1.X est récupérable avec un getMatrix. pour le 2 je en sais pas).

Pour le problème de textures, c'est sans doute un problème d'état qui n'est pas resetté. Je pense a un petit glEnable(GL_TEXTURE_2D) a ajouté après le rendu des particules sans textures.

Après comme je t'ai dit je ne supporte pas encore SFML 2. En fait je ferai un renderer pour SFML 2 quand il y aura une release officielle et ce sera avec la version 2 de SPARK. Je n'ai pas trop le temps actuellement de me plonger dans le code de SFML 2 mais si tu as des problèmes et que tu me les exposent précisément je peux essayer de te donner un coup de main.
Back to top Go down
View user profile http://spark.developpez.com
4ian



Messages : 12
Date d'inscription : 2010-06-25

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Mon Oct 18, 2010 3:15 pm

Je suis finalement passé par le rendu avec OpenGL en direct :
Question transformation, pour gérer rotation et déplacement et zoom, j'ai utilisé ce que j'avais déjà fait pour l'affichage d'objets cubes en 3D.
Pour l'histoire de texture, deux appels à GLRenderer::Save/RestoreGLStates ( encadrant particleSystem->render() ) ont reglé le problème.

J'obtiens donc une integration correcte au reste de la fenêtre, avec gestion de la position, de la rotation de la vue et du zoom. Smile

Merci pour l'aide, et surtout pour ce joli moteur de particule qui permet d'avoir quantité d'effets sympa. Very Happy
Pour information, le résultat devrait être visible dans la prochaine version de Game Develop sous forme d'un objet Emetteur de particules. Je posterai un sujet dans le Showcase quand ce sera en ligne. A noter que vu que cet objet est proposé sous forme d'extension officielle de Game Develop, elle est sous license libre et le code source sera donc disponible dans le SDK de Game Develop. Voici quelques screens que j'ai pris :




Back to top Go down
View user profile http://www.compilgames.net
Juff
Developer


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

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Mon Oct 18, 2010 4:30 pm

Excellent çà !

J'imagine que tu as du developper un moyen visuel d'éditer des systèmes de particules via un petit éditeur intégré dans ton logiciel. Quel est la quantité de fonctionnalités de spark que tu supportes ? Supportes tu les particules texturées par exemple (Je n'en vois pas dans tes exemples) ?
Back to top Go down
View user profile http://spark.developpez.com
4ian



Messages : 12
Date d'inscription : 2010-06-25

PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Mon Oct 18, 2010 4:57 pm

"Moyen visuel", disons qu'il y a une interface qui permet de changer :
-Le type de rendu ( Point, ligne, Quad )
-Les paramètres associé à ce rendu ( Taille/Longueur/Image )
-Choisir Fixé/Aléatoire/Changeant au cours du temps ( et de spécifier donc les bornes ) pour les composantes Rouge, Vert, Bleu, Alpha, Taille et Angle des particules.
-La zone d'émission ( Taille de la sphère, direction et angles ) et la force d'émission.
-Le flux et la capacité.
-La possibilité de modifier la gravité, la friction.

On peut visualiser rapidement le résultat directement plaçant un objet Emetteur de particules sur la "scène" et en lançant celle ci.

Je n'avais pas encore réussi à afficher de particules texturés à l'époque des screenshots, mais c'est chose faite, il est possible de spécifier dans l'éditeur de l'objet "Emetteur de particules" comme dit plus haut un mode de rendu "Quadrilatère" et d'y associer une image. Smile
Back to top Go down
View user profile http://www.compilgames.net
Sponsored content




PostSubject: Re: Spark et SFML : Rotation et déplacement de la sf::View   Today at 9:26 am

Back to top Go down
 
Spark et SFML : Rotation et déplacement de la sf::View
View previous topic View next topic Back to top 
Page 1 of 1
 Similar topics
-
» [CSS] Code for rotation avatar
» how to select text from a disabled field?
» Security Alert with yes, no, view certificate button
» open every link in a new tab?
» How to move my selenium test cases from Rc to Grid

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